7#include <deal.II/base/tensor.h>
8#include <deal.II/base/vectorization.h>
9#include <deal.II/matrix_free/evaluation_flags.h>
11#include <prismspf/config.h>
15PRISMS_PF_BEGIN_NAMESPACE
20template <
typename number,
typename T>
24 return dealii::make_vectorized_array<number>(
static_cast<number
>(value));
30template <
int dim,
typename number>
32constT(
const std::array<number, dim> &vector)
34 dealii::Tensor<1, dim, dealii::VectorizedArray<number>> tensor;
37 for (std::size_t i = 0; i < dim; ++i)
39 tensor[i] = dealii::make_vectorized_array<number>(vector[i]);
49template <
int dim,
typename T>
51compute_stress(
const dealii::Tensor<2, (2 * dim) - 1 + (dim / 3), T> &elasticity_tensor,
52 const dealii::Tensor<1, (2 * dim) - 1 + (dim / 3), T> &strain,
53 dealii::Tensor<1, (2 * dim) - 1 + (dim / 3), T> &stress)
55 stress = elasticity_tensor * strain;
62bool_to_string(
bool boolean)
64 return boolean ?
"true" :
"false";
71eval_flags_to_string(dealii::EvaluationFlags::EvaluationFlags flag)
75 if ((flag & dealii::EvaluationFlags::values) != 0U)
79 if ((flag & dealii::EvaluationFlags::gradients) != 0U)
85 result +=
"gradients";
87 if ((flag & dealii::EvaluationFlags::hessians) != 0U)
104PRISMS_PF_END_NAMESPACE