Reference documentation for deal.II version 9.0.0
Public Member Functions | Public Attributes | List of all members
MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData Class Reference

#include <deal.II/fe/mapping_fe_field.h>

Inheritance diagram for MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData:
[legend]

Public Member Functions

 InternalData (const FiniteElement< dim, spacedim > &fe, const ComponentMask &mask)
 
const double & shape (const unsigned int qpoint, const unsigned int shape_nr) const
 
double & shape (const unsigned int qpoint, const unsigned int shape_nr)
 
const Tensor< 1, dim > & derivative (const unsigned int qpoint, const unsigned int shape_nr) const
 
Tensor< 1, dim > & derivative (const unsigned int qpoint, const unsigned int shape_nr)
 
const Tensor< 2, dim > & second_derivative (const unsigned int qpoint, const unsigned int shape_nr) const
 
Tensor< 2, dim > & second_derivative (const unsigned int qpoint, const unsigned int shape_nr)
 
const Tensor< 3, dim > & third_derivative (const unsigned int qpoint, const unsigned int shape_nr) const
 
Tensor< 3, dim > & third_derivative (const unsigned int qpoint, const unsigned int shape_nr)
 
const Tensor< 4, dim > & fourth_derivative (const unsigned int qpoint, const unsigned int shape_nr) const
 
Tensor< 4, dim > & fourth_derivative (const unsigned int qpoint, const unsigned int shape_nr)
 
virtual std::size_t memory_consumption () const override
 
- Public Member Functions inherited from Mapping< dim, spacedim >::InternalDataBase
 InternalDataBase ()
 
 InternalDataBase (const InternalDataBase &)=delete
 
virtual ~InternalDataBase ()=default
 

Public Attributes

std::vector< double > shape_values
 
std::vector< Tensor< 1, dim > > shape_derivatives
 
std::vector< Tensor< 2, dim > > shape_second_derivatives
 
std::vector< Tensor< 3, dim > > shape_third_derivatives
 
std::vector< Tensor< 4, dim > > shape_fourth_derivatives
 
std::array< std::vector< Tensor< 1, dim > >, GeometryInfo< dim >::faces_per_cell *(dim-1)> unit_tangentials
 
unsigned int n_shape_functions
 
ComponentMask mask
 
std::vector< DerivativeForm< 1, dim, spacedim > > covariant
 
std::vector< DerivativeForm< 1, dim, spacedim > > contravariant
 
std::vector< double > volume_elements
 
std::vector< std::vector< Tensor< 1, spacedim > > > aux
 
std::vector< types::global_dof_indexlocal_dof_indices
 
std::vector< double > local_dof_values
 
- Public Attributes inherited from Mapping< dim, spacedim >::InternalDataBase
UpdateFlags update_each
 

Detailed Description

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
class MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData

Storage for internal data of this mapping. See Mapping::InternalDataBase for an extensive description.

This includes data that is computed once when the object is created (in get_data()) as well as data the class wants to store from between the call to fill_fe_values(), fill_fe_face_values(), or fill_fe_subface_values() until possible later calls from the finite element to functions such as transform(). The latter class of member variables are marked as 'mutable', along with scratch arrays.

Definition at line 259 of file mapping_fe_field.h.

Constructor & Destructor Documentation

◆ InternalData()

template<int dim, int spacedim, typename VectorType , typename DoFHandlerType >
MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::InternalData ( const FiniteElement< dim, spacedim > &  fe,
const ComponentMask mask 
)

Constructor.

Definition at line 61 of file mapping_fe_field.cc.

Member Function Documentation

◆ shape() [1/2]

template<int dim, int spacedim, typename VectorType , typename DoFHandlerType >
const double & MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::shape ( const unsigned int  qpoint,
const unsigned int  shape_nr 
) const
inline

Shape function at quadrature point. Shape functions are in tensor product order, so vertices must be reordered to obtain transformation.

Definition at line 266 of file mapping_fe_field.cc.

◆ shape() [2/2]

template<int dim, int spacedim, typename DoFHandlerType , typename VectorType >
double & MappingFEField< dim, spacedim, DoFHandlerType, VectorType >::InternalData::shape ( const unsigned int  qpoint,
const unsigned int  shape_nr 
)

