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 Concrete01_h
00027 #define Concrete01_h
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #include <UniaxialMaterial.h>
00043
00044 class Concrete01 : public UniaxialMaterial
00045 {
00046 public:
00047 Concrete01 (int tag, double fpc, double eco, double fpcu, double ecu);
00048 Concrete01 ();
00049 ~Concrete01();
00050
00051 const char *getClassType(void) const {return "Concrete01";};
00052
00053 int setTrialStrain(double strain, double strainRate = 0.0);
00054 int setTrial (double strain, double &stress, double &tangent, double strainRate = 0.0);
00055 double getStrain(void);
00056 double getStress(void);
00057 double getTangent(void);
00058 double getInitialTangent(void) {return 2.0*fpc/epsc0;}
00059
00060 int commitState(void);
00061 int revertToLastCommit(void);
00062 int revertToStart(void);
00063
00064 UniaxialMaterial *getCopy(void);
00065
00066 int sendSelf(int commitTag, Channel &theChannel);
00067 int recvSelf(int commitTag, Channel &theChannel,
00068 FEM_ObjectBroker &theBroker);
00069
00070 void Print(OPS_Stream &s, int flag =0);
00071
00072
00073 int setParameter (const char **argv, int argc, Parameter ¶m);
00074 int updateParameter (int parameterID, Information &info);
00075 int activateParameter (int parameterID);
00076 double getStressSensitivity (int gradNumber, bool conditional);
00077 int commitSensitivity (double strainGradient, int gradNumber, int numGrads);
00078
00079
00080 protected:
00081
00082 private:
00083
00084 double fpc;
00085 double epsc0;
00086 double fpcu;
00087 double epscu;
00088
00089
00090 double CminStrain;
00091 double CunloadSlope;
00092 double CendStrain;
00093
00094
00095 double Cstrain;
00096 double Cstress;
00097 double Ctangent;
00098
00099
00100
00101 double TminStrain;
00102 double TunloadSlope;
00103 double TendStrain;
00104
00105
00106 double Tstrain;
00107 double Tstress;
00108 double Ttangent;
00109
00110
00111 void determineTrialState (double dStrain);
00112
00113 void reload();
00114 void unload();
00115 void envelope();
00116
00117
00118 int parameterID;
00119 Matrix *SHVs;
00120
00121 };
00122
00123
00124 #endif
00125
00126