44M4Material :: M4Material(
int n,
Domain *d) :
49M4Material :: FVplus(
double ev,
double k1,
double c13,
double c14,
double c15,
double Ev)
56M4Material :: FVminus(
double ev,
double k1,
double k3,
double k4,
double E)
59 return ( -
E *
k1 *
k3 * exp( -ev / (
k1 *
k4 ) ) );
64M4Material :: FDminus(
double ed,
double k1,
double c7,
double c8,
double c9,
70 return ( -
E *
k1 *
c8 / ( 1 + a * a ) );
74M4Material :: FDplus(
double ed,
double k1,
double c5,
double c6,
double c7,
double c20,
80 return (
E *
k1 *
c5 / ( 1 + a * a ) );
84M4Material :: FN(
double en,
double sv,
double k1,
double c1,
double c2,
double c3,
double c4,
92M4Material :: FT(
double sn,
double ev,
double k1,
double k2,
double c10,
93 double c11,
double c12,
double Et)
105M4Material :: giveRealMicroplaneStressVector(
GaussPoint *gp,
int mnumber,
110 double SEV, SVdash, SED, SEM, SEL, SD;
118 double EpsV = strain.
v;
119 double EpsN = strain.
n;
120 double DEpsV = strain.
v - prevStrain.v;
121 double DEpsN = strain.
n - prevStrain.n;
122 double DEpsL = strain.
l - prevStrain.l;
123 double DEpsM = strain.
m - prevStrain.m;
124 double EpsD = EpsN - EpsV;
125 double DEpsD = DEpsN - DEpsV;
145 SEV = previousStress.
v + CV * DEpsV;
147 SVdash =
min(
max( SEV, this->
FVminus(EpsV,
k1,
k3,
k4,
E) ), this->
FVplus(EpsV,
k1,
c13,
c14,
c15,
EV) );
149 SED = previousStress.n - previousStress.v + CD * DEpsD;
153 SNdash = SVdash + SD;
156 SEM = previousStress.m +
ET * DEpsM;
157 SEL = previousStress.l +
ET * DEpsL;
163 }
else if (
SEL < -F ) {
171 }
else if ( SEM < -F ) {
193 MicroplaneMaterial_Bazant :: initializeFrom(ir);
225 EV =
E / ( 1 - 2 *
nu );
226 ED = 5 *
E / ( 2 + 3 *
mu ) / ( 1 +
nu );
232M4Material :: updateVolumetricStressTo(
GaussPoint *gp,
int mnumber,
double sigv)
const
267M4MaterialStatus :: M4MaterialStatus(
GaussPoint *g,
int nplanes) :
275M4MaterialStatus :: initTempStatus()
277 StructuralMaterialStatus :: initTempStatus();
283 StructuralMaterialStatus :: updateYourself(tStep);
291 StructuralMaterialStatus :: saveContext(stream, mode);
298 StructuralMaterialStatus :: restoreContext(stream, mode);
#define REGISTER_Material(class)
void letTempMicroplaneStrainBe(int mnumber, const MicroplaneState &state)
const MicroplaneState & giveMicroplaneStress(int mnumber) const
const MicroplaneState & giveMicroplaneStrain(int mnumber) const
const MicroplaneState & giveTempMicroplaneStress(int mnumber) const
void letTempMicroplaneStressBe(int mnumber, const MicroplaneState &state)
std::vector< MicroplaneState > microplaneStrain
std::vector< MicroplaneState > tempMicroplaneStress
std::vector< MicroplaneState > tempMicroplaneStrain
std::vector< MicroplaneState > microplaneStress
static double FVplus(double ev, double k1, double c13, double c14, double c15, double Ev)
static double FT(double sn, double ev, double k1, double k2, double c10, double c11, double c12, double Et)
static double FVminus(double ev, double k1, double k3, double k4, double E)
static double FDplus(double ed, double k1, double c5, double c6, double c7, double c20, double E)
static double FDminus(double ed, double k1, double c7, double c8, double c9, double E)
static double FN(double en, double sv, double k1, double c1, double c2, double c3, double c4, double E, double Ev)
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
MicroplaneMaterial_Bazant(int n, Domain *d)
double nu
Poisson's ratio.
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
#define _IFT_M4Material_k4
#define _IFT_M4Material_c3
#define _IFT_M4Material_c4
#define _IFT_M4Material_k1
#define _IFT_M4Material_c20
#define _IFT_M4Material_talpha
#define _IFT_M4Material_k2
#define _IFT_M4Material_k3
FloatArrayF< N > min(const FloatArrayF< N > &a, const FloatArrayF< N > &b)
double macbra(double x)
Returns the positive part of given float.
FloatArrayF< N > max(const FloatArrayF< N > &a, const FloatArrayF< N > &b)
Defines the stress or strain state in a micro plane.