Loading [MathJax]/extensions/TeX/newcommand.js
 Reference documentation for deal.II version 9.6.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\}}
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
Physics::Transformations Namespace Reference

Namespaces

namespace  Contravariant
 
namespace  Covariant
 
namespace  Piola
 
namespace  Rotations
 

Functions

Special operations
template<int dim, typename Number >
Tensor< 1, dim, Number > nansons_formula (const Tensor< 1, dim, Number > &N, const Tensor< 2, dim, Number > &F)
 
Basis transformations
template<int dim, typename Number >
Tensor< 1, dim, Number > basis_transformation (const Tensor< 1, dim, Number > &V, const Tensor< 2, dim, Number > &B)
 
template<int dim, typename Number >
Tensor< 2, dim, Number > basis_transformation (const Tensor< 2, dim, Number > &T, const Tensor< 2, dim, Number > &B)
 
template<int dim, typename Number >
SymmetricTensor< 2, dim, Number > basis_transformation (const SymmetricTensor< 2, dim, Number > &T, const Tensor< 2, dim, Number > &B)
 
template<int dim, typename Number >
Tensor< 4, dim, Number > basis_transformation (const Tensor< 4, dim, Number > &H, const Tensor< 2, dim, Number > &B)
 
template<int dim, typename Number >
SymmetricTensor< 4, dim, Number > basis_transformation (const SymmetricTensor< 4, dim, Number > &H, const Tensor< 2, dim, Number > &B)
 

Detailed Description

A collection of operations to assist in the transformation of tensor quantities from the reference to spatial configuration, and vice versa. These types of transformation are typically used to re-express quantities measured or computed in one configuration in terms of a second configuration.

Notation

We will use the same notation for the coordinates \mathbf{X}, \mathbf{x}, transformations \varphi, differential operator \nabla_{0} and deformation gradient \mathbf{F} as discussed for namespace Physics::Elasticity.

As a further point on notation, we will follow Holzapfel (2007) and denote the push forward transformation as \chi\left(\bullet\right) and the pull back transformation as \chi^{-1}\left(\bullet\right). We will also use the annotation \left(\bullet\right)^{\sharp} to indicate that a tensor \left(\bullet\right) is a contravariant tensor, and \left(\bullet\right)^{\flat} that it is covariant. In other words, these indices do not actually change the tensor, they just indicate the kind of object a particular tensor is.

Note
For these transformations, unless otherwise stated, we will strictly assume that all indices of the transformed tensors derive from one coordinate system; that is to say that they are not multi-point tensors (such as the Piola stress in elasticity).

Function Documentation

◆ nansons_formula()

template<int dim, typename Number >
Tensor< 1, dim, Number > Physics::Transformations::nansons_formula ( const Tensor< 1, dim, Number > & N,
const Tensor< 2, dim, Number > & F )

Return the result of applying Nanson's formula for the transformation of the material surface area element d\mathbf{A} to the current surfaces area element d\mathbf{a} under the nonlinear transformation map \mathbf{x} = \boldsymbol{\varphi} \left( \mathbf{X} \right).

The returned result is the spatial normal scaled by the ratio of areas between the reference and spatial surface elements, i.e.

\mathbf{n} \frac{da}{dA} \dealcoloneq \textrm{det} \mathbf{F} \, \mathbf{F}^{-T} \cdot \mathbf{N} = \textrm{cof} \mathbf{F} \cdot \mathbf{N} \, .

Parameters
[in]NThe referential normal unit vector \mathbf{N}
[in]FThe deformation gradient tensor \mathbf{F} \left( \mathbf{X} \right)
Returns
The scaled spatial normal vector \mathbf{n} \frac{da}{dA}
Note
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 (2.55) on p. 75 (or thereabouts).
For a discussion of the background of this function, see P. Wriggers: "Nonlinear finite element methods" (2008), and in particular formula (3.11) on p. 23 (or thereabouts).

◆ basis_transformation() [1/5]

template<int dim, typename Number >
Tensor< 1, dim, Number > Physics::Transformations::basis_transformation ( const Tensor< 1, dim, Number > & V,
const Tensor< 2, dim, Number > & B )

Return a vector with a changed basis, i.e.

\mathbf{V}^{\prime} \dealcoloneq \mathbf{B} \cdot \mathbf{V}

Parameters
[in]VThe vector to be transformed \mathbf{V}
[in]BThe transformation matrix \mathbf{B}
Returns
\mathbf{V}^{\prime}

◆ basis_transformation() [2/5]

template<int dim, typename Number >
Tensor< 2, dim, Number > Physics::Transformations::basis_transformation ( const Tensor< 2, dim, Number > & T,
const Tensor< 2, dim, Number > & B )

Return a rank-2 tensor with a changed basis, i.e.

\mathbf{T}^{\prime} \dealcoloneq \mathbf{B} \cdot \mathbf{T} \cdot \mathbf{B}^{T}

Parameters
[in]TThe tensor to be transformed \mathbf{T}
[in]BThe transformation matrix \mathbf{B}
Returns
\mathbf{T}^{\prime}

◆ basis_transformation() [3/5]

template<int dim, typename Number >
SymmetricTensor< 2, dim, Number > Physics::Transformations::basis_transformation ( const SymmetricTensor< 2, dim, Number > & T,
const Tensor< 2, dim, Number > & B )

Return a symmetric rank-2 tensor with a changed basis, i.e.

\mathbf{T}^{\prime} \dealcoloneq \mathbf{B} \cdot \mathbf{T} \cdot \mathbf{B}^{T}

Parameters
[in]TThe tensor to be transformed \mathbf{T}
[in]BThe transformation matrix \mathbf{B}
Returns
\mathbf{T}^{\prime}

◆ basis_transformation() [4/5]

template<int dim, typename Number >
Tensor< 4, dim, Number > Physics::Transformations::basis_transformation ( const Tensor< 4, dim, Number > & H,
const Tensor< 2, dim, Number > & B )

Return a rank-4 tensor with a changed basis, i.e. (in index notation):

H_{ijkl}^{\prime} \dealcoloneq B_{iI} B_{jJ} H_{IJKL} B_{kK} B_{lL}

Parameters
[in]HThe tensor to be transformed \mathbf{T}
[in]BThe transformation matrix \mathbf{B}
Returns
\mathbf{H}^{\prime}

◆ basis_transformation() [5/5]

template<int dim, typename Number >
SymmetricTensor< 4, dim, Number > Physics::Transformations::basis_transformation ( const SymmetricTensor< 4, dim, Number > & H,
const Tensor< 2, dim, Number > & B )

Return a symmetric rank-4 tensor with a changed basis, i.e. (in index notation):

H_{ijkl}^{\prime} \dealcoloneq B_{iI} B_{jJ} H_{IJKL} B_{kK} B_{lL}

Parameters
[in]HThe tensor to be transformed \mathbf{T}
[in]BThe transformation matrix \mathbf{B}
Returns
\mathbf{H}^{\prime}