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