Shape function at quadrature point. See above.

Definition at line 86 of file mapping_fe_field.cc.

◆ derivative() [1/2]

template<int dim, int spacedim, typename DoFHandlerType , typename VectorType >
const Tensor< 1, dim > & MappingFEField< dim, spacedim, DoFHandlerType, VectorType >::InternalData::derivative ( const unsigned int  qpoint,
const unsigned int  shape_nr 
) const

Gradient of shape function in quadrature point. See above.

Definition at line 99 of file mapping_fe_field.cc.

◆ derivative() [2/2]

template<int dim, int spacedim, typename DoFHandlerType , typename VectorType >
Tensor< 1, dim > & MappingFEField< dim, spacedim, DoFHandlerType, VectorType >::InternalData::derivative ( const unsigned int  qpoint,
const unsigned int  shape_nr 
)

Gradient of shape function in quadrature point. See above.

Definition at line 113 of file mapping_fe_field.cc.

◆ second_derivative() [1/2]

template<int dim, int spacedim, typename DoFHandlerType , typename VectorType >
const Tensor< 2, dim > & MappingFEField< dim, spacedim, DoFHandlerType, VectorType >::InternalData::second_derivative ( const unsigned int  qpoint,
const unsigned int  shape_nr 
) const

Second derivative of shape function in quadrature point. See above.

Definition at line 126 of file mapping_fe_field.cc.

◆ second_derivative() [2/2]

template<int dim, int spacedim, typename DoFHandlerType , typename VectorType >
Tensor< 2, dim > & MappingFEField< dim, spacedim, DoFHandlerType, VectorType >::InternalData::second_derivative ( const unsigned int  qpoint,
const unsigned int  shape_nr 
)

Second derivative of shape function in quadrature point. See above.

Definition at line 140 of file mapping_fe_field.cc.

◆ third_derivative() [1/2]

template<int dim, int spacedim, typename DoFHandlerType , typename VectorType >
const Tensor< 3, dim > & MappingFEField< dim, spacedim, DoFHandlerType, VectorType >::InternalData::third_derivative ( const unsigned int  qpoint,
const unsigned int  shape_nr 
) const

Third derivative of shape function in quadrature point. See above.

Definition at line 153 of file mapping_fe_field.cc.

◆ third_derivative() [2/2]

template<int dim, int spacedim, typename DoFHandlerType , typename VectorType >
Tensor< 3, dim > & MappingFEField< dim, spacedim, DoFHandlerType, VectorType >::InternalData::third_derivative ( const unsigned int  qpoint,
const unsigned int  shape_nr 
)

Fourth derivative of shape function in quadrature point. See above.

Definition at line 167 of file mapping_fe_field.cc.

◆ fourth_derivative() [1/2]

template<int dim, int spacedim, typename DoFHandlerType , typename VectorType >
const Tensor< 4, dim > & MappingFEField< dim, spacedim, DoFHandlerType, VectorType >::InternalData::fourth_derivative ( const unsigned int  qpoint,
const unsigned int  shape_nr 
) const

Fourth derivative of shape function in quadrature point. See above.

Definition at line 180 of file mapping_fe_field.cc.

◆ fourth_derivative() [2/2]

template<int dim, int spacedim, typename DoFHandlerType , typename VectorType >
Tensor< 4, dim > & MappingFEField< dim, spacedim, DoFHandlerType, VectorType >::InternalData::fourth_derivative ( const unsigned int  qpoint,
const unsigned int  shape_nr 
)

Third derivative of shape function in quadrature point. See above.

Definition at line 194 of file mapping_fe_field.cc.

◆ memory_consumption()

template<int dim, int spacedim, typename VectorType , typename DoFHandlerType >
std::size_t MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::memory_consumption ( ) const
overridevirtual

Return an estimate (in bytes) or the memory consumption of this object.

Reimplemented from Mapping< dim, spacedim >::InternalDataBase.

Definition at line 75 of file mapping_fe_field.cc.

Member Data Documentation

◆ shape_values

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<double> MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::shape_values

Values of shape functions. Access by function shape.

Computed once.

Definition at line 340 of file mapping_fe_field.h.

