Reference documentation for deal.II version 9.5.1
\(\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\}}\)
Loading...
Searching...
No Matches
Namespaces
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}$