tetra4.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 "alg.h"

Include dependency graph for tetra4.c:

Go to the source code of this file.

Data Structures

struct  sTetr4Data

Functions

static void _TETR4GetCoord (sElement *, sCoord[])
static void _TETR4ShapeFunc (double, double, double, double[])
static void _TETR4Jacobian (double, double, double, sCoord[], double *, double[3][3])
static void _TETR4BMatrix (double, double, double, sCoord[], double[6][12])
static void _TETR4DerivShp (double, double, double, sDerivRST[])
static void _TETR4GetDisplacement (sElement *, double *, double[])
static double _TETR4MinHeight (sCoord *)
static double _TETR4Volume (sCoord *)
static void _TETR4ElementCenter (sElement *elm, sCoord coord[1])
static void _TETR4FaceCenter (sCoord *coord0, sCoord *coord1, sCoord *coord2, sCoord *center)
static double RigidCoeff (sElement *elm, int noi, int noj, int nok)
static double _Area (sCoord coord[3])
static void _Normal (sCoord coord[3], sCoord *normal)
static void _TETR4GetDisplacement (sElement *elm, double *U, double ue[12])
static void _TETR4BMatrix (double r, double s, double t, sCoord coord[4], double bm[6][12])
static void _TETR4Jacobian (double r, double s, double t, sCoord coord[4], double *detjac, double jac[3][3])
static void _TETR4GetCoord (sElement *elm, sCoord coord[4])
static void _TETR4ShapeFunc (double r, double s, double t, double shape[4])
static void _TETR4DerivShp (double r, double s, double t, sDerivRST dshp[8])
static void TETR4New (int, int, int, int, sElement **, sElement **, sNode *)
static void TETR4Free (sElement *)
static void TETR4Read (sElement *)
static int TETR4ReadInitStress (sElement *)
static void TETR4ReadProfile (sElement *)
static void TETR4MassMatrix (sElement *, double *)
static void TETR4Gravity (sElement *, double *, double *, double *)
static double TETR4RigidCoeff (sElement *)
static void TETR4Connect (sElement *, int *)
static void TETR4NumNodes (sElement *, int *)
static void TETR4AssVector (sElement *, double *, double *)
static void TETR4TimeStep (sElement *, double *)
static void TETR4InterForce (sElement *, sTensor *, double *)
static void TETR4StressStrain (sElement *, double, double *, double *, sTensor *, sTensor *)
static void TETR4WriteStress (sElement *, FILE *, double *, double *)
static void TETR4WriteGaussResult (sElement *, FILE *, FILE *)
static void TETR4WriteNodalResult (sElement *, FILE *, FILE *)
static void TETR4WriteGaussVectorResult (sElement *, int, FILE *, FILE *)
static void TETR4UpdateStress (sElement *, double, double *, sTensor *)
static void TETR4PercForces (sElement *, double *)
static void TETR4SetPressure (sElement *, double)
static void TETR4SetInitStress (sElement *, sTensor *)
static void TETR4ViscoForce (sElement *, double, sTensor *, double *)
static void TETR4KMatrix (sElement *, double[24][24])
static void TETR4GetDof (sElement *, int[24], int *)
static void TETR4Load (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 TETRA4ReadProfile (sElement *elm)
static void TETR4GetInc (sElement *elm, int inc[8], int *index)
void TETR4Init (void)

Variables

static double _GPoint = 0.25000000
static double _GWeight = 0.16666667
static double GForce = 9.85


Function Documentation

static double _Area ( sCoord  coord[3]  )  [static]

Definition at line 135 of file tetra4.c.

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

Referenced by RigidCoeff().

Here is the caller graph for this function:

static void _Normal ( sCoord  coord[3],
sCoord normal 
) [static]

Definition at line 487 of file tetra4.c.

References size, sCoord::x, sCoord::y, and sCoord::z.

static void _TETR4BMatrix ( double  r,
double  s,
double  t,
sCoord  coord[4],
double  bm[6][12] 
) [static]

Definition at line 328 of file tetra4.c.

References _TETR4DerivShp(), _TETR4Jacobian(), sDerivRST::r, and sDerivRST::t.

Here is the call graph for this function:

static void _TETR4BMatrix ( double  ,
double  ,
double  ,
sCoord  [],
double  [6][12] 
) [static]

Referenced by TETR4InterForce(), TETR4KMatrix(), TETR4PercForces(), TETR4StressStrain(), TETR4UpdateStress(), and TETR4ViscoForce().

Here is the caller graph for this function:

static void _TETR4DerivShp ( double  r,
double  s,
double  t,
sDerivRST  dshp[8] 
) [static]

Definition at line 466 of file tetra4.c.

References sDerivRST::r, sDerivRST::s, and sDerivRST::t.

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

Referenced by _TETR4BMatrix(), and _TETR4Jacobian().

Here is the caller graph for this function:

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

Definition at line 165 of file tetra4.c.

References sNode::coord, sElement::data, sTetr4Data::inc, NodeVector, sTetr4Data::NumNodes, NumNodes, sCoord::x, sCoord::y, and sCoord::z.

static void _TETR4FaceCenter ( sCoord coord0,
sCoord coord1,
sCoord coord2,
sCoord center 
) [static]

Definition at line 212 of file tetra4.c.

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

Referenced by _TETR4MinHeight().

Here is the caller graph for this function:

static void _TETR4GetCoord ( sElement elm,
sCoord  coord[4] 
) [static]

Definition at line 425 of file tetra4.c.

References sNode::coord, sElement::data, sTetr4Data::inc, sElement::nodes, sCoord::x, sCoord::y, and sCoord::z.

static void _TETR4GetCoord ( sElement ,
sCoord  [] 
) [static]

Referenced by TETR4Gravity(), TETR4InterForce(), TETR4KMatrix(), TETR4MassMatrix(), TETR4PercForces(), TETR4RigidCoeff(), TETR4SetPressure(), TETR4StressStrain(), TETR4TimeStep(), TETR4UpdateStress(), and TETR4ViscoForce().

Here is the caller graph for this function:

static void _TETR4GetDisplacement ( sElement elm,
double *  U,
double  ue[12] 
) [static]

Definition at line 305 of file tetra4.c.

References sElement::data, sTetr4Data::inc, and NumNodes.

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

Referenced by TETR4StressStrain(), and TETR4UpdateStress().

Here is the caller graph for this function:

static void _TETR4Jacobian ( double  r,
double  s,
double  t,
sCoord  coord[4],
double *  detjac,
double  jac[3][3] 
) [static]

Definition at line 384 of file tetra4.c.

References _TETR4DerivShp(), sDerivRST::r, sDerivRST::s, sDerivRST::t, sCoord::x, sCoord::y, and sCoord::z.

Here is the call graph for this function:

static void _TETR4Jacobian ( double  ,
double  ,
double  ,
sCoord  [],
double *  ,
double  [3][3] 
) [static]

Referenced by _TETR4BMatrix(), _TETR4Volume(), TETR4InterForce(), TETR4KMatrix(), TETR4MassMatrix(), TETR4PercForces(), TETR4RigidCoeff(), and TETR4ViscoForce().

Here is the caller graph for this function:

static double _TETR4MinHeight ( sCoord coord  )  [static]

Definition at line 277 of file tetra4.c.

References _TETR4FaceCenter(), sCoord::x, sCoord::y, and sCoord::z.

Referenced by TETR4TimeStep().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 450 of file tetra4.c.

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

Referenced by TETR4MassMatrix(), and TETR4PercForces().

Here is the caller graph for this function:

static double _TETR4Volume ( sCoord coord  )  [static]

Definition at line 194 of file tetra4.c.

References _GPoint, _GWeight, and _TETR4Jacobian().

Referenced by TETR4Gravity().

Here is the call graph for this function:

Here is the caller graph for this function:

static double RigidCoeff ( sElement elm,
int  noi,
int  noj,
int  nok 
) [static]

Definition at line 110 of file tetra4.c.

References _Area(), sNode::coord, sElement::nodes, sCoord::x, sCoord::y, and sCoord::z.

Referenced by TETR4Load().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4AssVector ( sElement elm,
double *  GMatrix,
double *  matrix 
) [static]

Definition at line 956 of file tetra4.c.

References sElement::data, ElmConnect, and sTetr4Data::NumNodes.

Referenced by TETR4Init().

Here is the caller graph for this function:

static void TETR4Connect ( sElement elm,
int *  conn 
) [static]

Definition at line 928 of file tetra4.c.

References sElement::data, sTetr4Data::inc, and NumNodes.

Referenced by TETR4Init().

Here is the caller graph for this function:

static void TETR4Free ( sElement elm  )  [static]

Definition at line 741 of file tetra4.c.

References sElement::data.

Referenced by TETR4Init().

Here is the caller graph for this function:

static void TETR4GetDof ( sElement elm,
int  u[24],
int *  index 
) [static]

Definition at line 1845 of file tetra4.c.

References sElement::data, sTetr4Data::inc, and NumNodes.

Referenced by TETR4Init().

Here is the caller graph for this function:

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

Definition at line 1866 of file tetra4.c.

References sElement::data, sTetr4Data::inc, and NumNodes.

Referenced by TETR4Init().

Here is the caller graph for this function:

static void TETR4Gravity ( sElement elm,
double *  qx,
double *  qy,
double *  qz 
) [static]

Definition at line 1541 of file tetra4.c.

References _TETR4GetCoord(), _TETR4Volume(), sElement::data, GravForce, MatDensity, sTetr4Data::matid, and MatList.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

void TETR4Init ( void   ) 

static void TETR4InterForce ( sElement elm,
sTensor stress,
double *  intforce 
) [static]

Definition at line 1120 of file tetra4.c.

References _GPoint, _GWeight, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4Jacobian(), sElement::data, sTetr4Data::istr, sTetr4Data::NumNodes, sTensor::xx, sTensor::xy, sTensor::xz, sTensor::yy, sTensor::yz, and sTensor::zz.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4KMatrix ( sElement elm,
double  k[24][24] 
) [static]

Definition at line 1777 of file tetra4.c.

References _GPoint, _GWeight, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4Jacobian(), sElement::data, MatConstitutiveMatrix, sTetr4Data::matid, and MatList.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4Load ( 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 574 of file tetra4.c.

References _Normal(), AREAPRESSURE, AREAUNIFORM, sNode::coord, sElement::data, sTetr4Data::inc, sElement::nodes, NodeVector, NumNodes, RigidCoeff(), UNIFORM, sCoord::x, sCoord::y, and sCoord::z.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4MassMatrix ( sElement elm,
double *  mass 
) [static]

Definition at line 850 of file tetra4.c.

References _GPoint, _GWeight, _TETR4GetCoord(), _TETR4Jacobian(), _TETR4ShapeFunc(), sElement::data, MatDensity, sTetr4Data::matid, and MatList.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4New ( int  label,
int  matid,
int  intord,
int  tckid,
sElement **  elm,
sElement **  elist,
sNode nodes 
) [static]

Definition at line 692 of file tetra4.c.

References DSP_NO, sTetr4Data::effdef, sTetr4Data::istr, sTetr4Data::matid, NONE, sTetr4Data::NumNodes, sTetr4Data::NumTensComp, sTetr4Data::prof, sTetr4Data::tckid, and TETR4.

Referenced by TETR4Init().

Here is the caller graph for this function:

static void TETR4NumNodes ( sElement elm,
int *  nnodes 
) [static]

Definition at line 944 of file tetra4.c.

References sElement::data, and sTetr4Data::NumNodes.

Referenced by TETR4Init().

Here is the caller graph for this function:

static void TETR4PercForces ( sElement elm,
double *  pforce 
) [static]

Definition at line 1579 of file tetra4.c.

References _GPoint, _GWeight, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4Jacobian(), _TETR4ShapeFunc(), sElement::data, sNode::dof, sTetr4Data::inc, sTetr4Data::matid, MatList, sElement::nodes, NumNodes, sDof::psi, sMaterial::Rhof, sTensor::xx, sCoord::y, sTensor::yy, and sTensor::zz.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4Read ( sElement elm  )  [static]

Definition at line 764 of file tetra4.c.

References sElement::data, sTetr4Data::inc, and nf.

Referenced by TETR4Init().

Here is the caller graph for this function:

static int TETR4ReadInitStress ( sElement elm  )  [static]

Definition at line 790 of file tetra4.c.

References sElement::data, sTetr4Data::istr, and nf.

Referenced by TETR4Init().

Here is the caller graph for this function:

static void TETR4ReadProfile ( sElement  )  [static]

static double TETR4RigidCoeff ( sElement elm  )  [static]

Definition at line 902 of file tetra4.c.

References _GPoint, _GWeight, _TETR4GetCoord(), and _TETR4Jacobian().

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4SetInitStress ( sElement elm,
sTensor istress 
) [static]

Definition at line 1670 of file tetra4.c.

References sElement::data, sTetr4Data::istr, sTensor::xx, sTensor::xy, sTensor::xz, sTensor::yy, sTensor::yz, and sTensor::zz.

Referenced by TETR4Init().

Here is the caller graph for this function:

static void TETR4SetPressure ( sElement elm,
double  pot 
) [static]

Definition at line 1644 of file tetra4.c.

References _TETR4GetCoord(), sElement::data, sNode::dof, sTetr4Data::inc, sElement::nodes, sDof::psi, and sCoord::y.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4StressStrain ( sElement elm,
double  dt,
double *  U,
double *  yield,
sTensor stre,
sTensor stra 
) [static]

Definition at line 985 of file tetra4.c.

References _GPoint, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4GetDisplacement(), Config, sElement::data, sTetr4Data::effdef, GForce, sTetr4Data::istr, sMaterial::Lambda, sConfig::loadfactor, MatConstitutiveMatrix, MatDensity, sTetr4Data::matid, MatList, MatUpdateParameter, MatUpdateStress, sTetr4Data::NumNodes, sTetr4Data::prof, sTensor::xx, sTensor::xy, sTensor::xz, sTensor::yy, sTensor::yz, and sTensor::zz.

Referenced by TETR4Init(), and TETR4WriteStress().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4TimeStep ( sElement elm,
double *  dt 
) [static]

Definition at line 1497 of file tetra4.c.

References _TETR4GetCoord(), _TETR4MinHeight(), sElement::data, KELVIN, sTetr4Data::matid, MatList, MatTimeStep, and sMaterial::type.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4UpdateStress ( sElement elm,
double  dtime,
double *  V,
sTensor stre 
) [static]

Definition at line 1443 of file tetra4.c.

References _GPoint, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4GetDisplacement(), sElement::data, sTensor::xx, sTensor::xy, sTensor::yy, and sTensor::zz.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4ViscoForce ( sElement elm,
double  timeStep,
sTensor stress,
double *  vforce 
) [static]

Definition at line 1695 of file tetra4.c.

References _GPoint, _GWeight, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4Jacobian(), sElement::data, MatConstitutiveMatrix, MaterialIsVisco(), sTetr4Data::matid, MatList, MatViscoStrain, sTetr4Data::NumNodes, sTensor::xx, sTensor::xy, sTensor::xz, sTensor::yy, sTensor::yz, and sTensor::zz.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4WriteGaussResult ( sElement elm,
FILE *  out,
FILE *  tmp 
) [static]

Definition at line 1273 of file tetra4.c.

References Config, sPTensor::dir1, sPTensor::dir2, sPTensor::dir3, sConfig::gaussresults, sElement::label, sConfig::numgaussresults, PrincipalTensor(), sTensor::xx, sTensor::xy, sTensor::xz, sTensor::yy, sTensor::yz, and sTensor::zz.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4WriteGaussVectorResult ( sElement elm,
int  version,
FILE *  out,
FILE *  tmp 
) [static]

Definition at line 1346 of file tetra4.c.

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

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4WriteNodalResult ( sElement elm,
FILE *  out,
FILE *  tmp 
) [static]

Definition at line 1233 of file tetra4.c.

References sPTensor::dir1, sPTensor::dir2, sPTensor::dir3, sElement::label, PrincipalTensor(), sTensor::xx, sTensor::xy, sTensor::xz, sTensor::yy, sTensor::yz, and sTensor::zz.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETR4WriteStress ( sElement elm,
FILE *  out,
double *  U,
double *  V 
) [static]

Definition at line 1183 of file tetra4.c.

References sPTensor::dir1, sPTensor::dir2, sPTensor::dir3, DONE, PrincipalTensor(), sElement::rezone, TETR4StressStrain(), sTensor::xx, sTensor::xy, sTensor::xz, sTensor::yy, sTensor::yz, and sTensor::zz.

Referenced by TETR4Init().

Here is the call graph for this function:

Here is the caller graph for this function:

static void TETRA4ReadProfile ( sElement elm  )  [static]

Definition at line 829 of file tetra4.c.

References sElement::data, nf, and sTetr4Data::prof.

Referenced by TETR4Init().

Here is the caller graph for this function:


Variable Documentation

double _GPoint = 0.25000000 [static]

Definition at line 78 of file tetra4.c.

double _GWeight = 0.16666667 [static]

Definition at line 79 of file tetra4.c.

double GForce = 9.85 [static]

Definition at line 81 of file tetra4.c.


Generated on Tue Oct 23 11:24:55 2007 for Relax by  doxygen 1.5.3