◆ shape_derivatives

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<Tensor<1,dim> > MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::shape_derivatives

Values of shape function derivatives. Access by function derivative.

Computed once.

Definition at line 347 of file mapping_fe_field.h.

◆ shape_second_derivatives

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<Tensor<2,dim> > MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::shape_second_derivatives

Values of shape function second derivatives. Access by function second_derivative.

Computed once.

Definition at line 355 of file mapping_fe_field.h.

◆ shape_third_derivatives

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<Tensor<3,dim> > MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::shape_third_derivatives

Values of shape function third derivatives. Access by function third_derivative.

Computed once.

Definition at line 363 of file mapping_fe_field.h.

◆ shape_fourth_derivatives

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<Tensor<4,dim> > MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::shape_fourth_derivatives

Values of shape function fourth derivatives. Access by function fourth_derivative.

Computed once.

Definition at line 371 of file mapping_fe_field.h.

◆ unit_tangentials

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::array<std::vector<Tensor<1,dim> >, GeometryInfo<dim>::faces_per_cell *(dim-1)> MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::unit_tangentials

Unit tangential vectors. Used for the computation of boundary forms and normal vectors.

This array has (dim-1)*GeometryInfo::faces_per_cell entries. The first GeometryInfo::faces_per_cell contain the vectors in the first tangential direction for each face; the second set of GeometryInfo::faces_per_cell entries contain the vectors in the second tangential direction (only in 3d, since there we have 2 tangential directions per face), etc.

Filled once.

Definition at line 386 of file mapping_fe_field.h.

◆ n_shape_functions

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
unsigned int MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::n_shape_functions

Number of shape functions. If this is a Q1 mapping, then it is simply the number of vertices per cell. However, since also derived classes use this class (e.g. the Mapping_Q() class), the number of shape functions may also be different.

Definition at line 394 of file mapping_fe_field.h.

◆ mask

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
ComponentMask MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::mask

Stores the mask given at construction time. If no mask was specified at construction time, then a default one is used, which makes this class works in the same way of MappingQEulerian(), i.e., the first spacedim components of the FiniteElement are used for the euler_vector and the euler_dh.

If a mask is specified, then it has to match the underlying FiniteElement, and it has to have exactly spacedim non-zero elements, indicating the components (in order) of the FiniteElement which will be used for the euler vector and the euler dof handler.

Definition at line 408 of file mapping_fe_field.h.

◆ covariant

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<DerivativeForm<1,dim, spacedim > > MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::covariant
mutable

Tensors of covariant transformation at each of the quadrature points. The matrix stored is the Jacobian * G^{-1}, where G = Jacobian^{t} * Jacobian, is the first fundamental form of the map; if dim=spacedim then it reduces to the transpose of the inverse of the Jacobian matrix, which itself is stored in the contravariant field of this structure.

Computed on each cell.

Definition at line 419 of file mapping_fe_field.h.

◆ contravariant

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector< DerivativeForm<1,dim,spacedim> > MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::contravariant
mutable

Tensors of contravariant transformation at each of the quadrature points. The contravariant matrix is the Jacobian of the transformation, i.e. \(J_{ij}=dx_i/d\hat x_j\).

Computed on each cell.

Definition at line 428 of file mapping_fe_field.h.

◆ volume_elements

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<double> MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::volume_elements
mutable

The determinant of the Jacobian in each quadrature point. Filled if update_volume_elements.

Definition at line 434 of file mapping_fe_field.h.

◆ aux

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<std::vector<Tensor<1,spacedim> > > MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::aux
mutable

Auxiliary vectors for internal use.

Definition at line 439 of file mapping_fe_field.h.

◆ local_dof_indices

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<types::global_dof_index> MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::local_dof_indices
mutable

Storage for the indices of the local degrees of freedom.

Definition at line 444 of file mapping_fe_field.h.

◆ local_dof_values

template<int dim, int spacedim = dim, typename VectorType = Vector<double>, typename DoFHandlerType = DoFHandler<dim,spacedim>>
std::vector<double> MappingFEField< dim, spacedim, VectorType, DoFHandlerType >::InternalData::local_dof_values
mutable

Storage for local degrees of freedom.

Definition at line 449 of file mapping_fe_field.h.


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