q4.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "rio.h"
#include "load.h"
#include "elm.h"
#include "node.h"
#include "material.h"
#include "xgplib.h"
#include "alg.h"

Include dependency graph for q4.c:

Go to the source code of this file.

Data Structures

struct  _q4elm

Typedefs

typedef _q4elm sQ4Data

Functions

static void _Q4GetCoord (sElement *, sCoord[])
static void _Q4ShapeFunc (double, double, double[])
static void _Q4Jacobian (double, double, sCoord[], double *, double[2][2])
static void _Q4BMatrix (double, double, sCoord[], double[3][8])
static void _Q4DerivShp (double, double, sDerivRST[])
static void _Q4GetDisplacement (sElement *, double *, double[])
static double _Q4MinHeight (sCoord *)
static double _Q4CalcLength (sCoord *, sCoord *)
static void _Q4ElementCenter (sElement *, sCoord[])
static double _Q4PoroPressure (sElement *elm, double lambda)
static void _Q4ElementCenter (sElement *elm, sCoord coord[1])
static void _Q4GetCoord (sElement *elm, sCoord coord[3])
static void _Q4GetDisplacement (sElement *elm, double *U, double ue[6])
static void _Q4BMatrix (double r, double s, sCoord coord[4], double bm[3][8])
static void _Q4Jacobian (double r, double s, sCoord coord[4], double *detjac, double jac[2][2])
static void _Q4ShapeFunc (double r, double s, double shape[4])
static void _Q4DerivShp (double r, double s, sDerivRST dshp[4])
static void Q4New (int, int, int, int, sElement **, sElement **, sNode *)
static void Q4Free (sElement *)
static void Q4Read (sElement *)
static int Q4ReadInitStress (sElement *)
static void Q4ReadProfile (sElement *)
static void Q4MassMatrix (sElement *, double *)
static double Q4RigidCoeff (sElement *)
static void Q4Connect (sElement *, int *)
static void Q4NumNodes (sElement *, int *)
static void Q4Gravity (sElement *, double *, double *, double *)
static void Q4AssVector (sElement *, double *, double *)
static void Q4TimeStep (sElement *, double *)
static void Q4InterForce (sElement *, sTensor *, double *)
static void Q4StressStrain (sElement *, double, double *, double *, sTensor *, sTensor *)
static void Q4WriteStress (sElement *, FILE *, double *, double *)
static void Q4WriteGaussResult (sElement *, FILE *, FILE *)
static void Q4WriteGaussVectorResult (sElement *, int, FILE *, FILE *)
static void Q4WriteNodalResult (sElement *, FILE *, FILE *)
static void Q4UpdateStress (sElement *, double, double *, sTensor *)
static void Q4PercForces (sElement *, double *)
static void Q4SetPressure (sElement *, double)
static void Q4SetInitStress (sElement *, sTensor *)
static void Q4ViscoForce (sElement *, double, sTensor *, double *)
static void Q4KMatrix (sElement *, double[24][24])
static void Q4GetDof (sElement *, int[24], int *)
static void Q4Load (sElement *elm, eLoadType ltype, int key, int noi, int noj, int nok, int *nol, double *q1x, double *q1y, double *q1z, double *q2x, double *q2y, double *q2z, double *q3x, double *q3y, double *q3z, double *q4x, double *q4y, double *q4z)
static void Q4GetInc (sElement *elm, int inc[8], int *index)
void Q4Init (void)

Variables

static double _GPoint [2] = { -0.577350269189626, 0.577350269189626 }
static double _GWeight [2] = { 1.000000000000000, 1.000000000000000 }
static double _TRMatrix [4][4]
static int _Edges [4][2] = { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 } }
static double GForce = 9.85


Typedef Documentation

typedef struct _q4elm sQ4Data


Function Documentation

static void _Q4BMatrix ( double  r,
double  s,
sCoord  coord[4],
double  bm[3][8] 
) [static]

Definition at line 243 of file q4.c.

References _Q4DerivShp(), _Q4Jacobian(), and _derivrst::r.

Here is the call graph for this function:

static void _Q4BMatrix ( double  ,
double  ,
sCoord  [],
double  [3][8] 
) [static]

Referenced by Q4InterForce(), Q4KMatrix(), Q4PercForces(), Q4StressStrain(), Q4UpdateStress(), and Q4ViscoForce().

