00001 // ------------------------------------------------------------------------- 00002 // ElcBeam.h - This header file contains methods for beams and 00003 // element classes. 00004 // ------------------------------------------------------------------------- 00005 // 00006 // $Author: evandro $ Gilson Fujii 00007 // $Revision: 1.2 $ 00008 // $Date: 1999/04/12 14:48:47 $ 25 07 96 00009 // $State: Exp $ 00010 // 00011 // ------------------------------------------------------------------------- 00012 // Protected methods: 00013 // ------------------------------------------------------------------------- 00014 // 00015 // int CondenseEndLib(int *endlib, double *mtx) 00016 // 00017 // enlib - beam end liberations (1 = fixed dof/0 = free dof) (in) 00018 // mtx - stiffnes matrix (stored in vector form) (in/out) 00019 // 00020 // This method transforms, by static condensation, a given cannonical beam 00021 // matrix to consider end liberations. 00022 // ------------------------------------------------------------------------- 00023 00024 #ifndef _ELCBEAM_H 00025 #define _ELCBEAM_H 00026 00027 #include "gbldefs.h" 00028 #include "elcbar.h" 00029 00030 // ------------------------------------------------------------------------- 00031 // Definition of a Beam Element Class: 00032 // 00033 class cElcBeam : public cElcBar 00034 { 00035 protected: 00036 int _iOriLabel; // Beam orientation label 00037 int _iLibLabel; // Beam end liberation label 00038 00039 private: 00040 static int CondenseEndLib ( int *, double * ); 00041 static int CondenseEndLib ( int *, double *, double * ); 00042 void CompRotMat ( void ); 00043 void GetRelease ( int * ); 00044 void CompLocStiffMat( double * ); 00045 00046 public: 00047 cElcBeam ( void ); 00048 virtual ~cElcBeam ( void ); 00049 void ReadElmLabels ( void ); 00050 void Stiffness ( double * ); 00051 int InternalForce ( double * ); 00052 void CompEquivForce ( double * ); 00053 void NodeStress ( sTensor * ); 00054 }; 00055 00056 #endif