00001 // ------------------------------------------------------------------------- 00002 // Element.h - This header file contains the data structure definitions 00003 // for the Element Class mechanism within FEMOOP. 00004 // ------------------------------------------------------------------------- 00005 // 00006 // Description: There are many conceptual operations which are common 00007 // to all types of elements. ( these operations include: 00008 // compute stiffness matrices, Integration point locations, 00009 // strain-displacement [B] matrix, etc... ). In FEMOOP, 00010 // these types of routines are stored in a data structure 00011 // called an element "class". General procedures can be 00012 // written which will operate properly for all element 00013 // classes currently in the system. 00014 // 00015 // Note that this system is only for procedures which 00016 // vary between different types of elements. Specifically, 00017 // material models ( [C] matrices ) may be common among 00018 // a number of different element classes and will have 00019 // their own methods. 00020 // 00021 // ------------------------------------------------------------------------- 00022 // Main public methods: 00023 // ------------------------------------------------------------------------- 00024 // 00025 // static cElement *GetElmHead( void ) 00026 // 00027 // Returns the head of element list. 00028 // ------------------------------------------------------------------------- 00029 // 00030 // static cElement *ReadAll( void ) 00031 // 00032 // Reads element thickness, integration orders, and all elements. Returns 00033 // the head of element list. 00034 // ------------------------------------------------------------------------- 00035 // 00036 // static cElement *GetAddr( int label ) 00037 // 00038 // label - given element label (id) ( in ) 00039 // 00040 // Searches the given label in the element list and returns a pointer to 00041 // the given element or NULL if the element does not exist. 00042 // ------------------------------------------------------------------------- 00043 // 00044 // static void FreeAll( void ) 00045 // 00046 // Frees all the memory used by mesh elements. 00047 // ------------------------------------------------------------------------- 00048 // 00049 // static int GlobalDirections( int dir_efect[6] ) 00050 // 00051 // dir_efect - vector with global direction flags ( out ) 00052 // 00053 // Fills a vector with flags for global directions (u,v,w,rx,ry and rz). 00054 // If the direction is active in at least one element analysis model then 00055 // flag = 1, otherwise flag = 0. 00056 // ------------------------------------------------------------------------- 00057 // 00058 // static int GetMaxElementNodes( void ) 00059 // 00060 // Returns the maximum number of element nodes. 00061 // ------------------------------------------------------------------------- 00062 // 00063 // static int GetMaxIntPts( void ) 00064 // 00065 // Returns the maximum number of element integration points. 00066 // ------------------------------------------------------------------------- 00067 // 00068 // static int GetMaxDofs( void ) 00069 // 00070 // Returns the maximum number of element degrees of freedom. 00071 // ------------------------------------------------------------------------- 00072 // 00073 // static int GetNumMeshElem( void ) 00074 // 00075 // Returns the total number of mesh elements. 00076 // ------------------------------------------------------------------------- 00077 // static int ExistThermalLoad( void ) 00078 // 00079 // Returns 1 if there are thermal loads applied to at least one element 00080 // and 0 otherwise. 00081 // ------------------------------------------------------------------------- 00082 // 00083 // cElement *GetNextElm( void ) 00084 // 00085 // Returns the next element in the element list. 00086 // ------------------------------------------------------------------------- 00087 // 00088 // eElementType GetType( void ) 00089 // 00090 // Returns the element type. 00091 // ------------------------------------------------------------------------- 00092 // 00093 // int GetLabel( void ) 00094 // 00095 // Returns the element label. 00096 // ------------------------------------------------------------------------- 00097 // 00098 // int GetMatLabel( void ) 00099 // 00100 // Returns the material label. 00101 // ------------------------------------------------------------------------- 00102 // 00103 // int GetIntLabel( void ) 00104 // 00105 // Returns the integration (quadrature) label. 00106 // ------------------------------------------------------------------------- 00107 // 00108 // double GetThickness( void ) 00109 // 00110 // Returns the element thickness. 00111 // ------------------------------------------------------------------------- 00112 // 00113 // int GetNumIntPts( void ) 00114 // 00115 // Returns the number of element integration points. 00116 // ------------------------------------------------------------------------- 00117 // 00118 // cMaterial *GetMaterial( void ) 00119 // 00120 // Returns a pointer to the element material. 00121 // ------------------------------------------------------------------------- 00122 // 00123 // sOrder GetOrder( void ) 00124 // 00125 // Returns the element integration order. 00126 // ------------------------------------------------------------------------- 00127 // 00128 // void GetElmDofs( int *dof ) 00129 // 00130 // dof - array with element equations ( out ) 00131 // 00132 // Fill a given array with the element equations. 00133 // ------------------------------------------------------------------------- 00134 // 00135 // void ActivateDofs( void ) 00136 // 00137 // Turn on the dofs of the associated nodes according the element active 00138 // dofs. 00139 // ------------------------------------------------------------------------- 00140 // 00141 // void AddGlobVector( double *vec_elm, cVector &vec_gbl ) 00142 // 00143 // vec_elm - element vector ( in ) 00144 // vec_gbl - global vector ( in/out ) 00145 // 00146 // Add the element vector (eg. internal force vector) to the global 00147 // (structure) vector. 00148 // ------------------------------------------------------------------------- 00149 // 00150 // void AddGlobVector( double *mat_elm, cSysMatrix *mat_gbl ) 00151 // 00152 // mat_elm - element matrix (in vector form) ( in ) 00153 // mat_gbl - global matrix ( in/out ) 00154 // 00155 // Add the element matrix (eg. stiffness matrix) to the global (structure) 00156 // matrix. 00157 // ------------------------------------------------------------------------- 00158 // 00159 // void GlobalToElement( double *glb_vec, double *elm_vec ) 00160 // 00161 // glb_vec - global vector ( in ) 00162 // elm_vec - element vector ( out ) 00163 // 00164 // Gets the nodal values of the element from a vector of global values. The 00165 // values related to restrained dofs are filled with zero. 00166 // ------------------------------------------------------------------------- 00167 // 00168 // void GetDisplacement( sNodeDispl *node_displ ) 00169 // 00170 // node_displ - nodal displacements in structure form ( out ) 00171 // 00172 // Returns the vector of nodal displacements in structure (u,v,w,rx,ry,rz) 00173 // form. 00174 // ------------------------------------------------------------------------- 00175 // 00176 // void GetDisplacement( double *node_displ ) 00177 // 00178 // node_displ - nodal displacements in vector form ( out ) 00179 // 00180 // Returns the vector of nodal displacements. 00181 // ------------------------------------------------------------------------- 00182 // 00183 // int GetSuppNode( supp ) 00184 // 00185 // supp - vector of support flags (0/1) ( out ) 00186 // 00187 // Assembly a vector with flags for supported nodes and returns the number 00188 // of supported nodes. 00189 // ------------------------------------------------------------------------- 00190 // 00191 // void AddSuppReact( elem_int_force ) 00192 // 00193 // elem_int_force - element stress vector ( out ) 00194 // 00195 // Adds the element internal force to the vector of support reactions if the 00196 // element has any restrained node. 00197 // ------------------------------------------------------------------------- 00198 // 00199 // void GetIntPtStress( sTensor *stress ) 00200 // 00201 // stress - element stress vector ( out ) 00202 // 00203 // Returns a vector with the stresses in each element integration point. 00204 // ------------------------------------------------------------------------- 00205 // 00206 // int IntPtNumScls( void ) 00207 // 00208 // Returns the number of Integration Point Scalar fields, related with the 00209 // constitutive model, to be printed in the output file. 00210 // ------------------------------------------------------------------------- 00211 // 00212 // void IntPtSclLabs( char **label ) 00213 // 00214 // label - integration point scalar labels ( out ) 00215 // 00216 // Returns the vector Integration Point Scalar labels, related with the 00217 // constitutive model, to be printed in the output file. 00218 // ------------------------------------------------------------------------- 00219 // 00220 // void IntPtSclVals( sTensor *elem_istress, double *val ) 00221 // 00222 // elem_istress - integration point stress tensor ( in ) 00223 // val - vector of scalar values ( out ) 00224 // 00225 // Returns the Integration Point Scalar values, related with the 00226 // constitutive model, to be printed in the output file. 00227 // ------------------------------------------------------------------------- 00228 // 00229 // virtual void AdjacentNode( void ) 00230 // 00231 // Adds the element to the lists of adjacent elements of each element 00232 // nodes. 00233 // 00234 // ------------------------------------------------------------------------- 00235 // Virtual functions: 00236 // ------------------------------------------------------------------------- 00237 // 00238 // virtual int GeoNonLinear( void ) 00239 // 00240 // Returns 1 if the element considers the geometrically nonlinear effects 00241 // and 0 otherwise. 00242 // ------------------------------------------------------------------------- 00243 // 00244 // virtual int ThermalEffects( void ) 00245 // 00246 // Returns 1 if the element considers the thermal strains and 0 otherwise. 00247 // ------------------------------------------------------------------------- 00248 // 00249 // virtual int GetNumDofs( void ) 00250 // 00251 // Returns the number of element degrees of freedom. 00252 // ------------------------------------------------------------------------- 00253 // 00254 // virtual void InitState( void ) 00255 // 00256 // Initializes the element internal variables. 00257 // ------------------------------------------------------------------------- 00258 // 00259 // virtual void UpdateState( void ) 00260 // 00261 // Updates the element internal variables after the convergence of the 00262 // interative process at each load step of a nonlinear analysis. 00263 // ------------------------------------------------------------------------- 00264 // 00265 // virtual double GetVol( void ) 00266 // 00267 // Returns the element volume. 00268 // ------------------------------------------------------------------------- 00269 // 00270 // virtual void Stiffness( double *elm_stiff ) 00271 // 00272 // elm_stiff - element stiffness matrix ( out ) 00273 // 00274 // Returns the element tangent stiffness matrix (in vector form). 00275 // ------------------------------------------------------------------------- 00276 // 00277 // virtual void GeoStiffness( double *elm_stiff ) 00278 // 00279 // elm_stiff - element geometric stiffness matrix ( out ) 00280 // 00281 // Returns the element geometric stiffness matrix (in vector form). This 00282 // matrix can be used in the evaluation of the linearized buckling load. 00283 // ------------------------------------------------------------------------- 00284 // 00285 // virtual int InternalForce( double *elm_int_force ) 00286 // 00287 // elm_int_force - element internal force vector ( out ) 00288 // 00289 // Evaluates the element internal force vector. It returns 1 if the of 00290 // succes and 0 otherwise. 00291 // ------------------------------------------------------------------------- 00292 // 00293 // virtual void CalcIntPtStress( void ) 00294 // 00295 // Evaluates the stresses in each element integration point and store them 00296 // in the variable _dIntPtStressVec. 00297 // ------------------------------------------------------------------------- 00298 // 00299 // virtual void NodeStress( sTensor *node_str ) 00300 // 00301 // node_str - element nodal stress vector ( out ) 00302 // 00303 // Returns a vector with the stresses in each element node. This nodal 00304 // stresses are evaluated by extrapolation of integration point stresses. 00305 // ------------------------------------------------------------------------- 00306 // 00307 // virtual void Extrapolate( double **ipt_data, double **node_data ) 00308 // 00309 // ipt_data - matrix (ngp x nd) with int. pt values ( in ) 00310 // node_data - matrix (nne x nd) with nodal values ( out ) 00311 // 00312 // Evaluates the nodal values from a given set of integration point values 00313 // using the Hinton-Campbell scheme, where: 00314 // nd = number of data to be extrapolated (eg. number of stress components) 00315 // ngp = number of element integration point 00316 // nne = number of element nodes 00317 // ------------------------------------------------------------------------- 00318 // virtual void LSInterpolate( double *node_data, double *ipt_data ) 00319 // 00320 // node_data - vector with nodal values ( in ) 00321 // ipt_data - vector with integration point values ( out ) 00322 // 00323 // Evaluates the integration values from a given set of nodal values using 00324 // the Least Square approch. A linear function in parametric space is 00325 // used to generated an approximation of the given data (eg. temperature) 00326 // consistent with the element strains. 00327 // ------------------------------------------------------------------------- 00328 // 00329 // $Author: evandro $ 00330 // $Revision: 1.7 $ 00331 // $Date: 2000/04/10 18:36:03 $ 00332 // $State: Exp $ 00333 // 00334 // ------------------------------------------------------------------------- 00335 00336 // ------------------------------------------------------------------------- 00337 // Global variables and symbols: 00338 // 00339 #ifndef _ELEMENT_H 00340 #define _ELEMENT_H 00341 00342 #include "gbldefs.h" 00343 #include "anmodel.h" 00344 #include "shape.h" 00345 #include "dsa.h" 00346 00347 // ------------------------------------------------------------------------- 00348 // Forward declarations: 00349 // 00350 class cNode; 00351 class cMaterial; 00352 class cIntPt; 00353 class cVector; 00354 class cSysMatrix; 00355 00356 // ------------------------------------------------------------------------- 00357 // (Finite) Element types: 00358 // 00359 typedef enum _elementtype 00360 { 00361 PARAMETRIC, // Parametric element 00362 PARAMETRICTL, // Parametric element/Total Lagrangian 00363 PARAMCONDSD, // Parametric condensed element 00364 ELCTRUSS, // Truss element 00365 ELCTRUSSTL, // Truss element/Total Lagrangian 00366 ELCTRUSSCR, // Truss element/Corotational 00367 ELCBEAM, // Beam element 00368 ELCPLFRAME, // Plane frame element 00369 ELCPLFRWINK, // Elastic foundation (for plane frame) element 00370 ELCCOPLFRAME, // Corotational plane frame element 00371 ELCECPLFRAME, // Enhanced corotational plane frame element 00372 ELCCCPLFRAME, // Const. curv. corotational plane frame element 00373 ELCTCPLFRAME, // Corotational plframe element - Timoshenko theory 00374 DKT, // Discrete Kirchhoff Triangle 00375 DKQ, // Discrete Kirchhoff Quadrilateral 00376 DSG3, // Linear Discrete Shear Gap Triangle 00377 AXISYMSHELL, // Axisymmetric Shell Element 00378 ELCDEGSHELL2D, // Degenerated free-form shell - 2D integrated 00379 ELCDEGSHELL3D, // Degenerated free-form shell - 3D integrated 00380 ELCDSH3DHH9, // Huang-Hnton 9-noded shell element 00381 ELCDSH3DMITC4, // Dvorkin-Bathe 4-noded shell element 00382 ELCDSH3DMITC9, // Bucalem-Bathe 9-noded shell element 00383 ELCDSH3DMITC16 // Bucalem-Bathe 16-noded shell element 00384 } eElementType; 00385 00386 // ------------------------------------------------------------------------- 00387 // Type definitions: 00388 // 00389 typedef struct _tempdata // Temperature data 00390 { 00391 int label; // Element or Node label 00392 double tinf; // Temperature variation in the bottom face 00393 double tsup; // Temperature variation in the top face 00394 00395 } sTempData; 00396 00397 inline int sTempDataCmp(const void *e1, const void *e2) 00398 { 00399 return(((sTempData*)e1)->label - ((sTempData*)e2)->label); 00400 } 00401 00402 // ------------------------------------------------------------------------- 00403 // Definition of a Finite Element Class: 00404 // 00405 class cElement 00406 { 00407 private: 00408 static cElement *ElmHead; 00409 cElement *next; 00410 cElement *prev; 00411 00412 protected: 00413 static int _iNumMeshElem; // Number of mesh elements 00414 static int _iNumSecThicks; // Number of element thickness 00415 static int _iNumSecProps; // Number of sections 00416 static int _iNumKVectors; // Number of beam orient. vectors 00417 static int _iNumEndLibs; // Number of beam end liberations 00418 static int _iNumElemTemp; // Number of elms with temp. var. 00419 static int _iTRNumNodes; // Num. of nodes of curr TR matrix 00420 static int _iPrvOrdLabel; // Previous int. order label 00421 static int _iMaxIntPts; // Max number of int. points/elm. 00422 static int _iMaxElmNodes; // Max nuber of nodal points/elm. 00423 static int _iMaxElmDofs; // Max number of element dofs 00424 static double *_pdSecThicks; // Array of element thickness 00425 static double **_paTRMatrix; // Nodal extrapolation matrix 00426 static double **_paLSMatrix; // Least Square interpolation matrix 00427 static eAnmType _eGblAnmType; // Global analysis model type 00428 static eShapeType _ePrvShpType; // Previous shape type (TR Matrix) 00429 static sSecProp *_psSecProps; // Array of section properties 00430 static sVector *_psKVectors; // Array of beam orient. vectors 00431 static sEndLib *_psEndLibs; // Array of beam end liberations 00432 static sTempData *_ElemTemp; // Element temperatures 00433 int _iElmLabel; // Element label 00434 int _iOrdLabel; // Integration order label 00435 int _iMatLabel; // Material label 00436 int _iThickLabel; // Thickness label 00437 int _iNumIntPts; // Number of elm integration pts 00438 double _dThickness; // Element thickness 00439 double *_dIntPtStressVec; // Integration points stresses 00440 eElementType _eType; // Element type 00441 00442 public: 00443 cAnModel *pcAnm; 00444 cShape *pcShp; 00445 cMaterial *pcMat; 00446 cIntPt *pcSpt; 00447 cIntPt *pcIpt; 00448 00449 public: 00450 static cElement *GetElmHead ( void ) { return ElmHead; } 00451 static cElement *ReadAll ( void ); 00452 static cElement *GetAddr ( int ); 00453 static void FreeAll ( void ); 00454 static void GlobalDirections ( int * ); 00455 static int GetMaxElementNodes( void ){ return _iMaxElmNodes; } 00456 static int GetMaxIntPts ( void ){ return _iMaxIntPts; } 00457 static int GetMaxDofs ( void ){ return _iMaxElmDofs; } 00458 static int GetNumMeshElem ( void ){ return _iNumMeshElem; } 00459 static int ExistThermalLoad ( void ); 00460 cElement ( void ); 00461 virtual ~cElement ( void ); 00462 cElement *GetNextElm ( void ){ return next; } 00463 eElementType GetType ( void ){ return _eType; } 00464 int GetLabel ( void ){ return _iElmLabel; } 00465 int GetMatLabel ( void ){ return _iMatLabel; } 00466 int GetIntLabel ( void ){ return _iOrdLabel; } 00467 int GetThickLabel ( void ){ return _iThickLabel; } 00468 double GetThickness ( void ){ return _dThickness; } 00469 int GetNumIntPts ( void ){ return _iNumIntPts; } 00470 cMaterial *GetMaterial ( void ){ return pcMat; } 00471 sOrder GetOrder ( void ); 00472 void GetElmDofs ( int * ); 00473 void ActivateDofs ( void ); 00474 void AddGlobVector ( double *, cVector & ); 00475 void AddGlobMatrix ( double *, cSysMatrix * ); 00476 void GlobalToElement ( double *, double * ); 00477 void GetDisplacement ( sNodeDispl * ); 00478 void GetDisplacement ( double * ); 00479 int GetSuppNode ( int * ); 00480 void AddSuppReact ( int *, double * ); 00481 void GetIntPtStress ( sTensor * ); 00482 int IntPtNumScls ( void ); 00483 void IntPtSclLabs ( char ** ); 00484 void IntPtSclVals ( sTensor *, double * ); 00485 int GetNumStrainEq ( void ); 00486 void AdjacentNode ( void ); 00487 void SPRMatrixTen ( cNode *, double **, double **); 00488 void SPRRecoverTen ( int, int, dShapeVal *,double **, 00489 int *, sTensor * ); 00490 void WAMatrixTen ( cNode *, double,double **, 00491 double *); 00492 void WARecoverTen ( int, int, dShapeVal *,double *, 00493 int *, sTensor * ); 00494 void REPMatrixTen ( double **, double ** ); 00495 void REPRecoverTen ( int, int, double **, double **, 00496 int *, sTensor * ); 00497 void REPAssemblyPatch ( int, int *, double **,double **, 00498 double **, double ** ); 00499 virtual int GeoNonLinear ( void ) { return 0; } 00500 virtual int ThermalEffects ( void ) { return 0; } 00501 virtual int GetNumDofs ( void ); 00502 virtual void InitState ( void ); 00503 virtual void UpdateState ( void ); 00504 virtual double GetVol ( void ) { return 0.0; } 00505 virtual void Stiffness ( double * ){ } 00506 virtual void GeoStiffness ( double * ){ } 00507 virtual int InternalForce ( double * ){ return 0; } 00508 virtual void CompEquivForce ( double * ) { } 00509 virtual void GetRotMat ( double ** ){ } 00510 virtual void CalcIntPtStress ( void ) { } 00511 virtual void NodeStress ( sTensor * ) { } 00512 virtual void Extrapolate ( double **, double ** ) { } 00513 virtual void LSInterpolate ( double *, double * ) { }; 00514 virtual void StrainVector ( double *, double *,double * ){ } 00515 virtual void NormTensor ( sTensor *, double * ) { }; 00516 virtual void PMatrix ( sNodeCoord *, double ** ) { } 00517 virtual void BPMatrix ( double ** ) { } 00518 00519 virtual double DsaVolumeAm ( sNodeCoord * ) { return 0.0; } 00520 virtual void DsaIntForceAm ( sNodeCoord *, double * ) { } 00521 virtual void DsaStiffMatAm ( sNodeCoord *, double *, 00522 double * ) { } 00523 virtual void DsaGeoStiffAm ( sNodeCoord *, double *, 00524 double *, double * ) { } 00525 virtual void DsaStressAm ( int, sNodeCoord *, 00526 double *, double ** ) { } 00527 virtual void GetRigBodyBasis ( sNodeCoord *, int *, int *, 00528 double **, double ** ); 00529 virtual void GetRigBodyBasis ( sNodeCoord *, int *, int *, 00530 double **, double **, 00531 double **, double ** ); 00532 virtual void GetRigBodyVecs ( sNodeCoord *, int *, int *, 00533 double **, double ** ); 00534 00535 protected: 00536 virtual int GetSurfTemp ( double *, double * ); 00537 virtual int GetStrnTemp ( double *, double * ); 00538 void UpdateMaxSizes ( int, int ); 00539 00540 private: 00541 00542 static void ProcessThickness ( void ); 00543 static void ProcessSectionProperty ( void ); 00544 static void ProcessBeamOrientVector( void ); 00545 static void ProcessBeamEndLib ( void ); 00546 static void ProcessTRUSS ( void ); 00547 static void ProcessTRUSSTL ( void ); 00548 static void ProcessTRUSSCR ( void ); 00549 static void ProcessBEAM ( void ); 00550 static void ProcessPLFRAME ( void ); 00551 static void ProcessPLFRWINK ( void ); 00552 static void ProcessCOPLFRAME ( void ); 00553 static void ProcessECPLFRAME ( void ); 00554 static void ProcessCCPLFRAME ( void ); 00555 static void ProcessTCPLFRAME ( void ); 00556 static void ProcessPSTRESST3 ( void ); 00557 static void ProcessPSTRESST6 ( void ); 00558 static void ProcessPSTRESSQ4 ( void ); 00559 static void ProcessPSTRESSQ8 ( void ); 00560 static void ProcessPSTRESSQ9 ( void ); 00561 static void ProcessPSTRAINT3 ( void ); 00562 static void ProcessPSTRAINT6 ( void ); 00563 static void ProcessPSTRAINQ4 ( void ); 00564 static void ProcessPSTRAINQ8 ( void ); 00565 static void ProcessPSTRAINQ9 ( void ); 00566 static void ProcessAXISYMT3 ( void ); 00567 static void ProcessAXISYMT6 ( void ); 00568 static void ProcessAXISYMQ4 ( void ); 00569 static void ProcessAXISYMQ8 ( void ); 00570 static void ProcessAXISYMQ9 ( void ); 00571 static void ProcessPLATET3 ( void ); 00572 static void ProcessPLATET6 ( void ); 00573 static void ProcessPLATEQ4 ( void ); 00574 static void ProcessPLATEQ8 ( void ); 00575 static void ProcessPLATEQ9 ( void ); 00576 static void ProcessDKT ( void ); 00577 static void ProcessDKQ ( void ); 00578 static void ProcessDSG3 ( void ); 00579 static void ProcessVKARMANQ8 ( void ); 00580 static void ProcessMARGUERQ8 ( void ); 00581 static void ProcessWINKLERL2 ( void ); 00582 static void ProcessWINKLERT3 ( void ); 00583 static void ProcessWINKLERT6 ( void ); 00584 static void ProcessWINKLERQ4 ( void ); 00585 static void ProcessWINKLERQ8 ( void ); 00586 static void ProcessWINKLERQ9 ( void ); 00587 static void ProcessPSTRESSTLT3 ( void ); 00588 static void ProcessPSTRESSTLT6 ( void ); 00589 static void ProcessPSTRESSTLQ4 ( void ); 00590 static void ProcessPSTRESSTLQ8 ( void ); 00591 static void ProcessVKARMANTLQ8 ( void ); 00592 static void ProcessMARGUERTLQ8 ( void ); 00593 static void ProcessL2 ( void ); 00594 static void ProcessL2TL ( void ); 00595 static void ProcessHermite ( void ); 00596 static void ProcessL3 ( void ); 00597 static void ProcessL4 ( void ); 00598 static void ProcessT3 ( void ); 00599 static void ProcessT6 ( void ); 00600 static void ProcessT10 ( void ); 00601 static void ProcessQ4 ( void ); 00602 static void ProcessQ5 ( void ); 00603 static void ProcessQ6 ( void ); 00604 static void ProcessQ6B ( void ); 00605 static void ProcessQ8 ( void ); 00606 static void ProcessQ9 ( void ); 00607 static void ProcessQUAD ( void ); 00608 static void ProcessQ12 ( void ); 00609 static void ProcessQ13 ( void ); 00610 static void ProcessINFINITE ( void ); 00611 static void ProcessINFL4 ( void ); 00612 static void ProcessINFS3 ( void ); 00613 static void ProcessINFS5 ( void ); 00614 static void ProcessBRICK8 ( void ); 00615 static void ProcessBRICK20 ( void ); 00616 static void ProcessTETR4 ( void ); 00617 static void ProcessTETR10 ( void ); 00618 static void ProcessWEDGE6 ( void ); 00619 static void ProcessWEDGE15 ( void ); 00620 static void ProcessT3TL ( void ); 00621 static void ProcessT6TL ( void ); 00622 static void ProcessT10TL ( void ); 00623 static void ProcessQ4TL ( void ); 00624 static void ProcessQ8TL ( void ); 00625 static void ProcessQ9TL ( void ); 00626 static void ProcessTETR4TL ( void ); 00627 static void ProcessTETR10TL ( void ); 00628 static void ProcessBRICK8TL ( void ); 00629 static void ProcessBRICK20TL ( void ); 00630 static void ProcessAXSHH ( void ); 00631 static void ProcessAXSH2 ( void ); 00632 static void ProcessAXSH3 ( void ); 00633 static void ProcessAXSH4 ( void ); 00634 static void ProcessAXSH2_2D ( void ); 00635 static void ProcessAXSH3_2D ( void ); 00636 static void ProcessAXSH4_2D ( void ); 00637 static void ProcessSHQ4_2D ( void ); 00638 static void ProcessSHQ8_2D ( void ); 00639 static void ProcessSHQ9_2D ( void ); 00640 static void ProcessSHQ4_3D ( void ); 00641 static void ProcessSHQ8_3D ( void ); 00642 static void ProcessSHQ9_3D ( void ); 00643 static void ProcessSHQ12_3D ( void ); 00644 static void ProcessSHQ16_3D ( void ); 00645 static void ProcessSH_MITC4 ( void ); 00646 static void ProcessSH_MITC9 ( void ); 00647 static void ProcessSH_MITC16 ( void ); 00648 static void ProcessSH_HH9 ( void ); 00649 static void ProcessElemTemp ( void ); 00650 static int CheckAnModelLinec0 ( void ); 00651 static int CheckAnModelLinec1 ( void ); 00652 static int CheckAnModelAxShLinec1 ( void ); 00653 static int CheckAnModelAxShLinec0 ( void ); 00654 static int CheckAnModelPlnc0 ( void ); 00655 static int CheckAnModelPlnc1 ( void ); 00656 static int CheckAnModelSolid ( void ); 00657 static int CheckAnModelShell ( void ); 00658 }; 00659 00660 #endif