00001 // ------------------------------------------------------------------------- 00002 // ShpBRICK20.h - this file contains methods for the 20-noded quadratic 00003 // Serendipity brick finite element shape. 00004 // ------------------------------------------------------------------------- 00005 // Remarks: 00006 // ------------------------------------------------------------------------- 00007 // The numbering scheme is: 00008 // 00009 // s 00010 // ^ 00011 // | (natural coord. system) 00012 // | 00013 // -----> r 00014 // / 00015 // / 00016 // t 00017 // 00018 // 19 18 00019 // +---------------+17 00020 // + +| 00021 // + + | 00022 // 12 + + | 00023 // + + |16 00024 // + + 11 | 00025 // +---------------+ | 00026 // 7| 6 5| +15 00027 // | | + 00028 // | front | + 00029 // 8| face 4| +10 00030 // | | + 00031 // | |+ 00032 // +---------------+ 00033 // 1 2 3 00034 // 00035 // 00036 // Internal numbering: 00037 // 00038 // 18-------17------16 00039 // +| +| 00040 // + | + | 00041 // 11 | 10 | 00042 // + 19 + 15 00043 // + | + | 00044 // 6-------5-------4 | 00045 // | | | | 00046 // | 12------13-|-----14 00047 // | + | + 00048 // 7 + 3 + 00049 // | 8 | 9 00050 // | + | + 00051 // |+ |+ 00052 // 0-------1-------2 00053 // 00054 // ------------------------------------------------------------------------- 00055 // 00056 // $Author: evandro $ 00057 // $Revision: 1.3 $ 00058 // $Date: 1999/04/12 14:58:25 $ 00059 // $State: Exp $ 00060 // 00061 // ------------------------------------------------------------------------- 00062 00063 #ifndef _SHPBRICK20_H 00064 #define _SHPBRICK20_H 00065 00066 #include "gbldefs.h" 00067 #include "shpsolid.h" 00068 00069 // ------------------------------------------------------------------------- 00070 // Brick20 (Finite) Element Shape class: 00071 // 00072 class cShapeBrick20 : public cSolidShape 00073 { 00074 public: 00075 cShapeBrick20 ( void ); 00076 virtual ~cShapeBrick20 ( void ); 00077 int GetMapOrder ( void ) { return 2; } 00078 void DerivMapRST ( sNatCoord *, sDerivNat * ); 00079 void DerivShpRST ( sNatCoord *, sDerivNat * ); 00080 int GetEdge ( int *, eShapeType *, int *, int * ); 00081 int GetFace ( int *, eShapeType *, int *, int * ); 00082 void MapFunc ( sNatCoord *, double * ); 00083 void ShapeFunc ( sNatCoord *, double * ); 00084 void GetNatCoordMapNode( sNatCoord * ); 00085 }; 00086 #endif 00087