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 #include <stdlib.h>
00033 #include <FedeasSteel2Material.h>
00034
00035 FedeasSteel2Material::FedeasSteel2Material(int tag,
00036 double fy, double E0, double b,
00037 double R0, double cR1, double cR2,
00038 double a1, double a2, double a3, double a4):
00039
00040 FedeasMaterial(tag, MAT_TAG_FedeasSteel2, 8, 10)
00041 {
00042 data[0] = fy;
00043 data[1] = E0;
00044 data[2] = b;
00045 data[3] = R0;
00046 data[4] = cR1;
00047 data[5] = cR2;
00048 data[6] = a1;
00049 data[7] = a2;
00050 data[8] = a3;
00051 data[9] = a4;
00052
00053 tangent = E0;
00054 tangentP = E0;
00055 }
00056
00057 FedeasSteel2Material::FedeasSteel2Material(int tag,
00058 double fy, double E0, double b,
00059 double R0, double cR1, double cR2):
00060
00061 FedeasMaterial(tag, MAT_TAG_FedeasSteel2, 8, 10)
00062 {
00063 data[0] = fy;
00064 data[1] = E0;
00065 data[2] = b;
00066 data[3] = R0;
00067 data[4] = cR1;
00068 data[5] = cR2;
00069
00070
00071 data[6] = 0.0;
00072 data[7] = 1.0;
00073 data[8] = 0.0;
00074 data[9] = 1.0;
00075
00076 tangent = E0;
00077 tangentP = E0;
00078 }
00079
00080 FedeasSteel2Material::FedeasSteel2Material(int tag,
00081 double fy, double E0, double b):
00082
00083 FedeasMaterial(tag, MAT_TAG_FedeasSteel2, 8, 10)
00084 {
00085 data[0] = fy;
00086 data[1] = E0;
00087 data[2] = b;
00088
00089
00090 data[3] = 15.0;
00091 data[4] = 0.925;
00092 data[5] = 0.15;
00093
00094
00095 data[6] = 0.0;
00096 data[7] = 1.0;
00097 data[8] = 0.0;
00098 data[9] = 1.0;
00099
00100 tangent = E0;
00101 tangentP = E0;
00102 }
00103
00104 FedeasSteel2Material::FedeasSteel2Material(int tag, const Vector &d):
00105
00106 FedeasMaterial(tag, MAT_TAG_FedeasSteel2, 8, 10)
00107 {
00108 if (d.Size() != numData) {
00109 opserr << "FedeasSteel2Material::FedeasSteel2Material -- not enough input arguments\n";
00110 exit(-1);
00111 }
00112
00113 for (int i = 0; i < numData; i++)
00114 data[i] = d(i);
00115 }
00116
00117 FedeasSteel2Material::FedeasSteel2Material(void):
00118 FedeasMaterial(0, MAT_TAG_FedeasSteel2, 8, 10)
00119 {
00120
00121 }
00122
00123 FedeasSteel2Material::~FedeasSteel2Material(void)
00124 {
00125
00126 }
00127
00128 UniaxialMaterial*
00129 FedeasSteel2Material::getCopy(void)
00130 {
00131 Vector d(data, numData);
00132
00133 FedeasSteel2Material *theCopy = new FedeasSteel2Material(this->getTag(), d);
00134
00135
00136 for (int i = 0; i < 2*numHstv; i++)
00137 theCopy->hstv[i] = hstv[i];
00138
00139 theCopy->epsilonP = epsilonP;
00140 theCopy->sigmaP = sigmaP;
00141 theCopy->tangentP = tangentP;
00142
00143 theCopy->epsilon = epsilonP;
00144 theCopy->sigma = sigmaP;
00145 theCopy->tangent = tangentP;
00146
00147 return theCopy;
00148 }
00149
00150 double
00151 FedeasSteel2Material::getInitialTangent(void)
00152 {
00153
00154 return data[1];
00155 }