00001 // ------------------------------------------------------------------------- 00002 // ShpTetr4.h - this file contains methods for the 4-noded tri-linear 00003 // tetrahedron solid finite element shape. 00004 // ------------------------------------------------------------------------- 00005 // Remarks: 00006 // ------------------------------------------------------------------------- 00007 // 00008 // The nodes are numbered according to the following rule: 00009 // 1. first, counterclockwise, the nodes at the face with 00010 // natural coordinate L4 = 0, 00011 // 2. and finally the node at the vertice with L4 = 1. 00012 // 00013 // + 4 00014 // /|\ 00015 // / | \ 00016 // / | \ 00017 // / | \ 00018 // / | \ 00019 // / | \ 00020 // / | \ 00021 // / | \ 00022 // / | \ 00023 // / | \ 00024 // / | \ 00025 // 1+ . . . . . | . . . . . +2 00026 // \_ | _/ 00027 // \_ | _/ 00028 // \_ | _/ 00029 // \_ | _/ 00030 // \_ | _/ 00031 // \|/ 00032 // + 3 00033 // 00034 // 00035 // Internal numbering: 00036 // 00037 // 00038 // 3 (L4=1) 00039 // /|\ 00040 // / | \ 00041 // / | \ 00042 // / | \ 00043 // / | \ 00044 // / | \ 00045 // / | \ 00046 // / | \ 00047 // / | \ 00048 // / | \ 00049 // / | \ 00050 // (L1=1) 0 . . . . . | . . . . . 1 (L2=1) 00051 // \_ | _/ 00052 // \_ | _/ 00053 // \_ | _/ 00054 // \_ | _/ 00055 // \_ | _/ 00056 // \|/ 00057 // 2 (L3=1) 00058 // 00059 // ------------------------------------------------------------------------- 00060 // 00061 // $Author: evandro $ 00062 // $Revision: 1.3 $ 00063 // $Date: 1999/04/12 14:58:25 $ 00064 // $State: Exp $ 00065 // 00066 // ------------------------------------------------------------------------- 00067 00068 #ifndef _SHPTETR4_H 00069 #define _SHPTETR4_H 00070 00071 #include "gbldefs.h" 00072 #include "shpsolid.h" 00073 00074 // ------------------------------------------------------------------------- 00075 // Tetr4 (Finite) Element Shape class: 00076 // 00077 class cShapeTetr4 : public cSolidShape 00078 { 00079 public: 00080 cShapeTetr4 ( void ); 00081 virtual ~cShapeTetr4 ( void ); 00082 int GetMapOrder ( void ) { return 1; } 00083 void DerivMapRST ( sNatCoord *, sDerivNat * ); 00084 void DerivShpRST ( sNatCoord *, sDerivNat * ); 00085 int GetEdge ( int *, eShapeType *, int *, int * ); 00086 int GetFace ( int *, eShapeType *, int *, int * ); 00087 void MapFunc ( sNatCoord *, double * ); 00088 void ShapeFunc ( sNatCoord *, double * ); 00089 void GetNatCoordMapNode( sNatCoord * ); 00090 }; 00091 00092 #endif