21#ifndef B2MATERIAL_STRESS_2D_MESH_DEFORM_H_ 
   22#define B2MATERIAL_STRESS_2D_MESH_DEFORM_H_ 
   24#include "elements/properties/b2solid_mechanics.H" 
   29class MaterialStress2DMeshDeform : 
public SolidMechanics2D<double> {
 
   32          Model* model, 
const bool linear, 
const EquilibriumSolution equilibrium_solution,
 
   33          const double time, 
const double delta_time, GradientContainer* gradient_container,
 
   34          SolverHints* solver_hints, 
const Element* element, 
const double el_coordinates[2],
 
   35          const b2linalg::Vector<double, b2linalg::Vdense_constref> nodes_interpolation,
 
   36          const int layer_id, 
const double bg_coordinates[3], 
const double covariant_base[2][2],
 
   37          const bool use_covariant_base, 
const double volume,
 
   38          const double displacement_gradient[2][2], 
const double strain[3],
 
   39          const double strain_dot[3], 
const double velocity[2], 
const double acceleration[2],
 
   40          double stress[3], 
double d_stress_d_strain[6], 
double d_stress_d_strain_dot[6],
 
   41          double d_stress_d_time[3], 
double inertia_force[2], 
double& density);
 
   43    inline void s_eq_c_mul_e(
double s[3], 
const double c[6], 
const double e[3]) {
 
   44        const int ind[3][3] = {{0, 1, 2}, {1, 3, 4}, {2, 4, 5}};
 
   45        for (
int i = 0; i < 3; ++i) {
 
   48            const int* iind = ind[i];
 
   49            for (
int j = 0; j < 3; ++j) { value += c[iind[j]] * e[j]; }
 
   57    static inline void piola_2_stress_to_cauchy_stress(
 
   62        const double f00 = F[0][0];
 
   63        const double f01 = F[0][1];
 
   64        const double f10 = F[1][0];
 
   65        const double f11 = F[1][1];
 
   69        const double det_inv = 1.0 / det;
 
   71        T[0] = f00 * f00 * S[0] + f10 * f10 * S[1] + 2 * f00 * f10 * S[2];
 
   73        T[1] = f01 * f01 * S[0] + f11 * f11 * S[1] + 2 * f01 * f11 * S[2];
 
   75        T[2] = f00 * f01 * S[0] + f10 * f11 * S[1] + (f00 * f11 + f10 * f01) * S[2];
 
   77        for (
int i = 0; i < 3; ++i) { T[i] *= det_inv; }
 
virtual LinearType linear(const int layer_id=-1) const
Definition b2solid_mechanics.H:573
 
Contains the base classes for implementing Finite Elements.
Definition b2boundary_condition.H:32
 
T determinant_2_2(const T a[2][2])
Definition b2tensor_calculus.H:683