00001 // ------------------------------------------------------------------------- 00002 // shpquad5.h - this file contains methods for the 5-noded 00003 // quadrilateral element shape. 00004 // ------------------------------------------------------------------------- 00005 // Remarks: 00006 // ------------------------------------------------------------------------- 00007 // This shape contains an extra node at center for displacement 00008 // interpolation. 00009 // The bubble function [(1-r*r)*(1-s*s)] is associated to this node in 00010 // order to compute the element stiffness matrix. 00011 // After that, the stiffness matrix is condensed to obtain the final 00012 // element stiffness matrix in terms of the original corner nodes 00013 // (as in a Q4 element). 00014 // ------------------------------------------------------------------------- 00015 // The numbering scheme is: 00016 // 00017 // s 00018 // ^ 00019 // | (natural coord. system) 00020 // | 00021 // -----> r 00022 // 00023 // 00024 // 4 +---------------+ 3 00025 // | | 00026 // | | 00027 // | | 00028 // | * 5 | 00029 // | | 00030 // | QUAD5 | 00031 // 1 +---------------+ 2 00032 // 00033 // Obs: 5 is an internal dof (nodeless). 00034 // 00035 // ------------------------------------------------------------------------- 00036 // 00037 // $Author: evandro $ 00038 // $Revision: 1.3 $ 00039 // $Date: 1999/04/12 14:58:25 $ 00040 // $State: Exp $ 00041 // 00042 // ------------------------------------------------------------------------- 00043 00044 #ifndef _SHPQUAD5_H 00045 #define _SHPQUAD5_H 00046 00047 #include "gbldefs.h" 00048 #include "shpplane.h" 00049 00050 // ------------------------------------------------------------------------- 00051 // Quad5 (Finite) Element Shape class: 00052 // 00053 class cShapeQuad5 : public cPlaneShape 00054 { 00055 public: 00056 cShapeQuad5 ( void ); 00057 virtual ~cShapeQuad5 ( void ); 00058 int GetMapOrder ( void ) { return 1; } 00059 void MapFunc ( sNatCoord *, double * ); 00060 void ShapeFunc ( sNatCoord *, double * ); 00061 void DerivMapRST ( sNatCoord *, sDerivNat * ); 00062 void DerivShpRST ( sNatCoord *, sDerivNat * ); 00063 int GetEdge ( int *, eShapeType *, int *, int * ); 00064 int GetFace ( int *, eShapeType *, int *, int * ); 00065 void GetNatCoordMapNode( sNatCoord * ); 00066 }; 00067 00068 #endif