#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 | _tetr4elm |
Typedefs | |
| typedef _tetr4elm | 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 |
| typedef struct _tetr4elm sTetr4Data |
| static double _Area | ( | sCoord | coord[3] | ) | [static] |
| 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(), and _derivrst::r.
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] |
| static void _TETR4DerivShp | ( | double | , | |
| double | , | |||
| double | , | |||
| sDerivRST | [] | |||
| ) | [static] |
Definition at line 165 of file tetra4.c.
References _node::coord, _element::data, _tetr4elm::inc, NodeVector, _tetr4elm::NumNodes, NumNodes, _coord::x, _coord::y, and _coord::z.
Definition at line 425 of file tetra4.c.
References _node::coord, _element::data, _tetr4elm::inc, _element::nodes, _coord::x, _coord::y, and _coord::z.
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] |
| 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(), _derivrst::r, _derivrst::s, _derivrst::t, _coord::x, _coord::y, and _coord::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 * | ) | [static] |
Definition at line 277 of file tetra4.c.
References _TETR4FaceCenter(), _coord::x, _coord::y, and _coord::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] |
| static void _TETR4ShapeFunc | ( | double | , | |
| double | , | |||
| double | , | |||
| double | [] | |||
| ) | [static] |
| static double _TETR4Volume | ( | sCoord * | ) | [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(), _node::coord, _element::nodes, _coord::x, _coord::y, and _coord::z.
Referenced by TETR4Load().
Here is the call graph for this function:

Here is the caller graph for this function:

| static void TETR4AssVector | ( | sElement * | , | |
| double * | , | |||
| double * | ||||
| ) | [static] |
Definition at line 956 of file tetra4.c.
References _element::data, ElmConnect, and _tetr4elm::NumNodes.
Referenced by TETR4Init().
Here is the caller graph for this function:

| static void TETR4Connect | ( | sElement * | , | |
| int * | ||||
| ) | [static] |
Definition at line 928 of file tetra4.c.
References _element::data, _tetr4elm::inc, and NumNodes.
Referenced by TETR4Init().
Here is the caller graph for this function:

| static void TETR4Free | ( | sElement * | ) | [static] |
Definition at line 741 of file tetra4.c.
References _element::data.
Referenced by TETR4Init().
Here is the caller graph for this function:

| static void TETR4GetDof | ( | sElement * | , | |
| int | [24], | |||
| int * | ||||
| ) | [static] |
Definition at line 1845 of file tetra4.c.
References _element::data, _tetr4elm::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 _element::data, _tetr4elm::inc, and NumNodes.
Referenced by TETR4Init().
Here is the caller graph for this function:

| static void TETR4Gravity | ( | sElement * | , | |
| double * | , | |||
| double * | , | |||
| double * | ||||
| ) | [static] |
Definition at line 1541 of file tetra4.c.
References _TETR4GetCoord(), _TETR4Volume(), _element::data, GravForce, MatDensity, _tetr4elm::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 | ) |
Definition at line 1120 of file tetra4.c.
References _GPoint, _GWeight, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4Jacobian(), _element::data, _tetr4elm::istr, _tetr4elm::NumNodes, _tensor::xx, _tensor::xy, _tensor::xz, _tensor::yy, _tensor::yz, and _tensor::zz.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

| static void TETR4KMatrix | ( | sElement * | , | |
| double | [24][24] | |||
| ) | [static] |
Definition at line 1777 of file tetra4.c.
References _GPoint, _GWeight, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4Jacobian(), _element::data, MatConstitutiveMatrix, _tetr4elm::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, _node::coord, _element::data, _tetr4elm::inc, _element::nodes, NodeVector, NumNodes, RigidCoeff(), UNIFORM, _coord::x, _coord::y, and _coord::z.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

| static void TETR4MassMatrix | ( | sElement * | , | |
| double * | ||||
| ) | [static] |
Definition at line 850 of file tetra4.c.
References _GPoint, _GWeight, _TETR4GetCoord(), _TETR4Jacobian(), _TETR4ShapeFunc(), _element::data, MatDensity, _tetr4elm::matid, and MatList.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 692 of file tetra4.c.
References DSP_NO, _tetr4elm::effdef, _tetr4elm::istr, _tetr4elm::matid, NONE, _tetr4elm::NumNodes, _tetr4elm::NumTensComp, _tetr4elm::prof, _tetr4elm::tckid, and TETR4.
Referenced by TETR4Init().
Here is the caller graph for this function:

| static void TETR4NumNodes | ( | sElement * | , | |
| int * | ||||
| ) | [static] |
Definition at line 944 of file tetra4.c.
References _element::data, and _tetr4elm::NumNodes.
Referenced by TETR4Init().
Here is the caller graph for this function:

