00001 // ------------------------------------------------------------------------- 00002 // ShpTet10.h - this file contains methods for the 10-noded quadratic 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. then, also counterclockwise, the nodes at the middle 00012 // of the edges that go from the node with L4 = 1 to the 00013 // the face with L4 = 0, 00014 // 3. and finally the node at the vertice with L4 = 1. 00015 // 00016 // + 10 00017 // /|\ 00018 // / | \ 00019 // / | \ 00020 // / | \ 00021 // / | \ 00022 // 7/ | \8 00023 // / | \ 00024 // / |9 \ 00025 // / | \ 00026 // / | \ 00027 // / | \ 00028 // 1+ . . . . . | .2. . . . +3 00029 // \_ | _/ 00030 // \_ | _/ 00031 // \_ | _/ 00032 // 6\_ | _/4 00033 // \_ | _/ 00034 // \|/ 00035 // + 5 00036 // 00037 // 00038 // Internal numbering: 00039 // 00040 // 00041 // 9 (L4=1) 00042 // /|\ 00043 // / | \ 00044 // / | \ 00045 // / | \ 00046 // / | \ 00047 // 6 | 7 00048 // / | \ 00049 // / | \ 00050 // / 8 \ 00051 // / | \ 00052 // / | \ 00053 // (L1=1) 0 . . . . . | 1 . . . . 2 (L2=1) 00054 // \_ | _/ 00055 // \_ | _/ 00056 // 5_ | _3 00057 // \_ | _/ 00058 // \_ | _/ 00059 // \|/ 00060 // 4 (L3=1) 00061 // 00062 // ------------------------------------------------------------------------- 00063 // 00064 // $Author: evandro $ 00065 // $Revision: 1.3 $ 00066 // $Date: 1999/04/12 14:58:25 $ 00067 // $State: Exp $ 00068 // 00069 // ------------------------------------------------------------------------- 00070 00071 #ifndef _SHPTETR10_H 00072 #define _SHPTETR10_H 00073 00074 #include "gbldefs.h" 00075 #include "shpsolid.h" 00076 00077 // ------------------------------------------------------------------------- 00078 // Tetr10 (Finite) Element Shape class: 00079 // 00080 class cShapeTetr10 : public cSolidShape 00081 { 00082 public: 00083 cShapeTetr10 ( void ); 00084 virtual ~cShapeTetr10 ( void ); 00085 int GetMapOrder ( void ) { return 2; } 00086 void DerivMapRST ( sNatCoord *, sDerivNat * ); 00087 void DerivShpRST ( sNatCoord *, sDerivNat * ); 00088 int GetEdge ( int *, eShapeType *, int *, int * ); 00089 int GetFace ( int *, eShapeType *, int *, int * ); 00090 void MapFunc ( sNatCoord *, double * ); 00091 void ShapeFunc ( sNatCoord *, double * ); 00092 void GetNatCoordMapNode( sNatCoord * ); 00093 }; 00094 00095 #endif