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 #ifndef ElasticSection2d_h
00026 #define ElasticSection2d_h
00027
00028 #include <SectionForceDeformation.h>
00029 #include <Matrix.h>
00030 #include <Vector.h>
00031
00032 class Channel;
00033 class FEM_ObjectBroker;
00034 class Information;
00035
00036 class ElasticSection2d: public SectionForceDeformation
00037 {
00038 public:
00039 ElasticSection2d(int tag, double E, double A, double I);
00040 ElasticSection2d(void);
00041 ~ElasticSection2d(void);
00042
00043 int commitState(void);
00044 int revertToLastCommit(void);
00045 int revertToStart(void);
00046
00047 const char *getClassType(void) const {return "ElasticSection2d";};
00048
00049 int setTrialSectionDeformation(const Vector&);
00050 const Vector &getSectionDeformation(void);
00051
00052 const Vector &getStressResultant(void);
00053 const Matrix &getSectionTangent(void);
00054 const Matrix &getInitialTangent(void);
00055 const Matrix &getSectionFlexibility(void);
00056 const Matrix &getInitialFlexibility(void);
00057
00058 SectionForceDeformation *getCopy(void);
00059 const ID &getType(void);
00060 int getOrder(void) const;
00061
00062 int sendSelf(int commitTag, Channel &theChannel);
00063 int recvSelf(int commitTag, Channel &theChannel,
00064 FEM_ObjectBroker &theBroker);
00065
00066 void Print(OPS_Stream &s, int flag =0);
00067
00068 int setParameter(const char **argv, int argc, Parameter ¶m);
00069 int updateParameter(int parameterID, Information &info);
00070 int activateParameter(int parameterID);
00071 const Vector& getStressResultantSensitivity(int gradNumber,
00072 bool conditional);
00073 const Vector& getSectionDeformationSensitivity(int gradNumber);
00074 const Matrix& getInitialTangentSensitivity(int gradNumber);
00075 int commitSensitivity(const Vector& sectionDeformationGradient,
00076 int gradNumber, int numGrads);
00077
00078 protected:
00079
00080 private:
00081
00082 double E, A, I;
00083
00084 Vector e;
00085 Vector eCommit;
00086
00087 static Vector s;
00088 static Matrix ks;
00089 static ID code;
00090
00091 int parameterID;
00092 };
00093
00094 #endif