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  sInfClass
struct  sInfData

Defines

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

Typedefs

typedef enum _inftype eInfType

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


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, sInfData::NumNodes, and sDerivRST::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 sNode::coord, sElement::data, sInfData::inc, sElement::nodes, NumNodes, sCoord::x, sCoord::y, and sCoord::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 sElement::data, sInfData::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, sInfData::NumNodes, sDerivRST::r, sDerivRST::s, sCoord::x, and sCoord::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 data,
sCoord coord 
) [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 elm,
double *  GMatrix,
double *  matrix 
) [static]

Definition at line 749 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 721 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

static void INFINITEFree ( sElement elm  )  [static]

Definition at line 515 of file inf.c.

References sElement::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(), sElement::data, sInfData::istr, sInfData::NumNodes, sTensor::xx, sTensor::xy, and sTensor::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 elm,
double *  mass 
) [static]

Definition at line 612 of file inf.c.

References _GPoint, _GWeight, _INFINITEGetCoord(), _INFINITEJacobian(), sElement::data, INFINITEMappFunc, MatDensity, sInfData::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  label,
int  matid,
int  intord,
int  tckid,
sElement **  elm,
sElement **  elist,
sNode nodes 
) [static]

Definition at line 470 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 737 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

static void INFINITERead ( sElement elm  )  [static]

Definition at line 538 of file inf.c.

References sElement::data, sInfData::inc, INF_T3, nf, sInfData::NumNodes, and sInfData::type.

Referenced by INFINITEInit().

Here is the caller graph for this function:

static int INFINITEReadInitStress ( sElement elm  )  [static]

Definition at line 572 of file inf.c.

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

Referenced by INFINITEInit().

Here is the caller graph for this function:

static double INFINITERigidCoeff ( sElement elm  )  [static]

Definition at line 677 of file inf.c.

References _GPoint, _GWeight, _INFINITEGetCoord(), _INFINITEJacobian(), sElement::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 elm,
sTensor istress 
) [static]

Definition at line 1433 of file inf.c.

References sElement::data, sInfData::istr, sTensor::xx, sTensor::xy, and sTensor::yy.

Referenced by INFINITEInit().

Here is the caller graph for this function:

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

Definition at line 1406 of file inf.c.

References _INFINITEGetCoord(), sElement::data, sNode::dof, sInfData::inc, sElement::nodes, NumNodes, sDof::psi, and sCoord::y.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 816 of file inf.c.

References _GPoint, _INFINITEBMatrix(), _INFINITEGetCoord(), _INFINITEGetDisplacement(), sElement::data, sInfData::effdef, MatConstitutiveMatrix, sInfData::matid, MatList, MatUpdateParameter, MatUpdateStress, sInfData::NumNodes, sTensor::xx, sTensor::xy, sTensor::yy, and sTensor::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 elm,
double *  dt 
) [static]

Definition at line 778 of file inf.c.

References _INFINITEGetCoord(), _INFINITEMinHeight(), sElement::data, KELVIN, sInfData::matid, MatList, MatTimeStep, and sMaterial::type.

Here is the call graph for this function:

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

Definition at line 1339 of file inf.c.

References _GPoint, _INFINITEBMatrix(), _INFINITEGetCoord(), _INFINITEGetDisplacement(), sElement::data, sTensor::xx, sTensor::xy, and sTensor::yy.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1456 of file inf.c.

References _GPoint, _GWeight, _INFINITEBMatrix(), _INFINITEGetCoord(), _INFINITEJacobian(), sElement::data, MatConstitutiveMatrix, MaterialIsVisco(), sInfData::matid, MatList, MatViscoStrain, sInfData::NumNodes, sTensor::xx, sTensor::xy, and sTensor::yy.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1144 of file inf.c.

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

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1235 of file inf.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 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, sPTensor::dir1, sPTensor::dir2, sPTensor::dir3, sElement::label, PrincipalTensor(), sTensor::xx, sTensor::xy, sTensor::xz, sTensor::yy, sTensor::yz, and sTensor::zz.

Referenced by INFINITEInit().

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 1012 of file inf.c.

References DONE, INFINITEStressStrain(), sElement::rezone, sTensor::xx, sTensor::xy, sTensor::xz, sTensor::yy, sTensor::yz, and sTensor::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 sDerivRST::r, and sDerivRST::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 sDerivRST::r, and sDerivRST::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 sDerivRST::r, and sDerivRST::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 sDerivRST::r, and sDerivRST::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.


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