 Reference documentation for deal.II version 9.3.3
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).

## ◆ 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] N The referential normal unit vector $$\mathbf{N}$$ [in] F The 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] V The vector to be transformed $$\mathbf{V}$$ [in] B The 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] T The tensor to be transformed $$\mathbf{T}$$ [in] B The 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] T The tensor to be transformed $$\mathbf{T}$$ [in] B The 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] H The tensor to be transformed $$\mathbf{T}$$ [in] B The 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] H The tensor to be transformed $$\mathbf{T}$$ [in] B The transformation matrix $$\mathbf{B}$$
Returns
$$\mathbf{H}^{\prime}$$