00001 // ------------------------------------------------------------------------- 00002 // ElcAxShP.h - This header file contains data structure for axisymmetric 00003 // parametric degenerated shell finite element. 00004 // ------------------------------------------------------------------------- 00005 // 00006 // $Author: joaquim $ 00007 // $Revision: 1.1 $ 00008 // $Date: 1998/02/16 20:21:11 $ 00009 // $State: Exp $ 00010 // 00011 // ------------------------------------------------------------------------- 00012 // Description: 00013 // This file contains the data structure necessary to implement 00014 // the Parametric Degenerated Axisymmetric Shell Element. The 00015 // integrations along the thickness are all made prior to the 00016 // assemblage procedures, so that a 1-dimensional integration 00017 // scheme may be used. 00018 // Reference: 00019 // Weaver & Johnston, "Finite Elements for Structural Analysis", p. 257 00020 // Remarks: 00021 // This implementation admits two possibilities for the nodal 00022 // thicnesses and nodal vectors. 00023 // The user may specify the thickness at the nodes by means 00024 // of the neutral file, using the "NODE.THICKNESS" label. If not, 00025 // the thickness at all nodes is assumed to be constant and is 00026 // retrieved from element information. 00027 // The user may specify the nodal "normal" vectors int the neutral 00028 // file, using the "NODE.VECTOR" label. If not, the normal vector 00029 // will be evaluated at all nodes and whenever necessary using 00030 // the shape functions. This may result in adjacent elements which 00031 // overlap. 00032 // ------------------------------------------------------------------------- 00033 00034 #ifndef _ELCAXSHP_H 00035 #define _ELCAXSHP_H 00036 00037 #include "gbldefs.h" 00038 #include "element.h" 00039 #include "elcaxsh.h" 00040 #include "dsa.h" 00041 00042 // ------------------------------------------------------------------------- 00043 // Definition of a Parametric Axisymmetric Shell Element Class: 00044 00045 class cElcAxShPar : public cElcAxShell 00046 { 00047 protected: 00048 sVector *_sTgVec; // tangent unitary vectors at nodes 00049 double *_dNodThick; // nodal thicknesses 00050 public: 00051 cElcAxShPar ( eShapeType ); 00052 virtual ~cElcAxShPar ( void ); 00053 void CreateElement ( eShapeType ); 00054 virtual void Stiffness ( double * ); 00055 virtual void CalcIntPtStress ( void ) ; 00056 virtual int InternalForce ( double * ); 00057 double GetVol ( void ); 00058 protected: 00059 void TMatrix ( sVector, double **); 00060 void BaMatrix ( double **, double *, sDerivNat *, 00061 double, double **); 00062 void BbMatrix ( double **, double *, sDerivNat *, 00063 double, double **); 00064 }; 00065 00066 #endif 00067