Reference documentation for deal.II version 9.2.0
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
List of all members
Physics::Elasticity::StandardTensors< dim > Class Template Reference

#include <deal.II/physics/elasticity/standard_tensors.h>

Static Public Member Functions

Scalar derivatives
template<typename Number >
static constexpr SymmetricTensor< 2, dim, Number > ddet_F_dC (const Tensor< 2, dim, Number > &F)
 
Tensor derivatives
template<typename Number >
static constexpr SymmetricTensor< 4, dim, Number > dC_inv_dC (const Tensor< 2, dim, Number > &F)
 

Static Public Attributes

Metric tensors
static constexpr const SymmetricTensor< 2, dim > I = unit_symmetric_tensor<dim>()
 
static constexpr const SymmetricTensor< 4, dim > S = identity_tensor<dim>()
 
static constexpr const SymmetricTensor< 4, dim > IxI
 

Projection operators

static constexpr const SymmetricTensor< 4, dim > dev_P = deviator_tensor<dim>()
 
template<typename Number >
static constexpr SymmetricTensor< 4, dim, Number > Dev_P (const Tensor< 2, dim, Number > &F)
 
template<typename Number >
static constexpr SymmetricTensor< 4, dim, Number > Dev_P_T (const Tensor< 2, dim, Number > &F)
 

Detailed Description

template<int dim>
class Physics::Elasticity::StandardTensors< dim >

A collection of tensor definitions that mostly conform to notation used in standard scientific literature, in particular the book of Wriggers (2008). The citation for this reference, as well as other notation used here, can be found in the description for the Physics::Elasticity namespace.

Note
These hold specifically for the codimension 0 case with a Cartesian basis, where the metric tensor is the identity tensor.
Author
Jean-Paul Pelteret, Andrew McBride, 2016

Definition at line 47 of file standard_tensors.h.

Member Function Documentation

◆ Dev_P()

template<int dim>
template<typename Number >
static constexpr SymmetricTensor<4, dim, Number> Physics::Elasticity::StandardTensors< dim >::Dev_P ( const Tensor< 2, dim, Number > &  F)
staticconstexpr

Return the fourth-order referential deviatoric tensor, as constructed from the deformation gradient tensor F. Also known as the deviatoric operator, this tensor projects a second-order symmetric tensor onto a deviatoric space (for which the hydrostatic component is removed).

This referential isochoric projection tensor is defined as

\[ \hat{\mathcal{P}} \dealcoloneq \frac{\partial \bar{\mathbf{C}}}{\partial \mathbf{C}} \]

with

\[ \bar{\mathbf{C}} \dealcoloneq J^{-2/\textrm{dim}} \mathbf{C} \qquad \text{,} \qquad \mathbf{C} = \mathbf{F}^{T}\cdot\mathbf{F} \qquad \text{and} \qquad J = \textrm{det}\mathbf{F} \]

such that, for any second-order (referential) symmetric tensor, the following holds:

\[ \{ \bullet \} : \hat{\mathcal{P}} \dealcoloneq J^{-2/\textrm{dim}} \left[ \{ \bullet \} - \frac{1}{\textrm{dim}}\left[\mathbf{C} : \{ \bullet \}\right] \mathbf{C}^{-1} \right] = \texttt{Dev\_P} \left( \{ \bullet \} \right) \, . \]

It can therefore be readily shown that

\[ \texttt{Dev\_P} \left( \{ \bullet \} \right) : \mathbf{C} = 0 \, . \]

Note
It may be observed that we have defined the tensor as the transpose of that adopted by Wriggers (2008). We have done this so that it may be strictly applied through the chain rule to achieve the definition of the second Piola-Kirchhoff stress, i.e.

\[ \mathbf{S} = 2\frac{\partial \psi \left( \bar{\mathbf{C}} \right)}{\partial \mathbf{C}} = 2\frac{\partial \psi \left( \bar{\mathbf{C}} \right)}{\partial \bar{\mathbf{C}}} : \frac{\partial \bar{\mathbf{C}}}{\partial \mathbf{C}} = \bar{\mathbf{S}} : \hat{\mathcal{P}} \equiv \hat{\mathcal{P}}^{T} : \bar{\mathbf{S}} \, . \]