| static void TETR4PercForces | ( | sElement * | , | |
| double * | ||||
| ) | [static] |
Definition at line 1579 of file tetra4.c.
References _GPoint, _GWeight, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4Jacobian(), _TETR4ShapeFunc(), _element::data, _node::dof, _tetr4elm::inc, _tetr4elm::matid, MatList, _element::nodes, NumNodes, _dof::psi, _material::Rhof, _tensor::xx, _coord::y, _tensor::yy, and _tensor::zz.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

| static void TETR4Read | ( | sElement * | ) | [static] |
Definition at line 764 of file tetra4.c.
References _element::data, _tetr4elm::inc, and nf.
Referenced by TETR4Init().
Here is the caller graph for this function:

| static int TETR4ReadInitStress | ( | sElement * | ) | [static] |
Definition at line 790 of file tetra4.c.
References _element::data, _tetr4elm::istr, and nf.
Referenced by TETR4Init().
Here is the caller graph for this function:

| static void TETR4ReadProfile | ( | sElement * | ) | [static] |
| static double TETR4RigidCoeff | ( | sElement * | ) | [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:

Definition at line 1670 of file tetra4.c.
References _element::data, _tetr4elm::istr, _tensor::xx, _tensor::xy, _tensor::xz, _tensor::yy, _tensor::yz, and _tensor::zz.
Referenced by TETR4Init().
Here is the caller graph for this function:

| static void TETR4SetPressure | ( | sElement * | , | |
| double | ||||
| ) | [static] |
Definition at line 1644 of file tetra4.c.
References _TETR4GetCoord(), _element::data, _node::dof, _tetr4elm::inc, _element::nodes, _dof::psi, and _coord::y.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

| static void TETR4StressStrain | ( | sElement * | , | |
| double | , | |||
| double * | , | |||
| double * | , | |||
| sTensor * | , | |||
| sTensor * | ||||
| ) | [static] |
Definition at line 985 of file tetra4.c.
References _GPoint, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4GetDisplacement(), Config, _element::data, _tetr4elm::effdef, GForce, _tetr4elm::istr, _material::Lambda, _config::loadfactor, MatConstitutiveMatrix, MatDensity, _tetr4elm::matid, MatList, MatUpdateParameter, MatUpdateStress, _tetr4elm::NumNodes, _tetr4elm::prof, _tensor::xx, _tensor::xy, _tensor::xz, _tensor::yy, _tensor::yz, and _tensor::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 * | , | |
| double * | ||||
| ) | [static] |
Definition at line 1497 of file tetra4.c.
References _TETR4GetCoord(), _TETR4MinHeight(), _element::data, KELVIN, _tetr4elm::matid, MatList, MatTimeStep, and _material::type.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1443 of file tetra4.c.
References _GPoint, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4GetDisplacement(), _element::data, _tensor::xx, _tensor::xy, _tensor::yy, and _tensor::zz.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

Definition at line 1695 of file tetra4.c.
References _GPoint, _GWeight, _TETR4BMatrix(), _TETR4GetCoord(), _TETR4Jacobian(), _element::data, MatConstitutiveMatrix, MaterialIsVisco(), _tetr4elm::matid, MatList, MatViscoStrain, _tetr4elm::NumNodes, _tensor::xx, _tensor::xy, _tensor::xz, _tensor::yy, _tensor::yz, and _tensor::zz.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

| static void TETR4WriteGaussResult | ( | sElement * | , | |
| FILE * | , | |||
| FILE * | ||||
| ) | [static] |
Definition at line 1273 of file tetra4.c.
References Config, _ptensor::dir1, _ptensor::dir2, _ptensor::dir3, _config::gaussresults, _element::label, _config::numgaussresults, PrincipalTensor(), _tensor::xx, _tensor::xy, _tensor::xz, _tensor::yy, _tensor::yz, and _tensor::zz.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

| static void TETR4WriteGaussVectorResult | ( | sElement * | , | |
| int | , | |||
| FILE * | , | |||
| FILE * | ||||
| ) | [static] |
Definition at line 1346 of file tetra4.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 TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

| static void TETR4WriteNodalResult | ( | sElement * | , | |
| FILE * | , | |||
| FILE * | ||||
| ) | [static] |
Definition at line 1233 of file tetra4.c.
References _ptensor::dir1, _ptensor::dir2, _ptensor::dir3, _element::label, PrincipalTensor(), _tensor::xx, _tensor::xy, _tensor::xz, _tensor::yy, _tensor::yz, and _tensor::zz.
Referenced by TETR4Init().
Here is the call graph for this function:

Here is the caller graph for this function:

| static void TETR4WriteStress | ( | sElement * | , | |
| FILE * | , | |||
| double * | , | |||
| double * | ||||
| ) | [static] |
Definition at line 1183 of file tetra4.c.
References _ptensor::dir1, _ptensor::dir2, _ptensor::dir3, DONE, PrincipalTensor(), _element::rezone, TETR4StressStrain(), _tensor::xx, _tensor::xy, _tensor::xz, _tensor::yy, _tensor::yz, and _tensor::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 _element::data, nf, and _tetr4elm::prof.
Referenced by TETR4Init().
Here is the caller graph for this function:

1.5.1