Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Related Functions | List of all members
DerivativeForm< order, dim, spacedim > Class Template Reference

#include <derivative_form.h>

Inheritance diagram for DerivativeForm< order, dim, spacedim >:
[legend]

Public Member Functions

 DerivativeForm ()
 
 DerivativeForm (const Tensor< 2, dim > &)
 
Tensor< order, dim > & operator[] (const unsigned int i)
 
const Tensor< order, dim > & operator[] (const unsigned int i) const
 
DerivativeFormoperator= (const DerivativeForm< order, dim, spacedim > &)
 
DerivativeFormoperator= (const Tensor< 2, dim > &)
 
DerivativeFormoperator= (const Tensor< 1, dim > &)
 
 operator Tensor< 2, dim > () const
 
 operator Tensor< 1, dim > () const
 
DerivativeForm< 1, spacedim, dim > transpose () const
 
double determinant () const
 
DerivativeForm< 1, dim, spacedim > covariant_form () const
 
 DeclException1 (ExcInvalidTensorIndex, int,<< "Invalid DerivativeForm index "<< arg1)
 

Static Public Member Functions

static std::size_t memory_consumption ()
 

Private Member Functions

DerivativeForm< 1, dim, spacedim > times_T_t (Tensor< 2, dim > T) const
 

Private Attributes

Tensor< order, dim > tensor [spacedim]
 

Related Functions

(Note that these are not member functions.)

template<int spacedim, int dim>
Tensor< 1, spacedim > apply_transformation (const DerivativeForm< 1, dim, spacedim > &DF, const Tensor< 1, dim > &T)
 
template<int spacedim, int dim>
DerivativeForm< 1, spacedim, dim > apply_transformation (const DerivativeForm< 1, dim, spacedim > &DF, const Tensor< 2, dim > &T)
 
template<int spacedim, int dim>
Tensor< 2, spacedim > apply_transformation (const DerivativeForm< 1, dim, spacedim > &DF1, const DerivativeForm< 1, dim, spacedim > &DF2)
 
template<int dim, int spacedim>
DerivativeForm< 1, spacedim, dim > transpose (const DerivativeForm< 1, dim, spacedim > &DF)
 

Detailed Description

template<int order, int dim, int spacedim>
class DerivativeForm< order, dim, spacedim >

This class represents the (tangential) derivatives of a function $ f: {\mathbb R}^{\text{dim}} \rightarrow {\mathbb R}^{\text{spacedim}}$. 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 ${\mathbb R}^{\text{dim}}$ to ${\mathbb R}^{\text{spacedim}}$, the second derivative a bilinear map from ${\mathbb R}^{\text{dim}} \times {\mathbb R}^{\text{dim}}$ to ${\mathbb R}^{\text{spacedim}}$ and so on.

In deal.II we represent these derivaties using objects of type DerivativeForm<1,dim,spacedim>, DerivativeForm<2,dim,spacedim> and so on.

Author
Sebastian Pauletti, 2011

Definition at line 41 of file derivative_form.h.

Constructor & Destructor Documentation

template<int order, int dim, int spacedim>
DerivativeForm< order, dim, spacedim >::DerivativeForm ( )

Constructor. Initialize all entries to zero.

template<int order, int dim, int spacedim>
DerivativeForm< order, dim, spacedim >::DerivativeForm ( const Tensor< 2, dim > &  )

Constructor from a second order tensor.

Member Function Documentation

template<int order, int dim, int spacedim>
Tensor<order,dim>& DerivativeForm< order, dim, spacedim >::operator[] ( const unsigned int  i)

Read-Write access operator.

template<int order, int dim, int spacedim>
const Tensor<order,dim>& DerivativeForm< order, dim, spacedim >::operator[] ( const unsigned int  i) const

Read-only access operator.

template<int order, int dim, int spacedim>
DerivativeForm& DerivativeForm< order, dim, spacedim >::operator= ( const DerivativeForm< order, dim, spacedim > &  )

Assignment operator.