Here is the caller graph for this function:

static double _Q4CalcLength ( sCoord *  ,
sCoord *   
) [static]

Definition at line 152 of file q4.c.

References _coord::x, _coord::y, and _coord::z.

Referenced by _Q4MinHeight().

Here is the caller graph for this function:

static void _Q4DerivShp ( double  r,
double  s,
sDerivRST  dshp[4] 
) [static]

Definition at line 335 of file q4.c.

References _derivrst::r, and _derivrst::s.

static void _Q4DerivShp ( double  ,
double  ,
sDerivRST  [] 
) [static]

static void _Q4ElementCenter ( sElement *  elm,
sCoord  coord[1] 
) [static]

Definition at line 125 of file q4.c.

References _node::coord, _element::data, _q4elm::inc, NodeVector, _q4elm::NumNodes, NumNodes, _coord::x, _coord::y, and _coord::z.

static void _Q4ElementCenter ( sElement *  ,
sCoord  [] 
) [static]

static void _Q4GetCoord ( sElement *  elm,
sCoord  coord[3] 
) [static]

Definition at line 197 of file q4.c.

References _node::coord, _element::data, _q4elm::inc, _element::nodes, _coord::x, _coord::y, and _coord::z.

static void _Q4GetCoord ( sElement *  ,
sCoord  [] 
) [static]

Referenced by Q4Gravity(), Q4InterForce(), Q4KMatrix(), Q4MassMatrix(), Q4PercForces(), Q4RigidCoeff(), Q4SetPressure(), Q4StressStrain(), Q4TimeStep(), Q4UpdateStress(), and Q4ViscoForce().

Here is the caller graph for this function:

static void _Q4GetDisplacement ( sElement *  elm,
double *  U,
double  ue[6] 
) [static]

Definition at line 221 of file q4.c.

References _element::data, _q4elm::inc, and NumNodes.

static void _Q4GetDisplacement ( sElement *  ,
double *  ,
double  [] 
) [static]

Referenced by Q4StressStrain(), and Q4UpdateStress().

Here is the caller graph for this function:

static void _Q4Jacobian ( double  r,
double  s,
sCoord  coord[4],
double *  detjac,
double  jac[2][2] 
) [static]

Definition at line 286 of file q4.c.

References _Q4DerivShp(), _derivrst::r, _derivrst::s, _coord::x, and _coord::y.

Here is the call graph for this function:

static void _Q4Jacobian ( double  ,
double  ,
sCoord  [],
double *  ,
double  [2][2] 
) [static]

static double _Q4MinHeight ( sCoord *   )  [static]

Definition at line 165 of file q4.c.

References _Edges, and _Q4CalcLength().

Referenced by Q4TimeStep().

Here is the call graph for this function:

Here is the caller graph for this function:

static double _Q4PoroPressure ( sElement *  elm,
double  lambda 
) [static]

Definition at line 949 of file q4.c.

References Config, _element::data, GForce, _config::loadfactor, MatDensity, _q4elm::matid, MatList, and _q4elm::prof.

Referenced by Q4StressStrain(), and Q4WriteGaussResult().

Here is the caller graph for this function:

static void _Q4ShapeFunc ( double  r,
double  s,
double  shape[4] 
) [static]

Definition at line 319 of file q4.c.

static void _Q4ShapeFunc ( double  ,
double  ,
double  [] 
) [static]

static void Q4AssVector ( sElement *  ,
double *  ,
double *   
) [static]

Definition at line 774 of file q4.c.

References _element::data, ElmConnect, and _q4elm::NumNodes.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4Connect ( sElement *  ,
int *   
) [static]

Definition at line 708 of file q4.c.

References _element::data, _q4elm::inc, and NumNodes.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4Free ( sElement *   )  [static]

Definition at line 445 of file q4.c.

References _element::data.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4GetDof ( sElement *  ,
int  [24],
int *   
) [static]

Definition at line 1850 of file q4.c.

References _element::data, _q4elm::inc, and NumNodes.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4GetInc ( sElement *  elm,
int  inc[8],
int *  index 
) [static]

Definition at line 1870 of file q4.c.

References _element::data, _q4elm::inc, and NumNodes.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4Gravity ( sElement *  ,
double *  ,
double *  ,
double *   
) [static]

Definition at line 736 of file q4.c.

