16 #ifndef dealii__elasticity__standard_tensors_h 17 #define dealii__elasticity__standard_tensors_h 20 #include <deal.II/base/symmetric_tensor.h> 21 #include <deal.II/base/tensor.h> 23 DEAL_II_NAMESPACE_OPEN
206 template <
typename Number>
220 template <
typename Number>
247 template <
typename Number>
271 template <
typename Number>
289 template <
typename Number>
294 const Number det_F = determinant(F);
295 Assert(det_F > Number(0.0),
296 ExcMessage(
"Deformation gradient has a negative determinant."));
305 Dev_P *= std::pow(det_F, -2.0/dim);
313 template <
typename Number>
318 const Number det_F = determinant(F);
319 Assert(det_F > Number(0.0),
320 ExcMessage(
"Deformation gradient has a negative determinant."));
329 Dev_P_T *= std::pow(det_F, -2.0/dim);
337 template <
typename Number>
342 return Number(0.5)*determinant(F)*symmetrize(invert(transpose(F)*F));
348 template <
typename Number>
356 for (
unsigned int A=0; A<dim; ++A)
357 for (
unsigned int B=A; B<dim; ++B)
358 for (
unsigned int C=0; C<dim; ++C)
359 for (
unsigned int D=C; D<dim; ++D)
360 dC_inv_dC[A][B][C][D] -= 0.5*(C_inv[A][C] * C_inv[B][D] + C_inv[A][D] * C_inv[B][C] );
367 DEAL_II_NAMESPACE_CLOSE
static::ExceptionBase & ExcMessage(std::string arg1)
static const SymmetricTensor< 4, dim > S
#define Assert(cond, exc)
static SymmetricTensor< 2, dim, Number > ddet_F_dC(const Tensor< 2, dim, Number > &F)
static const SymmetricTensor< 2, dim > I
static const SymmetricTensor< 4, dim > dev_P
static const SymmetricTensor< 4, dim > IxI
static SymmetricTensor< 4, dim, Number > Dev_P(const Tensor< 2, dim, Number > &F)
static SymmetricTensor< 4, dim, Number > dC_inv_dC(const Tensor< 2, dim, Number > &F)
static SymmetricTensor< 4, dim, Number > Dev_P_T(const Tensor< 2, dim, Number > &F)