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
00034
00035
00036
00037
00038
00039
00040 #ifndef UniaxialFiber2d_h
00041 #define UniaxialFiber2d_h
00042
00043 #include <Fiber.h>
00044 #include <Vector.h>
00045 #include <Matrix.h>
00046
00047 class UniaxialMaterial;
00048 class Parameter;
00049
00050 class UniaxialFiber2d : public Fiber
00051 {
00052 public:
00053 UniaxialFiber2d ();
00054 UniaxialFiber2d (int tag, UniaxialMaterial &theMat, double Area, double position);
00055 ~UniaxialFiber2d();
00056
00057
00058 int setTrialFiberStrain(const Vector &vs);
00059 Vector &getFiberStressResultants (void);
00060 Matrix &getFiberTangentStiffContr (void);
00061
00062 int commitState(void);
00063 int revertToLastCommit(void);
00064 int revertToStart(void);
00065
00066 Fiber *getCopy(void);
00067 int getOrder(void);
00068 const ID &getType(void);
00069
00070 int sendSelf(int cTag, Channel &theChannel);
00071 int recvSelf(int cTag, Channel &theChannel, FEM_ObjectBroker &theBroker);
00072 void Print(OPS_Stream &s, int flag =0);
00073
00074 Response *setResponse(const char **argv, int argc, Information &info, OPS_Stream &s);
00075 int getResponse(int responseID, Information &info);
00076
00077 void getFiberLocation(double &y, double &z);
00078 UniaxialMaterial *getMaterial(void) {return theMaterial;};
00079 double getArea(void) {return area;};
00080
00081 int setParameter(const char **argv, int argc, Parameter ¶m);
00082 int updateParameter(int parameterID, Information &info);
00083 int activateParameter(int parameterID);
00084
00085 const Vector &getFiberSensitivity(int gradNumber, bool cond);
00086 int commitSensitivity(const Vector &dedh, int gradNumber,
00087 int numGrads);
00088
00089 protected:
00090
00091 private:
00092 UniaxialMaterial *theMaterial;
00093 double area;
00094 double y;
00095
00096 static Matrix ks;
00097 static Vector fs;
00098
00099 static ID code;
00100 };
00101
00102
00103 #endif
00104
00105
00106
00107
00108
00109