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 #ifndef UniaxialMaterial_h
00038 #define UniaxialMaterial_h
00039
00040 #define POS_INF_STRAIN 1.0e16
00041 #define NEG_INF_STRAIN -1.0e16
00042
00043 #include <Material.h>
00044 class ID;
00045 class Vector;
00046 class Matrix;
00047 class Information;
00048 class Response;
00049
00050 class SectionForceDeformation;
00051
00052 class UniaxialMaterial : public Material
00053 {
00054 public:
00055 UniaxialMaterial (int tag, int classTag);
00056 virtual ~UniaxialMaterial();
00057
00058 virtual int setTrialStrain (double strain, double strainRate = 0.0) = 0;
00059 virtual int setTrial (double strain, double &stress, double &tangent, double strainRate = 0.0);
00060 virtual double getStrain (void) = 0;
00061 virtual double getStrainRate (void);
00062 virtual double getStress (void) = 0;
00063 virtual double getTangent (void) = 0;
00064 virtual double getInitialTangent (void) = 0;
00065 virtual double getDampTangent (void);
00066 virtual double getSecant (void);
00067 virtual double getRho(void);
00068
00069 virtual int commitState (void) = 0;
00070 virtual int revertToLastCommit (void) = 0;
00071 virtual int revertToStart (void) = 0;
00072
00073 virtual UniaxialMaterial *getCopy (void) = 0;
00074 virtual UniaxialMaterial *getCopy(SectionForceDeformation *s);
00075
00076 virtual Response *setResponse (const char **argv, int argc,
00077 Information &matInformation,
00078 OPS_Stream &theOutputStream);
00079 virtual int getResponse (int responseID, Information &matInformation);
00080
00081
00082 virtual double getStressSensitivity (int gradNumber, bool conditional);
00083 virtual double getStrainSensitivity (int gradNumber);
00084 virtual double getInitialTangentSensitivity(int gradNumber);
00085 virtual double getDampTangentSensitivity(int gradNumber);
00086 virtual double getRhoSensitivity (int gradNumber);
00087 virtual int commitSensitivity (double strainGradient, int gradNumber, int numGrads);
00088
00089
00090 protected:
00091
00092 private:
00093 };
00094
00095
00096 #endif
00097