Comparing the definition of this tensor in Holzapfel (2001) to that adopted here, the inclusion of the extra factor \(J^{-2/\textrm{dim}}\) does not, at the outset, seem to be a reasonable choice. However, in the author's view it makes direct implementation of the expressions for isochoric (referential) stress contributions and their linearization simpler in practise.
For a discussion of the background of this function, see P. Wriggers: "Nonlinear finite element methods" (2008), and in particular formula (3.125) on p. 46 (or thereabouts).
For a discussion of the background of this function, see G. A. Holzapfel: "Nonlinear solid mechanics. A Continuum Approach for Engineering" (2007), and in particular formula (6.83) on p. 229 (or thereabouts).

◆ Dev_P_T()

template<int dim>
template<typename Number >
static constexpr SymmetricTensor<4, dim, Number> Physics::Elasticity::StandardTensors< dim >::Dev_P_T ( const Tensor< 2, dim, Number > &  F)
staticconstexpr

Return the transpose of the fourth-order referential deviatoric tensor, as constructed from the deformation gradient tensor F. The result performs the following operation:

\[ \hat{\mathcal{P}}^{T} : \{ \bullet \} = J^{-2/\textrm{dim}} \left[ \{ \bullet \} - \frac{1}{\textrm{dim}} \left[\mathbf{C}^{-1} : \{ \bullet \}\right] \mathbf{C} \right] = \texttt{Dev\_P\_T} \{ \bullet \} \]

◆ ddet_F_dC()

template<int dim>
template<typename Number >
static constexpr SymmetricTensor<2, dim, Number> Physics::Elasticity::StandardTensors< dim >::ddet_F_dC ( const Tensor< 2, dim, Number > &  F)
staticconstexpr

Return the derivative of the volumetric Jacobian \(J = \text{det} \mathbf{F}\) with respect to the right Cauchy-Green tensor, as constructed from the deformation gradient tensor F. The computed result is

\[ \frac{\partial J}{\partial \mathbf{C}} = \frac{1}{2} J \mathbf{C}^{-1} \]

with

\[ \mathbf{C} = \mathbf{F}^{T}\cdot\mathbf{F} \, . \]

Note
For a discussion of the background of this function, see P. Wriggers: "Nonlinear finite element methods" (2008), and in particular formula (3.124) on p. 46 (or thereabouts).
For a discussion of the background of this function, see G. A. Holzapfel: "Nonlinear solid mechanics. A Continuum Approach for Engineering" (2007), and in particular formula (6.82) on p. 228 (or thereabouts).

◆ dC_inv_dC()

template<int dim>
template<typename Number >
static constexpr SymmetricTensor<4, dim, Number> Physics::Elasticity::StandardTensors< dim >::dC_inv_dC ( const Tensor< 2, dim, Number > &  F)
staticconstexpr

Return the derivative of the inverse of the right Cauchy-Green tensor with respect to the right Cauchy-Green tensor itself, as constructed from the deformation gradient tensor F. The result, accounting for symmetry, is defined in index notation as

\[ \left[ \frac{\partial \mathbf{C}^{-1}}{\partial \mathbf{C}} \right]_{IJKL} \dealcoloneq -\frac{1}{2}[ C^{-1}_{IK}C^{-1}_{JL} + C^{-1}_{IL}C^{-1}_{JK} ] \]

Note
For a discussion of the background of this function, see P. Wriggers: "Nonlinear finite element methods" (2008), and in particular formula (3.255) on p. 76 (or thereabouts).

Member Data Documentation

◆ I

template<int dim>
constexpr const SymmetricTensor<2, dim> Physics::Elasticity::StandardTensors< dim >::I = unit_symmetric_tensor<dim>()
staticconstexpr

The second-order referential/spatial symmetric identity (metric) tensor \(\mathbf{I}\).

This is defined such that, for any rank-2 tensor or symmetric tensor, the following holds:

\[ \mathbf{I} \cdot \{ \bullet \} = \{ \bullet \} \cdot \mathbf{I} = \{ \bullet \} \qquad \text{and} \qquad \mathbf{I} : \{ \bullet \} = \textrm{trace} \{ \bullet \} \, . \]

