3 #include <eigen3/Eigen/Core> 8 namespace EngineeringStrainInvariants
34 return v.segment<3>(0).sum();
43 return v[0] * v[1] + v[1] * v[2] + v[2] * v[0] - 0.25 * (v[3] * v[3] + v[4] * v[4] + v[5] * v[5]);
52 return v[0] * v[1] * v[2] + 0.25 * v[3] * v[4] * v[5] -
53 .25 * (v[5] * v[5] * v[2] + v[3] * v[3] * v[0] + v[4] * v[4] * v[1]);
61 const double eps_xx = v[0];
62 const double eps_yy = v[1];
63 const double eps_zz = v[2];
64 const double eps_yz = .5 * v[3];
65 const double eps_zx = .5 * v[4];
66 const double eps_xy = .5 * v[5];
68 return 1. / 6. * ((eps_xx - eps_yy) * (eps_xx - eps_yy) + (eps_yy - eps_zz) * (eps_yy - eps_zz) +
69 (eps_zz - eps_xx) * (eps_zz - eps_xx)) +
70 eps_xy * eps_xy + eps_yz * eps_yz + eps_zx * eps_zx;
77 double I1_3 =
I1(v) / 3.;
Eigen::Matrix3d Tensor
Definition: EngineeringStrainInvariants.h:10
Engineering strain.
Definition: EngineeringStrain.h:33
double J2(const EngineeringStrain< 3 > &v)
returns J2 - the second deviatoric strain invariant of the characteristic equation Note the minus si...
Definition: EngineeringStrainInvariants.h:59
double I3(const EngineeringStrain< 3 > &v)
returns I3 - the first strain invariant of the characteristic equation
Definition: EngineeringStrainInvariants.h:48
int v
Definition: Quad2DPatchTest.py:9
Definition: Exception.h:6
Tensor ToTensor(EngineeringStrain< 3 > &v)
Definition: EngineeringStrainInvariants.h:12
double I1(const EngineeringStrain< 3 > &v)
returns I1 - the first strain invariant of the characteristic equation
Definition: EngineeringStrainInvariants.h:32
double I2(const EngineeringStrain< 3 > &v)
returns I2 - the first strain invariant of the characteristic equation
Definition: EngineeringStrainInvariants.h:39
EngineeringStrain< 3 > Deviatoric(EngineeringStrain< 3 > v)
returns the deviatoric part
Definition: EngineeringStrainInvariants.h:75