References _Q4GetCoord(), _element::data, GravForce, MatDensity, _q4elm::matid, MatList, and Q4RigidCoeff().

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

void Q4Init ( void   ) 

static void Q4InterForce ( sElement *  ,
sTensor *  ,
double *   
) [static]

Definition at line 983 of file q4.c.

References _GPoint, _GWeight, _Q4BMatrix(), _Q4GetCoord(), _Q4Jacobian(), _element::data, _q4elm::istr, _q4elm::NumNodes, _tensor::xx, _tensor::xy, and _tensor::yy.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4KMatrix ( sElement *  ,
double  [24][24] 
) [static]

Definition at line 1778 of file q4.c.

References _GPoint, _Q4BMatrix(), _Q4GetCoord(), _Q4Jacobian(), _element::data, MatConstitutiveMatrix, _q4elm::matid, and MatList.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4Load ( sElement *  elm,
eLoadType  ltype,
int  key,
int  noi,
int  noj,
int  nok,
int *  nol,
double *  q1x,
double *  q1y,
double *  q1z,
double *  q2x,
double *  q2y,
double *  q2z,
double *  q3x,
double *  q3y,
double *  q3z,
double *  q4x,
double *  q4y,
double *  q4z 
) [static]

Definition at line 646 of file q4.c.

References _node::coord, _element::nodes, UNIFORM, _coord::x, and _coord::y.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4MassMatrix ( sElement *  ,
double *   
) [static]

Definition at line 550 of file q4.c.

References _GPoint, _GWeight, _Q4GetCoord(), _Q4Jacobian(), _Q4ShapeFunc(), _element::data, MatDensity, _q4elm::matid, and MatList.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4New ( int  ,
int  ,
int  ,
int  ,
sElement **  ,
sElement **  ,
sNode *   
) [static]

Definition at line 394 of file q4.c.

References _q4elm::effdef, _q4elm::istr, _q4elm::matid, _q4elm::NumNodes, _q4elm::NumTensComp, _q4elm::prof, and _q4elm::tckid.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4NumNodes ( sElement *  ,
int *   
) [static]

Definition at line 724 of file q4.c.

References _element::data, and _q4elm::NumNodes.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4PercForces ( sElement *  ,
double *   
) [static]

Definition at line 1562 of file q4.c.

References _GPoint, _GWeight, _Q4BMatrix(), _Q4GetCoord(), _Q4Jacobian(), _Q4ShapeFunc(), _element::data, _node::dof, _q4elm::inc, _q4elm::matid, MatList, _element::nodes, NumNodes, _dof::psi, _material::Rhof, _tensor::xx, _coord::y, and _tensor::yy.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4Read ( sElement *   )  [static]

Definition at line 468 of file q4.c.

References _element::data, _q4elm::inc, and nf.

Referenced by Q4Init().

Here is the caller graph for this function:

static int Q4ReadInitStress ( sElement *   )  [static]

Definition at line 494 of file q4.c.

References _element::data, _q4elm::istr, and nf.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4ReadProfile ( sElement *   )  [static]

Definition at line 529 of file q4.c.

References _element::data, nf, and _q4elm::prof.

Referenced by Q4Init().

Here is the caller graph for this function:

static double Q4RigidCoeff ( sElement *   )  [static]

Definition at line 608 of file q4.c.

References _GPoint, _GWeight, _Q4GetCoord(), _Q4Jacobian(), and _Q4ShapeFunc().

Referenced by Q4Gravity(), and Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4SetInitStress ( sElement *  ,
sTensor *   
) [static]

Definition at line 1658 of file q4.c.

References _element::data, _q4elm::istr, _tensor::xx, _tensor::xy, and _tensor::yy.

Referenced by Q4Init().

Here is the caller graph for this function:

static void Q4SetPressure ( sElement *  ,
double   
) [static]

Definition at line 1632 of file q4.c.

References _Q4GetCoord(), _element::data, _node::dof, _q4elm::inc, _element::nodes, _dof::psi, and _coord::y.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4StressStrain ( sElement *  ,
double  ,
double *  ,
double *  ,
sTensor *  ,
sTensor *   
) [static]

Definition at line 803 of file q4.c.

