inf.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 inf.c:

Go to the source code of this file.

Data Structures

struct  _infclass
struct  _infelm

Defines

#define INFINITEMappFunc(d, r, s, map)
#define INFINITEDerivMap(d, r, s, dmap)
#define INFINITEDerivShp(d, r, s, dshp)

Typedefs

typedef enum _inftype eInfType
typedef _infclass sInfClass
typedef _infelm sInfData

Enumerations

enum  _inftype { INF_T3, INF_Q4, NumInfTypes }

Functions

static void _INFINITEGetCoord (sElement *, sCoord[])
static void _INFINITEJacobian (sInfData *, double, double, sCoord[], double *, double[2][2])
static void _INFINITEBMatrix (sInfData *, double, double, sCoord[], double[3][8])
static void _INFINITEGetDisplacement (sElement *, double *, double[])
static double _INFINITEMinHeight (sInfData *, sCoord *)
static void _INFINITEGetDisplacement (sElement *elm, double *U, double ue[8])
static void _INFINITEBMatrix (sInfData *data, double r, double s, sCoord coord[4], double bm[3][8])
static void _INFINITEJacobian (sInfData *data, double r, double s, sCoord coord[4], double *detjac, double jac[2][2])
static void _INFINITEGetCoord (sElement *elm, sCoord coord[4])
static void INFT3MappFunc (double, double, double[])
static void INFT3MappDeriv (double, double, sDerivRST[])
static void INFT3ShapeDeriv (double, double, sDerivRST[])
static void INFQ4MappFunc (double, double, double[])
static void INFQ4MappDeriv (double, double, sDerivRST[])
static void INFQ4ShapeDeriv (double, double, sDerivRST[])
static void INFT3MappFunc (double r, double s, double shape[4])
static void INFT3MappDeriv (double r, double s, sDerivRST dshp[4])
static void INFT3ShapeDeriv (double r, double s, sDerivRST dshp[4])
static void INFQ4MappFunc (double r, double s, double shape[4])
static void INFQ4MappDeriv (double r, double s, sDerivRST dshp[4])
static void INFQ4ShapeDeriv (double r, double s, sDerivRST dshp[4])
static void INFINITENew (int, int, int, int, sElement **, sElement **, sNode *)
static void INFINITEFree (sElement *)
static void INFINITERead (sElement *)
static int INFINITEReadInitStress (sElement *)
static double INFINITERigidCoeff (sElement *)
static void INFINITEMassMatrix (sElement *, double *)
static void INFINITEConnect (sElement *, int *)
static void INFINITENumNodes (sElement *, int *)
static void INFINITEAssVector (sElement *, double *, double *)
static void INFINITETimeStep (sElement *, double *)
static void INFINITEInterForce (sElement *, sTensor *, double[])
static void INFINITEStressStrain (sElement *, double, double *, double *, sTensor *, sTensor *)
static void INFINITEWriteStress (sElement *, FILE *, double *, double *)
static void INFINITEWriteGaussResult (sElement *, FILE *, FILE *)
static void INFINITEWriteGaussVectorResult (sElement *, int, FILE *, FILE *)
static void INFINITEUpdateStress (sElement *, double, double *, sTensor *)
static void INFINITESetPressure (sElement *, double)
static void INFINITESetInitStress (sElement *, sTensor *)
static void INFINITEViscoForce (sElement *, double, sTensor *, double *)
static void INFINITEInterForce (sElement *elm, sTensor *stress, double *intforce)
static void INFINITEWriteNodalResult (sElement *elm, FILE *out, FILE *tmp)
void INFINITEInit (void)

Variables

static double _GPoint [2] = { -0.577350269189626, 0.577350269189626 }
static double _GWeight [2] = { 1.000000000000000, 1.000000000000000 }
static double _TRMatrix [4][4]
static sInfClass InfClass [NumInfTypes]


Define Documentation

#define INFINITEDerivMap ( d,
r,
s,
dmap   ) 

