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