21#ifndef B2_MATERIAL_UTIL_H_ 
   22#define B2_MATERIAL_UTIL_H_ 
   29#include "utils/b2linear_algebra.H" 
   30#include "utils/b2rtable.H" 
   43inline void set_field_value_strain(
 
   46    const T strain_storage[6] = {strain[0],         strain[1],         strain[2],
 
   47                                 T(.5) * strain[3], T(.5) * strain[4], T(.5) * strain[5]};
 
   52inline void set_field_value_shell_strain(
 
   55    const T strain_storage[8] = {
 
   56          strain[0], strain[1], strain[2],         strain[3],
 
   57          strain[4], strain[5], T(.5) * strain[6], T(.5) * strain[7],
 
   63inline void set_field_value_strain_2(
 
   66      const T strain_normal) {
 
   67    const T strain_storage[6] = {strain_2d[0],         strain_2d[1], strain_normal,
 
   68                                 T(.5) * strain_2d[2], T(0),         T(0)};
 
   73inline void set_field_value_stress_2(
 
   76      const T stress_normal) {
 
   77    const T stress_storage[6] = {stress_2d[0], stress_2d[1], stress_normal,
 
   78                                 stress_2d[2], T(0),         T(0)};
 
   84namespace b2000 { 
namespace b2dbv3 {
 
  170            assert(material_ref != 0);
 
  171            std::copy(&material_ref[0][0], &material_ref[0][0] + 9, &
M[0][0]);
 
  178            assert(covariant_base != 0);
 
  180            b2000::get_base_opposite_variance(
G, 
G_d);
 
 
  214          const bool planestress, 
const T strain[6], 
const T temperature, 
const T alpha[6]) {
 
  221        if (alpha != 0 && temperature != 0) {
 
 
  262          const T stress_mat[6],  
 
  263          const T d_stress_d_strain_mat[21], T stress[6], T d_stress_d_strain[21]) {
 
  264        if (d_stress_d_strain != 0) {
 
  265            assert(d_stress_d_strain_mat != 0);
 
  266            transform_constitutive_tensor_from_base_A_ov_to_base_B(
 
  267                  M, 
G_d, d_stress_d_strain_mat, d_stress_d_strain);
 
  273        if (stress_mat != 0) {
 
  277            assert(d_stress_d_strain_mat != 0);
 
  278            b2linalg::Matrix<T, b2linalg::Mlower_packed_constref> C_mat(6, d_stress_d_strain_mat);
 
  280            b2linalg::Vector<T, b2linalg::Vdense_ref> s_mat(6, 
stress_pk2_mat);
 
  281            s_mat = C_mat * e_mat;
 
  284        if (stress != 0) { transform_stress_from_I_to_base_B(
G_d, 
stress_pk2_bg, stress); }
 
 
  304          const bool linear, 
const T displacement_gradient[3][3],
 
  307        if (failure_criterion != 
nullptr) {
 
  308            if (failure_criterion->
get_type() == FailureCriterion::STRESS) {
 
  317        if (gradient_container == 
nullptr) { 
return; }
 
  320        if (!linear && displacement_gradient != 0) {
 
  321            T deformation_gradient[3][3] = {};
 
  328                      &displacement_gradient[0][0], &displacement_gradient[0][0] + 9,
 
  329                      &deformation_gradient[0][0]);
 
  331            deformation_gradient[0][0] += 1;
 
  332            deformation_gradient[1][1] += 1;
 
  333            deformation_gradient[2][2] += 1;
 
  336                T deformation_gradient_aligned_ortho[3][3];
 
  338                      deformation_gradient, 
M, deformation_gradient_aligned_ortho);
 
  339                b2000::transform_stress_from_base_A_ov_to_I(
 
  342                transform_stress_from_base_A_ov_to_I(
 
  356                  "e1x.e1y.e1z.e2x.e2y.e2z.e3x.e3y.e3z",
 
  357                  "Material base vectors, undeformed configuration",
 
  375                  "Exx.Eyy.Ezz.Exy.Eyz.Exz",
 
  376                  "Green-Lagrange/linear strain, global reference frame, no thermal expansion",
 
  384                set_field_value_strain(gradient_container, descr, 
strain_gl_bg);
 
  391                  "Exx.Eyy.Ezz.Exy.Eyz.Exz",
 
  392                  "Green-Lagrange/linear strain, material reference frame, no thermal expansion",
 
  400                set_field_value_strain(gradient_container, descr, 
strain_gl_mat);
 
  407                  "Exx.Eyy.Ezz.Exy.Eyz.Exz",
 
  408                  "Green-Lagrange/linear strain, global reference frame, thermal expansion",
 
  423                  "STRAIN_MECHANICAL_MATERIAL",
 
  424                  "Exx.Eyy.Ezz.Exy.Eyz.Exz",
 
  425                  "Green-Lagrange/linear strain, material reference frame, thermal expansion",
 
  440                  "Sxx.Syy.Szz.Sxy.Syz.Sxz",
 
  441                  "Cauchy/linear stress, global reference frame",
 
  456                  "Sxx.Syy.Szz.Sxy.Syz.Sxz",
 
  457                  "Cauchy/linear stress, material reference frame",
 
  473                  "Sxx.Syy.Szz.Sxy.Syz.Sxz",
 
  474                  "Second-Piola Kirchhoff stress, global reference frame",
 
  489                  "STRESS_PK2_MATERIAL",
 
  490                  "Sxx.Syy.Szz.Sxy.Syz.Sxz",
 
  491                  "Second-Piola Kirchhoff stress in the material reference frame",
 
  506                  "Elastic.Kinetic.RateDissipated.Dissipated",
 
  507                  "Free elastic, kinetic, rate of dissipated energy and " 
  508                  "dissipated energy, per unit volume, in the undeformed " 
  519                const T e[4] = {0.5 * es, 0, 0, 0};
 
 
 
  587            assert(material_ref != 0);
 
  588            std::copy(&material_ref[0][0], &material_ref[0][0] + 9, &
M[0][0]);
 
  595            assert(covariant_base != 0);
 
  597            get_base_opposite_variance(
G, 
G_d);
 
 
  625    void set_strain(
const T strain[8], 
const T temperature, 
const T alpha[8]) {
 
  629            b2000::transform_shell_strain_from_base_A_to_base_B(
G, 
M, strain, 
strain_gl_mat);
 
  631        if (alpha != 0 && temperature != 0) {
 
 
  672          const T stress_mat[8],  
 
  673          const T d_stress_d_strain_mat[36], T stress[8], T d_stress_d_strain[36]) {
 
  674        if (d_stress_d_strain != 0) {
 
  675            assert(d_stress_d_strain_mat != 0);
 
  676            transform_shell_constitutive_tensor_from_base_A_ov_to_base_B(
 
  677                  M, 
G_d, d_stress_d_strain_mat, d_stress_d_strain);
 
  683        if (stress_mat != 0) {
 
  687            assert(d_stress_d_strain_mat != 0);
 
  688            b2linalg::Matrix<T, b2linalg::Mlower_packed_constref> C_mat(8, d_stress_d_strain_mat);
 
  690            b2linalg::Vector<T, b2linalg::Vdense_ref> s_mat(8, 
stress_pk2_mat);
 
  691            s_mat = C_mat * e_mat;
 
 
  721        if (gradient_container == 
nullptr) { 
return; }
 
  729                  "e1x.e1y.e1z.e2x.e2y.e2z.e3x.e3y.e3z",
 
  730                  "Material base vectors, undeformed configuration",
 
  747                  "STRAIN_SHELL_MATERIAL",
 
  748                  "Mxx.Myy.Mxy.Bxx.Byy.Bxy.Tyz.Txz",
 
  749                  "Green-Lagrange/linear strain, material reference " 
  750                  "frame, no thermal expansion",
 
  758                set_field_value_shell_strain(gradient_container, descr, 
strain_gl_mat);
 
  763                  "STRESS_SHELL_MATERIAL",
 
  764                  "Mxx.Myy.Mxy.Bxx.Byy.Bxy.Tyz.Txz",
 
  765                  "Second Piola-Kirchhoff/linear stress, material " 
  766                  "reference frame, no thermal expansion",
 
 
 
  872            assert(material_ref != 0);
 
  873            std::copy(&material_ref[0][0], &material_ref[0][0] + 4, &
M[0][0]);
 
  879            assert(covariant_base != 0);
 
  881            b2000::get_base_opposite_variance(
G, 
G_d);
 
 
  914    void set_strain(
const T strain[3], 
const T temperature, 
const T alpha[3]) {
 
 
  956          const T stress_mat[3],  
 
  957          const T d_stress_d_strain_mat[6], T stress[3], T d_stress_d_strain[6]) {
 
  958        if (d_stress_d_strain) {
 
  959            assert(d_stress_d_strain_mat != 0);
 
  960            transform_constitutive_tensor_from_base_A_ov_to_base_B(
 
  961                  M, 
G_d, d_stress_d_strain_mat, d_stress_d_strain);
 
  967        if (stress_mat != 0) {
 
  971            assert(d_stress_d_strain_mat != 0);
 
  972            b2linalg::Matrix<T, b2linalg::Mlower_packed_constref> C_mat(3, d_stress_d_strain_mat);
 
  974            b2linalg::Vector<T, b2linalg::Vdense_ref> s_mat(3, 
stress_pk2_mat);
 
  975            s_mat = C_mat * e_mat;
 
  978        if (stress != 0) { transform_stress_from_I_to_base_B(
G_d, 
stress_pk2_bg, stress); }
 
 
  998          const bool linear, 
const T displacement_gradient[2][2],
 
 1001        if (failure_criterion) {
 
 1002            if (failure_criterion->
get_type() == FailureCriterion::STRESS) {
 
 1003                const T stress_pk2_mat_6[6] = {
 
 1006                      failure_criterion->
process_stress(stress_pk2_mat_6, gradient_container);
 
 1008                const T strain_gl_mat_6[6] = {
 
 1011                      failure_criterion->
process_strain(strain_gl_mat_6, 
false, gradient_container);
 
 1015        if (!gradient_container) { 
return; }
 
 1018        if (!linear && displacement_gradient) {
 
 1019            T deformation_gradient[2][2] = {};
 
 1024                      &displacement_gradient[0][0], &displacement_gradient[0][0] + 4,
 
 1025                      &deformation_gradient[0][0]);
 
 1027            deformation_gradient[0][0] += 1;
 
 1028            deformation_gradient[1][1] += 1;
 
 1031                T deformation_gradient_aligned_ortho[2][2];
 
 1033                      deformation_gradient, 
M, deformation_gradient_aligned_ortho);
 
 1034                b2000::transform_stress_from_base_A_ov_to_I(
 
 1037                b2000::transform_stress_from_base_A_ov_to_I(
 
 1051                  "e1x.e1y.e1z.e2x.e2y.e2z.e3x.e3y.e3z",
 
 1052                  "Material base vectors, undeformed configuration",
 
 1060                T mbase_3_3[3][3] = {
 
 1061                      {
M[0][0], 
M[0][1], 0.},
 
 1062                      {
M[1][0], 
M[1][1], 0.},
 
 1075                  "Exx.Eyy.Ezz.Exy.Eyz.Exz",
 
 1076                  "Green-Lagrange/linear strain, global reference " 
 1077                  "frame, no thermal expansion",
 
 1092                  "Exx.Eyy.Ezz.Exy.Eyz.Exz",
 
 1093                  "Green-Lagrange/linear strain, material reference " 
 1094                  "frame, no thermal expansion",
 
 1108                  "STRAIN_MECHANICAL",
 
 1109                  "Exx.Eyy.Ezz.Exy.Eyz.Exz",
 
 1110                  "Green-Lagrange/linear strain, global reference " 
 1111                  "frame, thermal expansion",
 
 1126                  "STRAIN_MECHANICAL_MATERIAL",
 
 1127                  "Exx.Eyy.Ezz.Exy.Eyz.Exz",
 
 1128                  "Green-Lagrange/linear strain, material reference " 
 1129                  "frame, thermal expansion",
 
 1137                set_field_value_strain_2(
 
 1145                  "Sxx.Syy.Szz.Sxy.Syz.Sxz",
 
 1146                  "Cauchy/linear stress, global reference frame",
 
 1154                set_field_value_stress_2(
 
 1162                  "Sxx.Syy.Szz.Sxy.Syz.Sxz",
 
 1163                  "Cauchy/linear stress, material reference frame",
 
 1172                set_field_value_stress_2(
 
 1180                  "Sxx.Syy.Szz.Sxy.Syz.Sxz",
 
 1181                  "Second-Piola Kirchhoff stress, global reference frame",
 
 1196                  "STRESS_PK2_MATERIAL",
 
 1197                  "Sxx.Syy.Szz.Sxy.Syz.Sxz",
 
 1198                  "Second-Piola Kirchhoff stress, material reference frame",
 
 1213                  "Elastic.Kinetic.RateDissipated.Dissipated",
 
 1214                  "Free elastic, kinetic, rate of dissipated energy and " 
 1215                  "dissipated energy, per unit volume, in the undeformed " 
 
 
 1233template <
typename T>
 
 1235    std::string not_supported;
 
 1239    T d_stress_d_strain_mat[21];
 
 1243    LayerData() : isotropic(
true), orthotropic(
false), anisotropic(
false), density(0) {
 
 1244        std::fill_n(d_stress_d_strain_mat, 21, 0.);
 
 1245        std::fill_n(alpha, 6, 0.);
 
 1248    void init_25d(
const RTable& rtable, 
const std::string& prefix = 
"") {
 
 1249        const std::string sub_type = rtable.
get_string(prefix + 
"SUBTYPE");
 
 1250        isotropic = (sub_type == 
"ISOTROPIC");
 
 1251        orthotropic = (sub_type == 
"ORTHOTROPIC" || sub_type == 
"ORTHOTROPIC25D");
 
 1252        anisotropic = (sub_type == 
"ANISOTROPIC");
 
 1254        const T sh = rtable.
get<T>(prefix + 
"SHEAR_CORRECTION_FACTOR", T(5) / T(6));
 
 1259            d_stress_d_strain_mat[0] = rtable.
get<T>(prefix + 
"C1111", 0.);
 
 1260            d_stress_d_strain_mat[1] = rtable.
get<T>(prefix + 
"C1122", 0.);
 
 1261            d_stress_d_strain_mat[2] = rtable.
get<T>(prefix + 
"C1133", 0.);
 
 1262            d_stress_d_strain_mat[3] = rtable.
get<T>(prefix + 
"C1112", 0.);
 
 1263            d_stress_d_strain_mat[4] = rtable.
get<T>(prefix + 
"C1123", 0.);
 
 1264            d_stress_d_strain_mat[5] = rtable.
get<T>(prefix + 
"C1113", 0.);
 
 1265            d_stress_d_strain_mat[6] = rtable.
get<T>(prefix + 
"C2222", 0.);
 
 1266            d_stress_d_strain_mat[7] = rtable.
get<T>(prefix + 
"C2233", 0.);
 
 1267            d_stress_d_strain_mat[8] = rtable.
get<T>(prefix + 
"C2212", 0.);
 
 1268            d_stress_d_strain_mat[9] = rtable.
get<T>(prefix + 
"C2223", 0.);
 
 1269            d_stress_d_strain_mat[10] = rtable.
get<T>(prefix + 
"C2213", 0.);
 
 1270            d_stress_d_strain_mat[11] = rtable.
get<T>(prefix + 
"C3333", 0.);
 
 1271            d_stress_d_strain_mat[12] = rtable.
get<T>(prefix + 
"C3312", 0.);
 
 1272            d_stress_d_strain_mat[13] = rtable.
get<T>(prefix + 
"C3323", 0.);
 
 1273            d_stress_d_strain_mat[14] = rtable.
get<T>(prefix + 
"C3313", 0.);
 
 1274            d_stress_d_strain_mat[15] = rtable.
get<T>(prefix + 
"C1212", 0.);
 
 1275            d_stress_d_strain_mat[16] = rtable.
get<T>(prefix + 
"C1223", 0.);
 
 1276            d_stress_d_strain_mat[17] = rtable.
get<T>(prefix + 
"C1213", 0.);
 
 1277            d_stress_d_strain_mat[18] = rtable.
get<T>(prefix + 
"C2323", 0.);
 
 1278            d_stress_d_strain_mat[19] = rtable.
get<T>(prefix + 
"C2313", 0.);
 
 1279            d_stress_d_strain_mat[20] = rtable.
get<T>(prefix + 
"C1313", 0.);
 
 1280        } 
else if (isotropic || orthotropic) {
 
 1286                e1 = rtable.
get<T>(prefix + 
"E1");
 
 1287                e2 = rtable.
get<T>(prefix + 
"E2");
 
 1288                e3 = rtable.
get<T>(prefix + 
"E3", e2);
 
 1289                nu12 = rtable.
get<T>(prefix + 
"NU12");
 
 1290                nu13 = rtable.
get<T>(prefix + 
"NU13", nu12);
 
 1291                nu23 = rtable.
get<T>(prefix + 
"NU23", nu13);
 
 1292                g12 = rtable.
get<T>(prefix + 
"G12");
 
 1293                g23 = rtable.
get<T>(prefix + 
"G23", g12);
 
 1294                g13 = rtable.
get<T>(prefix + 
"G13", g12);
 
 1296                e1 = e2 = e3 = rtable.
get<T>(prefix + 
"E");
 
 1297                nu12 = nu23 = nu13 = rtable.
get<T>(prefix + 
"NU");
 
 1298                g12 = g23 = g13 = rtable.
get<T>(prefix + 
"G", e1 / (T(2) * (T(1) + nu12)));
 
 1302            std::fill_n(d_stress_d_strain_mat, 21, T(0));
 
 1304                const T c11 = T(1) / e1;
 
 1305                const T c22 = T(1) / e2;
 
 1306                const T c12 = -nu12 * c11;
 
 1307                const T inv_det = T(1) / (c11 * c22 - c12 * c12);
 
 1308                d_stress_d_strain_mat[0] = c22 * inv_det;
 
 1309                d_stress_d_strain_mat[1] = -c12 * inv_det;
 
 1310                d_stress_d_strain_mat[6] = c11 * inv_det;
 
 1312            d_stress_d_strain_mat[15] = g12;
 
 1313            d_stress_d_strain_mat[18] = g23 * sh;
 
 1314            d_stress_d_strain_mat[20] = g13 * sh;
 
 1316            std::ostringstream o;
 
 1318              << 
" cannot be used with shell elements.";
 
 1319            not_supported = o.str();
 
 1323        const T alpha_r = rtable.
get<T>(prefix + 
"ALPHA", T(0));
 
 1324        alpha[0] = rtable.
get<T>(prefix + 
"ALPHA11", alpha_r);
 
 1325        alpha[1] = rtable.
get<T>(prefix + 
"ALPHA22", alpha_r);
 
 1327        const T alpha12 = rtable.
get<T>(prefix + 
"ALPHA12", T(0));
 
 1328        alpha[3] = T(2) * alpha12;
 
 1329        alpha[4] = T(2) * rtable.
get<T>(prefix + 
"ALPHA23", T(0));
 
 1330        alpha[5] = T(2) * rtable.
get<T>(prefix + 
"ALPHA13", T(0));
 
 1332        density = rtable.
get<T>(prefix + 
"DENSITY", T(0));
 
 
Interface to C++ representations of FE solvers.
 
Definition b2solution.H:54
 
virtual void set_field_value(const FieldDescription &descr, const int *value)
Definition b2solution.H:146
 
virtual bool compute_field_value(const std::string &name) const
Definition b2solution.H:221
 
Definition b2rtable.H:427
 
T get(const std::string &key) const
Definition b2rtable.H:647
 
std::string get_string(const std::string &key) const
Definition b2rtable.H:633
 
std::string errmsg_context
Will be pre-pended to error messages.
Definition b2rtable.H:430
 
Definition b2failure_criterion.H:42
 
virtual double process_strain(const double strain_mat[6], const bool engineering, b2000::GradientContainer *gradient_container) const
Definition b2failure_criterion.H:87
 
virtual double process_stress(const double stress_mat[6], b2000::GradientContainer *gradient_container) const
Definition b2failure_criterion.H:60
 
virtual int get_type() const =0
Returns STRAIN or STRESS.
 
Contains the base classes for implementing Finite Elements.
Definition b2boundary_condition.H:32
 
void set_identity_3_3(T1 a[3][3])
Definition b2tensor_calculus.H:511
 
void inner_product_2_2_NT(const T a[2][2], const T b[2][2], T c[2][2])
Definition b2tensor_calculus.H:863
 
void inner_product_3_3_NN(const T a[3][3], const T b[3][3], T c[3][3])
Definition b2tensor_calculus.H:808
 
T determinant_3_3(const T a[3][3])
Definition b2tensor_calculus.H:669
 
void set_identity_2_2(T1 a[2][2])
Definition b2tensor_calculus.H:518
 
void copy_2_2(const T1 a[2][2], T1 b[2][2])
Definition b2tensor_calculus.H:539
 
void inner_product_3_3_NT(const T a[3][3], const T b[3][3], T c[3][3])
Definition b2tensor_calculus.H:848
 
void inner_product_2_2_NN(const T a[2][2], const T b[2][2], T c[2][2])
Definition b2tensor_calculus.H:838
 
void copy_3_3(const T1 a[3][3], T1 b[3][3])
Definition b2tensor_calculus.H:525
 
T dot_3(const T a[3], const T b[3])
Definition b2tensor_calculus.H:328
 
T determinant_2_2(const T a[2][2])
Definition b2tensor_calculus.H:683
 
Definition b2solution.H:71
 
std::string name
Definition b2solution.H:73
 
Definition b2material_util.H:785
 
T strain_gl_mat[3]
Definition b2material_util.H:821
 
T G[2][2]
Definition b2material_util.H:802
 
T stress_cauchy_bg[3]
Definition b2material_util.H:844
 
ElasticityHelper2D(const T material_ref[2][2], const T covariant_base[2][2])
Definition b2material_util.H:864
 
T strain_gl_mat_te[3]
Definition b2material_util.H:826
 
T stress_normal
Definition b2material_util.H:852
 
bool has_thermal_expansion
Whether STRAIN_MECHANICAL fields will be written.
Definition b2material_util.H:787
 
T G_d[2][2]
Definition b2material_util.H:806
 
T M[2][2]
Material reference frame. Is initialized in the constructor.
Definition b2material_util.H:794
 
T stress_pk2_bg[3]
Definition b2material_util.H:835
 
void set_stress_and_or_d_stress_d_strain_mat(const T stress_mat[3], const T d_stress_d_strain_mat[6], T stress[3], T d_stress_d_strain[6])
Definition b2material_util.H:955
 
bool has_covariant_base
Definition b2material_util.H:798
 
T strain_gl_bg[3]
Definition b2material_util.H:811
 
T stress_pk2_mat[3]
Definition b2material_util.H:840
 
T strain_gl_bg_te[3]
Definition b2material_util.H:816
 
T stress_cauchy_mat[3]
Definition b2material_util.H:848
 
void set_strain(const T strain[3], const T temperature, const T alpha[3])
Definition b2material_util.H:914
 
T failure_index
Definition b2material_util.H:856
 
void store(const bool linear, const T displacement_gradient[2][2], const FailureCriterion *failure_criterion, b2000::GradientContainer *gradient_container)
Definition b2material_util.H:997
 
bool has_material_ref
Definition b2material_util.H:791
 
T strain_normal
Definition b2material_util.H:830
 
Definition b2material_util.H:531
 
bool has_material_ref
Definition b2material_util.H:537
 
T G_d[3][3]
Definition b2material_util.H:553
 
T failure_index
Definition b2material_util.H:572
 
void store(const bool linear, const b2dbv3::FailureCriterion *failure_criterion, b2000::GradientContainer *gradient_container)
Definition b2material_util.H:708
 
void set_strain(const T strain[8], const T temperature, const T alpha[8])
Definition b2material_util.H:625
 
T strain_gl_mat_te[8]
Definition b2material_util.H:563
 
T M[3][3]
Definition b2material_util.H:541
 
T stress_pk2_mat[8]
Definition b2material_util.H:568
 
T G[3][3]
Definition b2material_util.H:549
 
void set_stress_and_or_d_stress_d_strain_mat(const T stress_mat[8], const T d_stress_d_strain_mat[36], T stress[8], T d_stress_d_strain[36])
Definition b2material_util.H:671
 
T strain_gl_mat[8]
Definition b2material_util.H:558
 
ElasticityHelperShellResultants(const T material_ref[3][3], const T covariant_base[3][3])
Definition b2material_util.H:580
 
bool has_thermal_expansion
Whether STRAIN_MECHANICAL fields will be written.
Definition b2material_util.H:533
 
bool has_covariant_base
Definition b2material_util.H:545
 
Definition b2material_util.H:91
 
T G[3][3]
Definition b2material_util.H:109
 
bool has_material_ref
Definition b2material_util.H:97
 
T strain_gl_bg_te[6]
Definition b2material_util.H:123
 
T stress_pk2_bg[6]
Definition b2material_util.H:138
 
void set_stress_and_or_d_stress_d_strain_mat(const T stress_mat[6], const T d_stress_d_strain_mat[21], T stress[6], T d_stress_d_strain[21])
Definition b2material_util.H:261
 
T strain_gl_bg[6]
Definition b2material_util.H:118
 
T M[3][3]
Definition b2material_util.H:101
 
T strain_gl_mat_te[6]
Definition b2material_util.H:133
 
T strain_gl_mat[6]
Definition b2material_util.H:128
 
T stress_cauchy_bg[6]
Definition b2material_util.H:147
 
T failure_index
Definition b2material_util.H:155
 
bool has_covariant_base
Definition b2material_util.H:105
 
bool has_thermal_expansion
Whether STRAIN_MECHANICAL fields will be written.
Definition b2material_util.H:93
 
void set_strain(const bool planestress, const T strain[6], const T temperature, const T alpha[6])
Definition b2material_util.H:213
 
ElasticityHelper(const T material_ref[3][3], const T covariant_base[3][3])
Definition b2material_util.H:163
 
void store(const bool linear, const T displacement_gradient[3][3], const FailureCriterion *failure_criterion, b2000::GradientContainer *gradient_container)
Definition b2material_util.H:303
 
T G_d[3][3]
Definition b2material_util.H:113
 
T stress_pk2_mat[6]
Definition b2material_util.H:143
 
T stress_cauchy_mat[6]
Definition b2material_util.H:151
 
Definition b2material_util.H:1234