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\}}\)
Classes | Functions
derivative_form.h File Reference
#include <deal.II/base/config.h>
#include <deal.II/base/tensor.h>

Go to the source code of this file.

Classes

class  DerivativeForm< order, dim, spacedim, Number >
 

Functions

template<int spacedim, int dim, typename Number >
Tensor< 1, spacedim, Number > apply_transformation (const DerivativeForm< 1, dim, spacedim, Number > &grad_F, const Tensor< 1, dim, Number > &d_x)
 
template<int spacedim, int dim, typename Number >
DerivativeForm< 1, spacedim, dim, Number > apply_transformation (const DerivativeForm< 1, dim, spacedim, Number > &grad_F, const Tensor< 2, dim, Number > &D_X)
 
template<int spacedim, int dim, typename Number >
Tensor< 2, spacedim, Number > apply_transformation (const DerivativeForm< 1, dim, spacedim, Number > &DF1, const DerivativeForm< 1, dim, spacedim, Number > &DF2)
 
template<int dim, int spacedim, typename Number >
DerivativeForm< 1, spacedim, dim, Number > transpose (const DerivativeForm< 1, dim, spacedim, Number > &DF)
 

Function Documentation

◆ apply_transformation() [1/3]

template<int spacedim, int dim, typename Number >
Tensor< 1, spacedim, Number > apply_transformation ( const DerivativeForm< 1, dim, spacedim, Number > &  grad_F,
const Tensor< 1, dim, Number > &  d_x 
)
inline

One of the uses of DerivativeForm is to apply it as a linear transformation. This function returns \(\nabla \mathbf F(\mathbf x) \Delta \mathbf x\), which approximates the change in \(\mathbf F(\mathbf x)\) when \(\mathbf x\) is changed by the amount \(\Delta \mathbf x\)

\[ \nabla \mathbf F(\mathbf x) \; \Delta \mathbf x \approx \mathbf F(\mathbf x + \Delta \mathbf x) - \mathbf F(\mathbf x). \]

The transformation corresponds to

\[ [\text{result}]_{i_1,\dots,i_k} = i\sum_{j} \left[\nabla \mathbf F(\mathbf x)\right]_{i_1,\dots,i_k, j} \Delta x_j \]

in index notation and corresponds to \([\Delta \mathbf x] [\nabla \mathbf F(\mathbf x)]^T\) in matrix notation.

Author
Sebastian Pauletti, 2011, Reza Rastak, 2019

Definition at line 399 of file derivative_form.h.

◆ apply_transformation() [2/3]

template<int spacedim, int dim, typename Number >
DerivativeForm< 1, spacedim, dim, Number > apply_transformation ( const DerivativeForm< 1, dim, spacedim, Number > &  grad_F,
const Tensor< 2, dim, Number > &  D_X 
)
inline

Similar to the previous apply_transformation(). Each row of the result corresponds to one of the rows of D_X transformed by grad_F, equivalent to \(\text{D\_X} \, \text{grad\_F}^T\) in matrix notation.

Author
Sebastian Pauletti, 2011, Reza Rastak, 2019

Definition at line 421 of file derivative_form.h.

◆ apply_transformation() [3/3]

template<int spacedim, int dim, typename Number >
Tensor< 2, spacedim, Number > apply_transformation ( const DerivativeForm< 1, dim, spacedim, Number > &  DF1,
const DerivativeForm< 1, dim, spacedim, Number > &  DF2 
)
inline

Similar to the previous apply_transformation(). In matrix notation, it computes \(DF2 \, DF1^{T}\). Moreover, the result of this operation \(\mathbf A\) can be interpreted as a metric tensor in \({\mathbb R}^\text{spacedim}\) which corresponds to the Euclidean metric tensor in \({\mathbb R}^\text{dim}\). For every pair of vectors \(\mathbf u, \mathbf v \in {\mathbb R}^\text{spacedim}\), we have:

\[ \mathbf u \cdot \mathbf A \mathbf v = \text{DF2}^{-1}(\mathbf u) \cdot \text{DF1}^{-1}(\mathbf v) \]

Author
Sebastian Pauletti, 2011, Reza Rastak, 2019

Definition at line 449 of file derivative_form.h.

◆ transpose()

template<int dim, int spacedim, typename Number >
DerivativeForm< 1, spacedim, dim, Number > transpose ( const DerivativeForm< 1, dim, spacedim, Number > &  DF)
inline

Transpose of a rectangular DerivativeForm DF, mostly for compatibility reasons.

Author
Sebastian Pauletti, 2011

Definition at line 470 of file derivative_form.h.