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
00027
00028
00029
00030
00031
00032
00033 #ifndef FiberSectionGJ_h
00034 #define FiberSectionGJ_h
00035
00036 #include <SectionForceDeformation.h>
00037 #include <Vector.h>
00038 #include <Matrix.h>
00039
00040 class UniaxialMaterial;
00041 class Fiber;
00042 class Response;
00043
00044 class FiberSectionGJ : public SectionForceDeformation
00045 {
00046 public:
00047 FiberSectionGJ();
00048 FiberSectionGJ(int tag, int numFibers, Fiber **fibers, double GJ = 1.0e10);
00049 ~FiberSectionGJ();
00050
00051 const char *getClassType(void) const {return "FiberSectionGJ";};
00052
00053 int setTrialSectionDeformation(const Vector &deforms);
00054 const Vector &getSectionDeformation(void);
00055
00056 const Vector &getStressResultant(void);
00057 const Matrix &getSectionTangent(void);
00058 const Matrix &getInitialTangent(void);
00059
00060 int commitState(void);
00061 int revertToLastCommit(void);
00062 int revertToStart(void);
00063
00064 SectionForceDeformation *getCopy(void);
00065 const ID &getType (void);
00066 int getOrder (void) const;
00067
00068 int sendSelf(int cTag, Channel &theChannel);
00069 int recvSelf(int cTag, Channel &theChannel,
00070 FEM_ObjectBroker &theBroker);
00071 void Print(OPS_Stream &s, int flag = 0);
00072
00073 Response *setResponse(const char **argv, int argc, Information &info, OPS_Stream &s);
00074 int getResponse(int responseID, Information &info);
00075
00076 int addFiber(Fiber &theFiber);
00077
00078 int setParameter(const char **argv, int argc, Parameter ¶m);
00079
00080 protected:
00081
00082 private:
00083 int numFibers;
00084 UniaxialMaterial **theMaterials;
00085 double *matData;
00086 double kData[6];
00087 double sData[3];
00088
00089 double yBar;
00090 double zBar;
00091
00092 Vector e;
00093 Vector eCommit;
00094
00095 static ID code;
00096 static Vector s;
00097 static Matrix ks;
00098
00099 double GJ;
00100 };
00101
00102 #endif