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