![]() |
Reference documentation for deal.II version 8.5.1
|
#include <deal.II/base/derivative_form.h>
Public Member Functions | |
DerivativeForm () | |
DerivativeForm (const Tensor< order+1, dim, Number > &) | |
Tensor< order, dim, Number > & | operator[] (const unsigned int i) |
const Tensor< order, dim, Number > & | operator[] (const unsigned int i) const |
DerivativeForm & | operator= (const Tensor< order+1, dim, Number > &) |
DerivativeForm & | operator= (const Tensor< 1, dim, Number > &) |
operator Tensor< order+1, dim, Number > () const | |
operator Tensor< 1, dim, Number > () const | |
DerivativeForm< 1, spacedim, dim, Number > | transpose () const |
numbers::NumberTraits< Number >::real_type | norm () const |
double | determinant () const |
DerivativeForm< 1, dim, spacedim, Number > | covariant_form () const |
Static Public Member Functions | |
static std::size_t | memory_consumption () |
static::ExceptionBase & | ExcInvalidTensorIndex (int arg1) |
Private Member Functions | |
DerivativeForm< 1, dim, spacedim, Number > | times_T_t (const Tensor< 2, dim, Number > &T) const |
Private Attributes | |
Tensor< order, dim, Number > | tensor [spacedim] |
Related Functions | |
(Note that these are not member functions.) | |
template<int spacedim, int dim, typename Number > | |
Tensor< 1, spacedim, Number > | apply_transformation (const DerivativeForm< 1, dim, spacedim, Number > &DF, const Tensor< 1, dim, Number > &T) |
template<int spacedim, int dim, typename Number > | |
DerivativeForm< 1, spacedim, dim > | apply_transformation (const DerivativeForm< 1, dim, spacedim, Number > &DF, const Tensor< 2, dim, Number > &T) |
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) |
This class represents the (tangential) derivatives of a function . Such functions are always used to map the reference dim-dimensional cell into spacedim-dimensional space. For such objects, the first derivative of the function is a linear map from
to
, i.e., it can be represented as a matrix in
. This makes sense since one would represent the first derivative,
with
, in such a way that the directional derivative in direction
so that
i.e., one needs to be able to multiply the matrix by a vector in
, and the result is a difference of function values, which are in
. Consequently, the matrix must be of size
.
Similarly, the second derivative is a bilinear map from to
, which one can think of a rank-3 object of size
.
In deal.II we represent these derivatives using objects of type DerivativeForm<1,dim,spacedim,Number>, DerivativeForm<2,dim,spacedim,Number> and so on.
Definition at line 56 of file derivative_form.h.
DerivativeForm< order, dim, spacedim, Number >::DerivativeForm | ( | ) |
Constructor. Initialize all entries to zero.
DerivativeForm< order, dim, spacedim, Number >::DerivativeForm | ( | const Tensor< order+1, dim, Number > & | ) |
Constructor from a tensor.
Tensor<order,dim,Number>& DerivativeForm< order, dim, spacedim, Number >::operator[] | ( | const unsigned int | i | ) |
Read-Write access operator.
const Tensor<order,dim,Number>& DerivativeForm< order, dim, spacedim, Number >::operator[] | ( | const unsigned int | i | ) | const |
Read-only access operator.
DerivativeForm& DerivativeForm< order, dim, spacedim, Number >::operator= | ( | const Tensor< order+1, dim, Number > & | ) |
Assignment operator.
DerivativeForm& DerivativeForm< order, dim, spacedim, Number >::operator= | ( | const Tensor< 1, dim, Number > & | ) |
Assignment operator.
DerivativeForm< order, dim, spacedim, Number >::operator Tensor< order+1, dim, Number > | ( | ) | const |
Converts a DerivativeForm <order,dim,dim> to Tensor<order+1,dim,Number>. In particular, if order==1 and the derivative is the Jacobian of F, then Tensor[i] = grad(F^i).
DerivativeForm< order, dim, spacedim, Number >::operator Tensor< 1, dim, Number > | ( | ) | const |
Converts a DerivativeForm <1, dim, 1> to Tensor<1,dim,Number>.
DerivativeForm<1, spacedim, dim, Number> DerivativeForm< order, dim, spacedim, Number >::transpose | ( | ) | const |
Return the transpose of a rectangular DerivativeForm, that is to say viewed as a two dimensional matrix.
numbers::NumberTraits<Number>::real_type DerivativeForm< order, dim, spacedim, Number >::norm | ( | ) | const |
Compute the Frobenius norm of this form, i.e., the expression .
double DerivativeForm< order, dim, spacedim, Number >::determinant | ( | ) | const |
Compute the volume element associated with the jacobian of the transformation F. That is to say if is square, it computes
, in case DF is not square returns
.
DerivativeForm<1, dim, spacedim, Number> DerivativeForm< order, dim, spacedim, Number >::covariant_form | ( | ) | const |
Assuming that the current object stores the Jacobian of a mapping , then the current function computes the covariant form of the derivative, namely
, where
. If
is a square matrix (i.e.,
), then this function simplifies to computing
.
|
static |
Determine an estimate for the memory consumption (in bytes) of this object.
|
private |
Auxiliary function that computes (*this) *
|
related |
One of the uses of DerivativeForm is to apply it as a transformation. This is what this function does. If T
is DerivativeForm<1,dim,1> it computes , if
T
is DerivativeForm<1,dim,rank> it computes .
Definition at line 401 of file derivative_form.h.
|
related |
Similar to previous apply_transformation. It computes .
Definition at line 422 of file derivative_form.h.
|
related |
Similar to previous apply_transformation. It computes
Definition at line 442 of file derivative_form.h.
|
related |
Transpose of a rectangular DerivativeForm DF, mostly for compatibility reasons.
Definition at line 464 of file derivative_form.h.
|
private |
Array of tensors holding the subelements.
Definition at line 154 of file derivative_form.h.