00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #ifndef ElasticSection2d_h
00040 #define ElasticSection2d_h
00041
00042 #include <SectionForceDeformation.h>
00043 #include <Matrix.h>
00044 #include <Vector.h>
00045
00046 #include <Channel.h>
00047 #include <FEM_ObjectBroker.h>
00048 #include <Information.h>
00049
00051 class ElasticSection2d: public SectionForceDeformation
00052 {
00053 public:
00055 ElasticSection2d (int tag, double E, double A, double I);
00057 ElasticSection2d (int tag, double EA, double EI);
00059 ElasticSection2d (void);
00061 ~ElasticSection2d (void);
00062
00064 int commitState (void);
00066 int revertToLastCommit (void);
00068 int revertToStart (void);
00069
00071 int setTrialSectionDeformation (const Vector&);
00073 const Vector &getSectionDeformation (void);
00074
00076 const Vector &getStressResultant (void);
00078 const Matrix &getSectionTangent (void);
00080 const Matrix &getSectionFlexibility (void);
00081
00083 SectionForceDeformation *getCopy (void);
00085 const ID &getType (void) const;
00087 int getOrder (void) const;
00088
00090 int sendSelf (int commitTag, Channel &theChannel);
00092 int recvSelf (int commitTag, Channel &theChannel,
00093 FEM_ObjectBroker &theBroker);
00094
00096 void Print (ostream &s, int flag =0);
00097
00098 protected:
00099
00100 private:
00101
00103 double E, A, I;
00104
00106 Vector e;
00107 Vector eCommit;
00108
00110 static ID code;
00111 };
00112
00113 #endif
00114 ÿ