This definition aligns with the rank-2 symmetric tensor returned by unit_symmetric_tensor(). If one is to interpret the tensor as a matrix, then this simply corresponds to the identity matrix.

Definition at line 74 of file standard_tensors.h.

◆ S

template<int dim>
constexpr const SymmetricTensor<4, dim> Physics::Elasticity::StandardTensors< dim >::S = identity_tensor<dim>()
staticconstexpr

The fourth-order referential/spatial unit symmetric tensor \(\mathcal{S}\).

This is defined such that for a general rank-2 tensor \(\{ \hat{\bullet} \}\) the following holds:

\[ \mathcal{S} : \{ \hat{\bullet} \} \dealcoloneq \dfrac{1}{2} \left[ \{ \hat{\bullet} \} + \{ \hat{\bullet} \}^T \right] \, . \]

As a corollary to this, for any second-order symmetric tensor \(\{ \bullet \}\)

\[ \mathcal{S} : \{ \bullet \} = \{ \bullet \} : \mathcal{S} = \{ \bullet \} \, . \]

This definition aligns with the fourth-order symmetric tensor \(\mathcal{S}\) introduced in the Physics::Elasticity namespace description and that which is returned by identity_tensor().

Note
If you apply this to a standard tensor then it doesn't behave like the fourth-order identity tensor, but rather as a symmetrization operator.

Definition at line 107 of file standard_tensors.h.

◆ IxI

template<int dim>
constexpr const SymmetricTensor<4, dim> Physics::Elasticity::StandardTensors< dim >::IxI
staticconstexpr
Initial value:
= outer_product(unit_symmetric_tensor<dim>(),
unit_symmetric_tensor<dim>())

The fourth-order referential/spatial tensor \(\mathbf{I} \otimes \mathbf{I}\).

This is defined such that, for any rank-2 tensor, the following holds:

\[ [\mathbf{I} \otimes \mathbf{I}] : \{ \bullet \} = \textrm{trace}\{ \bullet \} \mathbf{I} \, . \]

Definition at line 123 of file standard_tensors.h.

◆ dev_P

template<int dim>
constexpr const SymmetricTensor<4, dim> Physics::Elasticity::StandardTensors< dim >::dev_P = deviator_tensor<dim>()
staticconstexpr

The fourth-order spatial deviatoric tensor. Also known as the deviatoric operator, this tensor projects a second-order symmetric tensor onto a deviatoric space (for which the hydrostatic component is removed).

This is defined as

\[ \mathcal{P} \dealcoloneq \mathcal{S} - \frac{1}{\textrm{dim}} \mathbf{I} \otimes \mathbf{I} \]

where \(\mathcal{S}\) is the fourth-order unit symmetric tensor and \(\mathbf{I}\) is the second-order identity tensor.

For any second-order (spatial) symmetric tensor the following holds:

\[ \mathcal{P} : \{ \bullet \} \dealcoloneq \{ \bullet \} - \frac{1}{\textrm{dim}} \left[ \{ \bullet \} : \mathbf{I} \right]\mathbf{I} = \mathcal{P}^{T} : \{ \bullet \} = \texttt{dev\_P} \left( \{ \bullet \} \right) \]

and, therefore,

\[ \texttt{dev\_P} \left( \{ \bullet \} \right) : \mathbf{I} = \textrm{trace}(\texttt{dev\_P} \left( \{ \bullet \} \right)) = 0 \, . \]

This definition aligns with the fourth-order symmetric tensor that is returned by deviator_tensor().

Note
For a discussion of the background of this function, see P. Wriggers: "Nonlinear finite element methods" (2008), and in particular formula (3.129) on p. 47 (or thereabouts).
For a discussion of the background of this function, see G. A. Holzapfel: "Nonlinear solid mechanics. A Continuum Approach for Engineering" (2007), and in particular formula (6.105) on p. 232 (or thereabouts).

Definition at line 173 of file standard_tensors.h.


The documentation for this class was generated from the following file:
outer_product
constexpr SymmetricTensor< 4, dim, Number > outer_product(const SymmetricTensor< 2, dim, Number > &t1, const SymmetricTensor< 2, dim, Number > &t2)
Definition: symmetric_tensor.h:3520