#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 |
| 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 void _Q4DerivShp | ( | double | r, | |
| double | s, | |||
| sDerivRST | dshp[4] | |||
| ) | [static] |
| static void _Q4DerivShp | ( | double | , | |
| double | , | |||
| sDerivRST | [] | |||
| ) | [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.
Definition at line 197 of file q4.c.
References _node::coord, _element::data, _q4elm::inc, _element::nodes, _coord::x, _coord::y, and _coord::z.
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] |
| static void _Q4GetDisplacement | ( | sElement * | , | |
| double * | , | |||
| double | [] | |||
| ) | [static] |
| 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] |
| 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 | ) |
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:

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:

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:

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:

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:

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