![]() |
Reference documentation for deal.II version GIT b8135fa6eb 2023-03-25 15:55:02+00:00
|
Go to the source code of this file.
Classes | |
class | DerivativeForm< order, dim, spacedim, Number > |
Functions | |
template<int spacedim, int dim, typename Number1 , typename Number2 > | |
Tensor< 1, spacedim, typename ProductType< Number1, Number2 >::type > | apply_transformation (const DerivativeForm< 1, dim, spacedim, Number1 > &grad_F, const Tensor< 1, dim, Number2 > &d_x) |
template<int spacedim, int dim, typename Number1 , typename Number2 > | |
DerivativeForm< 1, spacedim, dim, typename ProductType< Number1, Number2 >::type > | apply_transformation (const DerivativeForm< 1, dim, spacedim, Number1 > &grad_F, const Tensor< 2, dim, Number2 > &D_X) |
template<int dim, typename Number1 , typename Number2 > | |
Tensor< 2, dim, typename ProductType< Number1, Number2 >::type > | apply_transformation (const DerivativeForm< 1, dim, dim, Number1 > &grad_F, const Tensor< 2, dim, Number2 > &D_X) |
template<int spacedim, int dim, int n_components, typename Number1 , typename Number2 > | |
Tensor< 1, n_components, Tensor< 1, spacedim, typename ProductType< Number1, Number2 >::type > > | apply_transformation (const DerivativeForm< 1, dim, spacedim, Number1 > &grad_F, const Tensor< 1, n_components, Tensor< 1, dim, Number2 >> &D_X) |
template<int spacedim, int dim, typename Number1 , typename Number2 > | |
Tensor< 2, spacedim, typename ProductType< Number1, Number2 >::type > | apply_transformation (const DerivativeForm< 1, dim, spacedim, Number1 > &DF1, const DerivativeForm< 1, dim, spacedim, Number2 > &DF2) |
template<int dim, int spacedim, typename Number > | |
DerivativeForm< 1, spacedim, dim, Number > | transpose (const DerivativeForm< 1, dim, spacedim, Number > &DF) |
|
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.
Definition at line 434 of file derivative_form.h.
|
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 \(\mathrm{D\_X} \, \mathrm{grad\_F}^T\) in matrix notation.
Definition at line 459 of file derivative_form.h.
|
inline |
Similar to the previous apply_transformation(), specialized for the case dim == spacedim
where we can return a rank-2 tensor instead of the more general DerivativeForm
. Each row of the result corresponds to one of the rows of D_X
transformed by grad_F
, equivalent to \(\mathrm{D\_X} \, \mathrm{grad\_F}^T\) in matrix notation.
Definition at line 485 of file derivative_form.h.
|
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
.
Definition at line 512 of file derivative_form.h.
|
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) \]
Definition at line 545 of file derivative_form.h.
|
inline |
Transpose of a rectangular DerivativeForm DF, mostly for compatibility reasons.
Definition at line 566 of file derivative_form.h.