40struct StVenantKirchhoffData :
public MaterialData
42 StVenantKirchhoffData(
43 MaterialType
const & type,
44 double const & youngs_modulus,
45 double const & poissons_ratio,
46 Type2D
const & type_two_dim,
47 std::shared_ptr<dealii::Function<dim>>
const youngs_modulus_function =
nullptr)
49 youngs_modulus(youngs_modulus),
50 youngs_modulus_function(youngs_modulus_function),
51 poissons_ratio(poissons_ratio),
52 type_two_dim(type_two_dim)
56 double youngs_modulus;
57 std::shared_ptr<dealii::Function<dim>> youngs_modulus_function;
59 double poissons_ratio;
64class StVenantKirchhoff :
public Material<dim, Number>
67 typedef typename Material<dim, Number>::VectorType VectorType;
68 typedef typename Material<dim, Number>::Range Range;
69 typedef typename Material<dim, Number>::IntegratorCell IntegratorCell;
71 typedef typename Material<dim, Number>::scalar scalar;
72 typedef typename Material<dim, Number>::tensor tensor;
73 typedef typename Material<dim, Number>::symmetric_tensor symmetric_tensor;
75 StVenantKirchhoff(dealii::MatrixFree<dim, Number>
const & matrix_free,
76 unsigned int const dof_index,
77 unsigned int const quad_index,
79 bool const large_deformation);
82 second_piola_kirchhoff_stress(tensor
const & gradient_displacement,
83 unsigned int const cell,
84 unsigned int const q)
const final;
87 second_piola_kirchhoff_stress_displacement_derivative(tensor
const & gradient_increment,
88 tensor
const & deformation_gradient,
89 unsigned int const cell,
90 unsigned int const q)
const final;
98 get_f0_factor(Number
const & poissons_ratio, Type2D
const type_two_dim)
const;
101 get_f1_factor(Number
const & poissons_ratio, Type2D
const type_two_dim)
const;
104 get_f2_factor(Number
const & poissons_ratio, Type2D
const type_two_dim)
const;
114 second_piola_kirchhoff_stress_symmetrize(tensor
const & strain,
115 unsigned int const cell,
116 unsigned int const q)
const;
122 cell_loop_set_coefficients(dealii::MatrixFree<dim, Number>
const & matrix_free,
124 VectorType
const & src,
125 Range
const & cell_range)
const;
127 unsigned int dof_index;
128 unsigned int quad_index;
132 bool large_deformation;
134 Number
const f0_factor;
135 Number
const f1_factor;
136 Number
const f2_factor;
138 mutable dealii::VectorizedArray<Number> f0;
139 mutable dealii::VectorizedArray<Number> f1;
140 mutable dealii::VectorizedArray<Number> f2;
143 bool youngs_modulus_is_variable;