References _GPoint, _Q4BMatrix(), _Q4GetCoord(), _Q4GetDisplacement(), _Q4PoroPressure(), _element::data, _q4elm::effdef, ElementOffPlaneStress(), _q4elm::istr, _material::Lambda, MatConstitutiveMatrix, _q4elm::matid, MatList, MatNuParameter, MatUpdateParameter, MatUpdateStress, _q4elm::NumNodes, _tensor::rf, _tensor::xx, _tensor::xy, and _tensor::yy.

Referenced by Q4Init(), and Q4WriteStress().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4TimeStep ( sElement *  ,
double *   
) [static]

Definition at line 1524 of file q4.c.

References _Q4GetCoord(), _Q4MinHeight(), _element::data, KELVIN, _q4elm::matid, MatList, MatTimeStep, and _material::type.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4UpdateStress ( sElement *  ,
double  ,
double *  ,
sTensor *   
) [static]

Definition at line 1459 of file q4.c.

References _GPoint, _Q4BMatrix(), _Q4GetCoord(), _Q4GetDisplacement(), _element::data, _tensor::xx, _tensor::xy, and _tensor::yy.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4ViscoForce ( sElement *  ,
double  ,
sTensor *  ,
double *   
) [static]

Definition at line 1680 of file q4.c.

References _GPoint, _GWeight, _Q4BMatrix(), _Q4GetCoord(), _Q4Jacobian(), _element::data, MatConstitutiveMatrix, MaterialIsVisco(), _q4elm::matid, MatList, MatViscoStrain, _q4elm::NumNodes, _tensor::xx, _tensor::xy, and _tensor::yy.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4WriteGaussResult ( sElement *  ,
FILE *  ,
FILE *   
) [static]

Definition at line 1219 of file q4.c.

References _Q4PoroPressure(), Config, _element::data, _ptensor::dir1, _ptensor::dir2, _ptensor::dir3, _config::gaussresults, _element::label, _material::Lambda, _q4elm::matid, MatList, _config::numgaussresults, PrincipalTensor(), _tensor::xx, _tensor::xy, _tensor::yy, and _tensor::zz.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4WriteGaussVectorResult ( sElement *  ,
int  ,
FILE *  ,
FILE *   
) [static]

Definition at line 1355 of file q4.c.

References _ptensor::cos1x, _ptensor::cos1y, _ptensor::cos1z, _ptensor::cos2x, _ptensor::cos2y, _ptensor::cos2z, _ptensor::cos3x, _ptensor::cos3y, _ptensor::cos3z, _ptensor::dir1, _ptensor::dir2, _ptensor::dir3, _element::label, and PrincipalTensor().

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4WriteNodalResult ( sElement *  ,
FILE *  ,
FILE *   
) [static]

Definition at line 1142 of file q4.c.

References _TRMatrix, _ptensor::dir1, _ptensor::dir2, _ptensor::dir3, _element::label, PrincipalTensor(), _tensor::xx, _tensor::xy, _tensor::xz, _tensor::yy, _tensor::yz, and _tensor::zz.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void Q4WriteStress ( sElement *  ,
FILE *  ,
double *  ,
double *   
) [static]

Definition at line 1086 of file q4.c.

References DONE, Q4StressStrain(), _element::rezone, _tensor::xx, _tensor::xy, _tensor::xz, _tensor::yy, _tensor::yz, and _tensor::zz.

Referenced by Q4Init().

Here is the call graph for this function:

Here is the caller graph for this function:


Variable Documentation

int _Edges[4][2] = { { 0, 1 }, { 1, 2 }, { 2, 3 }, { 3, 0 } } [static]

Definition at line 100 of file q4.c.

double _GPoint[2] = { -0.577350269189626, 0.577350269189626 } [static]

Definition at line 79 of file q4.c.

double _GWeight[2] = { 1.000000000000000, 1.000000000000000 } [static]

Definition at line 80 of file q4.c.

double _TRMatrix[4][4] [static]

Initial value:

 {
                                 {  1.116025404,  0.250000000,
                                    0.250000000, -0.616025404 },
                                 {  0.250000000,  1.116025404,
                                   -0.616025404,  0.250000000 },
                                 { -0.616025404,  0.250000000,
                                    0.250000000,  1.116025404 },
                                 {  0.250000000, -0.616025404,
                                    1.116025404,  0.250000000 }
                                }

Definition at line 86 of file q4.c.

double GForce = 9.85 [static]

Definition at line 102 of file q4.c.


Generated on Fri Oct 5 15:56:09 2007 for ReconMS by  doxygen 1.5.1