40struct StVenantKirchhoffData :
public MaterialData
42 StVenantKirchhoffData(MaterialType
const & type,
45 Type2D
const & type_two_dim,
46 std::shared_ptr<dealii::Function<dim>>
const E_function =
nullptr)
47 : MaterialData(type), E(E), E_function(E_function), nu(nu), type_two_dim(type_two_dim)
52 std::shared_ptr<dealii::Function<dim>> E_function;
59class StVenantKirchhoff :
public Material<dim, Number>
62 typedef dealii::LinearAlgebra::distributed::Vector<Number> VectorType;
63 typedef std::pair<unsigned int, unsigned int> Range;
64 typedef CellIntegrator<dim, dim, Number> IntegratorCell;
66 StVenantKirchhoff(dealii::MatrixFree<dim, Number>
const & matrix_free,
67 unsigned int const dof_index,
68 unsigned int const quad_index,
70 bool const large_deformation);
72 dealii::Tensor<2, dim, dealii::VectorizedArray<Number>>
73 second_piola_kirchhoff_stress(
74 dealii::Tensor<2, dim, dealii::VectorizedArray<Number>>
const & gradient_displacement,
75 unsigned int const cell,
76 unsigned int const q)
const final;
78 dealii::Tensor<2, dim, dealii::VectorizedArray<Number>>
79 second_piola_kirchhoff_stress_displacement_derivative(
80 dealii::Tensor<2, dim, dealii::VectorizedArray<Number>>
const & gradient_increment,
81 dealii::Tensor<2, dim, dealii::VectorizedArray<Number>>
const & deformation_gradient,
82 unsigned int const cell,
83 unsigned int const q)
const final;
91 get_f0_factor()
const;
94 get_f1_factor()
const;
97 get_f2_factor()
const;
106 dealii::Tensor<2, dim, dealii::VectorizedArray<Number>>
107 second_piola_kirchhoff_stress_symmetrize(
108 dealii::Tensor<2, dim, dealii::VectorizedArray<Number>>
const & strain,
109 unsigned int const cell,
110 unsigned int const q)
const;
116 cell_loop_set_coefficients(dealii::MatrixFree<dim, Number>
const & matrix_free,
118 VectorType
const & src,
119 Range
const & cell_range)
const;
121 unsigned int dof_index;
122 unsigned int quad_index;
126 bool large_deformation;
128 mutable dealii::VectorizedArray<Number> f0;
129 mutable dealii::VectorizedArray<Number> f1;
130 mutable dealii::VectorizedArray<Number> f2;