Value:

if(InfClass[d->type].mapderiv != 0L)            \
         (*InfClass[d->type].mapderiv)( r, s, dmap )

Definition at line 120 of file inf.c.

Referenced by _INFINITEJacobian().

#define INFINITEDerivShp ( d,
r,
s,
dshp   ) 

Value:

if(InfClass[d->type].shpderiv != 0L)            \
         (*InfClass[d->type].shpderiv)( r, s, dshp )

Definition at line 124 of file inf.c.

Referenced by _INFINITEBMatrix().

#define INFINITEMappFunc ( d,
r,
s,
map   ) 

Value:

if(InfClass[d->type].mapfunc != 0L)             \
         (*InfClass[d->type].mapfunc)( r, s, map )

Definition at line 116 of file inf.c.

Referenced by INFINITEMassMatrix(), and INFINITERigidCoeff().


Typedef Documentation

typedef enum _inftype eInfType

typedef struct _infclass sInfClass

typedef struct _infelm sInfData


Enumeration Type Documentation

enum _inftype

Enumerator:
INF_T3 
INF_Q4 
NumInfTypes 

Definition at line 50 of file inf.c.


Function Documentation

static void _INFINITEBMatrix ( sInfData *  data,
double  r,
double  s,
sCoord  coord[4],
double  bm[3][8] 
) [static]

Definition at line 210 of file inf.c.

References _INFINITEJacobian(), INFINITEDerivShp, _infelm::NumNodes, and _derivrst::r.

Here is the call graph for this function:

static void _INFINITEBMatrix ( sInfData *  ,
double  ,
double  ,
sCoord  [],
double  [3][8] 
) [static]

Referenced by INFINITEInterForce(), INFINITEStressStrain(), INFINITEUpdateStress(), and INFINITEViscoForce().

Here is the caller graph for this function:

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

Definition at line 291 of file inf.c.

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

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

Referenced by INFINITEInterForce(), INFINITEMassMatrix(), INFINITERigidCoeff(), INFINITESetPressure(), INFINITEStressStrain(), INFINITETimeStep(), INFINITEUpdateStress(), and INFINITEViscoForce().

Here is the caller graph for this function:

static void _INFINITEGetDisplacement ( sElement *  elm,
double *  U,
double  ue[8] 
) [static]

Definition at line 187 of file inf.c.

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

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

Referenced by INFINITEStressStrain(), and INFINITEUpdateStress().

Here is the caller graph for this function:

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

Definition at line 255 of file inf.c.

References INFINITEDerivMap, _infelm::NumNodes, _derivrst::r, _derivrst::s, _coord::x, and _coord::y.

static void _INFINITEJacobian ( sInfData *  ,
double  ,
double  ,
sCoord  [],
double *  ,
double  [2][2] 
) [static]

Referenced by _INFINITEBMatrix(), _INFINITEMinHeight(), INFINITEInterForce(), INFINITEMassMatrix(), INFINITERigidCoeff(), and INFINITEViscoForce().

Here is the caller graph for this function:

static double _INFINITEMinHeight ( sInfData *  ,
sCoord *   
) [static]

Definition at line 145 of file inf.c.

References _GPoint, and _INFINITEJacobian().

Referenced by INFINITETimeStep().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 749 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 721 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

static void INFINITEFree ( sElement *   )  [static]

Definition at line 515 of file inf.c.

References _element::data.

Referenced by INFINITEInit().

Here is the caller graph for this function:

void INFINITEInit ( void   ) 

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

Definition at line 922 of file inf.c.

References _GPoint, _GWeight, _INFINITEBMatrix(), _INFINITEGetCoord(), _INFINITEJacobian(), _element::data, _infelm::NumNodes, _tensor::xx, _tensor::xy, and _tensor::yy.

Here is the call graph for this function:

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 612 of file inf.c.

References _GPoint, _GWeight, _INFINITEGetCoord(), _INFINITEJacobian(), _element::data, INFINITEMappFunc, MatDensity, _infelm::matid, and MatList.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 470 of file inf.c.

References DSP_NO, _infelm::effdef, INF_Q4, INFINITE, _infelm::matid, NONE, _infelm::NumNodes, _infelm::NumTensComp, _infelm::tckid, and _infelm::type.

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 737 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

static void INFINITERead ( sElement *   )  [static]

Definition at line 538 of file inf.c.

References _element::data, _infelm::inc, INF_T3, nf, _infelm::NumNodes, and _infelm::type.

Referenced by INFINITEInit().

Here is the caller graph for this function:

static int INFINITEReadInitStress ( sElement *   )  [static]

Definition at line 572 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

static double INFINITERigidCoeff ( sElement *   )  [static]

Definition at line 677 of file inf.c.

References _GPoint, _GWeight, _INFINITEGetCoord(), _INFINITEJacobian(), _element::data, and INFINITEMappFunc.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1433 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 1406 of file inf.c.

References _INFINITEGetCoord(), _element::data, _node::dof, _infelm::inc, _element::nodes, NumNodes, _dof::psi, and _coord::y.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 816 of file inf.c.

References _GPoint, _INFINITEBMatrix(), _INFINITEGetCoord(), _INFINITEGetDisplacement(), _element::data, _infelm::effdef, MatConstitutiveMatrix, _infelm::matid, MatList, MatUpdateParameter, MatUpdateStress, _tensor::xx, _tensor::xy, _tensor::yy, and _tensor::zz.

Referenced by INFINITEInit(), and INFINITEWriteStress().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 778 of file inf.c.

References _INFINITEGetCoord(), _INFINITEMinHeight(), _element::data, KELVIN, _infelm::matid, MatList, MatTimeStep, and _material::type.

Here is the call graph for this function:

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

Definition at line 1339 of file inf.c.

References _GPoint, _INFINITEBMatrix(), _INFINITEGetCoord(), _INFINITEGetDisplacement(), _element::data, _tensor::xx, _tensor::xy, and _tensor::yy.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1456 of file inf.c.

References _GPoint, _GWeight, _INFINITEBMatrix(), _INFINITEGetCoord(), _INFINITEJacobian(), _element::data, MatConstitutiveMatrix, MaterialIsVisco(), _infelm::matid, MatList, MatViscoStrain, _infelm::NumNodes, _tensor::xx, _tensor::xy, and _tensor::yy.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1144 of file inf.c.

References Config, _ptensor::dir1, _ptensor::dir2, _ptensor::dir3, _config::gaussresults, _element::label, _config::numgaussresults, PrincipalTensor(), _tensor::xx, _tensor::yy, and _tensor::zz.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1235 of file inf.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 INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1069 of file inf.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 INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1012 of file inf.c.

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

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 397 of file inf.c.

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

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 381 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 418 of file inf.c.

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

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 343 of file inf.c.

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

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 328 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 362 of file inf.c.

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

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

Referenced by INFINITEInit().

Here is the caller graph for this function:


Variable Documentation

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

Definition at line 88 of file inf.c.

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

Definition at line 89 of file inf.c.

double _TRMatrix[4][4] [static]

Initial value:

 {
                                 {  1.116025404,  0.250000000,
                                    0.250000000, -0.616025404 },
                                 {  0.683012702,  0.683012702, 
                                   -0.183012702, -0.183012702 },
                                 { -0.183012702, -0.183012702, 
                                    0.683012702,  0.683012702 },
                                 {  0.250000000, -0.616025404, 
                                    1.116025404,  0.250000000 }
                                }

Definition at line 95 of file inf.c.

sInfClass InfClass[NumInfTypes] [static]

Definition at line 110 of file inf.c.

Referenced by INFINITEInit().


Generated on Fri Oct 5 15:55:12 2007 for ReconMS by  doxygen 1.5.1