template<int order, int dim, int spacedim>
DerivativeForm& DerivativeForm< order, dim, spacedim >::operator= ( const Tensor< 2, dim > &  )

Assignment operator.

template<int order, int dim, int spacedim>
DerivativeForm& DerivativeForm< order, dim, spacedim >::operator= ( const Tensor< 1, dim > &  )

Assignment operator.

template<int order, int dim, int spacedim>
DerivativeForm< order, dim, spacedim >::operator Tensor< 2, dim > ( ) const

Converts a DerivativeForm <1,dim, dim> to Tensor<2,dim>. If the derivative is the Jacobian of F, then Tensor[i] = grad(F^i).

template<int order, int dim, int spacedim>
DerivativeForm< order, dim, spacedim >::operator Tensor< 1, dim > ( ) const

Converts a DerivativeForm <1, dim, 1> to Tensor<1,dim>.

template<int order, int dim, int spacedim>
DerivativeForm<1, spacedim, dim> DerivativeForm< order, dim, spacedim >::transpose ( ) const

Return the transpose of a rectangular DerivativeForm, that is to say viewed as a two dimensional matrix.

template<int order, int dim, int spacedim>
double DerivativeForm< order, dim, spacedim >::determinant ( ) const

Computes the volume element associated with the jacobian of the tranformation F. That is to say if $DF$ is square, it computes $\det(DF)$, in case DF is not square returns $\sqrt(\det(DF^{t} * DF))$.

template<int order, int dim, int spacedim>
DerivativeForm<1, dim, spacedim> DerivativeForm< order, dim, spacedim >::covariant_form ( ) const

Assuming (*this) stores the jacobian of the mapping F, it computes its covariant matrix, namely $DF*G^{-1}$, where $G = DF^{t}*DF$. If $DF$ is square, covariant from gives $DF^{-t}$.

template<int order, int dim, int spacedim>
static std::size_t DerivativeForm< order, dim, spacedim >::memory_consumption ( )
static

Determine an estimate for the memory consumption (in bytes) of this object.

template<int order, int dim, int spacedim>
DerivativeForm< order, dim, spacedim >::DeclException1 ( ExcInvalidTensorIndex  ,
int  ,
<< "Invalid DerivativeForm< order, dim, spacedim > index "<<  arg1 
)

Exception.

template<int order, int dim, int spacedim>
DerivativeForm<1, dim, spacedim> DerivativeForm< order, dim, spacedim >::times_T_t ( Tensor< 2, dim >  T) const
private

Auxiliary function that computes (*this) * T^{t}

Friends And Related Function Documentation

template<int spacedim, int dim>
Tensor< 1, spacedim > apply_transformation ( const DerivativeForm< 1, dim, spacedim > &  DF,
const Tensor< 1, dim > &  T 
)
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 $DF * T$, if T is DerivativeForm<1,dim,rank> it computes $T*DF^{t}$.

Author
Sebastian Pauletti, 2011

Definition at line 409 of file derivative_form.h.

template<int spacedim, int dim>
DerivativeForm< 1, spacedim, dim > apply_transformation ( const DerivativeForm< 1, dim, spacedim > &  DF,
const Tensor< 2, dim > &  T 
)
related

Similar to previous apply_transformation. It computes $T*DF^{t}$

Author
Sebastian Pauletti, 2011

Definition at line 430 of file derivative_form.h.

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

Similar to previous apply_transformation. It computes $DF2*DF1^{t}$

Author
Sebastian Pauletti, 2011

Definition at line 450 of file derivative_form.h.

template<int dim, int spacedim>
DerivativeForm< 1, spacedim, dim > transpose ( const DerivativeForm< 1, dim, spacedim > &  DF)
related

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

Author
Sebastian Pauletti, 2011

Definition at line 471 of file derivative_form.h.

Member Data Documentation

template<int order, int dim, int spacedim>
Tensor<order,dim> DerivativeForm< order, dim, spacedim >::tensor[spacedim]
private

Array of tensors holding the subelements.

Definition at line 151 of file derivative_form.h.


The documentation for this class was generated from the following file: