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 #ifndef ElasticSection3d_h
00037 #define ElasticSection3d_h
00038
00039 #include <SectionForceDeformation.h>
00040 #include <Matrix.h>
00041 #include <Vector.h>
00042
00043 #include <Channel.h>
00044 #include <FEM_ObjectBroker.h>
00045 #include <Information.h>
00046
00048 class ElasticSection3d: public SectionForceDeformation
00049 {
00050 public:
00052 ElasticSection3d (int tag, double E, double A, double Iz,
00053 double Iy, double G, double J);
00055 ElasticSection3d (int tag, double EA, double EIz, double EIy, double GJ);
00057 ElasticSection3d (void);
00059 ~ElasticSection3d (void);
00060
00062 int commitState (void);
00064 int revertToLastCommit (void);
00066 int revertToStart (void);
00067
00069 int setTrialSectionDeformation (const Vector&);
00071 const Vector &getSectionDeformation (void);
00072
00074 const Vector &getStressResultant (void);
00076 const Matrix &getSectionTangent (void);
00078 const Matrix &getSectionFlexibility (void);
00079
00081 SectionForceDeformation *getCopy (void);
00083 const ID &getType (void) const;
00085 int getOrder (void) const;
00086
00088 int sendSelf (int commitTag, Channel &theChannel);
00090 int recvSelf (int commitTag, Channel &theChannel,
00091 FEM_ObjectBroker &theBroker);
00092
00094 void Print (ostream &s, int flag = 0);
00095
00096 protected:
00097
00098 private:
00099
00101 double E, A, Iz, Iy, G, J;
00102
00104 Vector e;
00105 Vector eCommit;
00106
00108 static ID code;
00109 };
00110
00111 #endif
00112 ÿ