Reference documentation for deal.II version 9.6.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\}}\)
Loading...
Searching...
No Matches
MappingFE< dim, spacedim >::InternalData Class Reference

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

Inheritance diagram for MappingFE< dim, spacedim >::InternalData:

Public Member Functions

 InternalData (const FiniteElement< dim, spacedim > &fe)
 
virtual void reinit (const UpdateFlags update_flags, const Quadrature< dim > &quadrature) override
 
void initialize_face (const UpdateFlags update_flags, const Quadrature< dim > &quadrature, const unsigned int n_original_q_points)
 
void compute_shape_function_values (const std::vector< Point< dim > > &unit_points)
 
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 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
 
const FiniteElement< dim, spacedim > & fe
 
const unsigned int polynomial_degree
 
const unsigned int n_shape_functions
 
std::vector< DerivativeForm< 1, dim, spacedim > > covariant
 
std::vector< DerivativeForm< 1, dim, spacedim > > contravariant
 
std::vector< std::vector< Tensor< 1, spacedim > > > aux
 
std::vector< Point< spacedim > > mapping_support_points
 
Triangulation< dim, spacedim >::cell_iterator cell_of_current_support_points
 
std::vector< double > volume_elements
 
std::vector< double > quadrature_weights
 
UpdateFlags update_each
 

Detailed Description

template<int dim, int spacedim = dim>
class MappingFE< dim, spacedim >::InternalData

Storage for internal data of polynomial mappings. See Mapping::InternalDataBase for an extensive description.

For the current class, the InternalData class stores 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'.

Definition at line 180 of file mapping_fe.h.

Constructor & Destructor Documentation

◆ InternalData()

template<int dim, int spacedim>
MappingFE< dim, spacedim >::InternalData::InternalData ( const FiniteElement< dim, spacedim > & fe)

Constructor.

Definition at line 48 of file mapping_fe.cc.

Member Function Documentation

◆ reinit()

template<int dim, int spacedim>
void MappingFE< dim, spacedim >::InternalData::reinit ( const UpdateFlags update_flags,
const Quadrature< dim > & quadrature )
overridevirtual

This function initializes the data fields related to evaluation of the mapping on cells, implemented by (derived) classes. This function is used both when setting up a field of this class for the first time or when a new Quadrature formula should be considered without creating an entirely new object. This is used when the number of evaluation points is different on each cell, e.g. when using FEPointEvaluation for handling particles or with certain non-matching problem settings.

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

Definition at line 80 of file mapping_fe.cc.

◆ initialize_face()

template<int dim, int spacedim>
void MappingFE< dim, spacedim >::InternalData::initialize_face ( const UpdateFlags update_flags,
const Quadrature< dim > & quadrature,
const unsigned int n_original_q_points )

Initialize the object's member variables related to cell and face data based on the given arguments. In order to initialize cell data, this function calls reinit().

Definition at line 136 of file mapping_fe.cc.

◆ compute_shape_function_values()

template<int dim, int spacedim>
void MappingFE< dim, spacedim >::InternalData::compute_shape_function_values ( const std::vector< Point< dim > > & unit_points)

Compute the values and/or derivatives of the shape functions used for the mapping.

Definition at line 176 of file mapping_fe.cc.

◆ shape() [1/2]

template<int dim, int spacedim = dim>
const double & MappingFE< dim, spacedim >::InternalData::shape ( const unsigned int qpoint,
const unsigned int shape_nr ) const

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

◆ shape() [2/2]

template<int dim, int spacedim = dim>
double & MappingFE< dim, spacedim >::InternalData::shape ( const unsigned int qpoint,
const unsigned int shape_nr )

Shape function at quadrature point. See above.

◆ derivative() [1/2]

template<int dim, int spacedim = dim>
const Tensor< 1, dim > & MappingFE< dim, spacedim >::InternalData::derivative ( const unsigned int qpoint,
const unsigned int shape_nr ) const

Gradient of shape function in quadrature point. See above.

◆ derivative() [2/2]

template<int dim, int spacedim = dim>
Tensor< 1, dim > & MappingFE< dim, spacedim >::InternalData::derivative ( const unsigned int qpoint,
const unsigned int shape_nr )

Gradient of shape function in quadrature point. See above.

◆ second_derivative() [1/2]

template<int dim, int spacedim = dim>
const Tensor< 2, dim > & MappingFE< dim, spacedim >::InternalData::second_derivative ( const unsigned int qpoint,
const unsigned int shape_nr ) const

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

◆ second_derivative() [2/2]

template<int dim, int spacedim = dim>
Tensor< 2, dim > & MappingFE< dim, spacedim >::InternalData::second_derivative ( const unsigned int qpoint,
const unsigned int shape_nr )

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

◆ third_derivative() [1/2]

template<int dim, int spacedim = dim>
const Tensor< 3, dim > & MappingFE< dim, spacedim >::InternalData::third_derivative ( const unsigned int qpoint,
const unsigned int shape_nr ) const

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

◆ third_derivative() [2/2]

template<int dim, int spacedim = dim>
Tensor< 3, dim > & MappingFE< dim, spacedim >::InternalData::third_derivative ( const unsigned int qpoint,
const unsigned int shape_nr )

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

◆ fourth_derivative() [1/2]

template<int dim, int spacedim = dim>
const Tensor< 4, dim > & MappingFE< dim, spacedim >::InternalData::fourth_derivative ( const unsigned int qpoint,
const unsigned int shape_nr ) const

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

◆ fourth_derivative() [2/2]

template<int dim, int spacedim = dim>
Tensor< 4, dim > & MappingFE< dim, spacedim >::InternalData::fourth_derivative ( const unsigned int qpoint,
const unsigned int shape_nr )

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

◆ memory_consumption()

template<int dim, int spacedim>
std::size_t MappingFE< dim, spacedim >::InternalData::memory_consumption ( ) const
overridevirtual

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

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

Definition at line 59 of file mapping_fe.cc.

Member Data Documentation

◆ shape_values

template<int dim, int spacedim = dim>
std::vector<double> MappingFE< dim, spacedim >::InternalData::shape_values

Values of shape functions. Access by function shape.

Computed once.

Definition at line 286 of file mapping_fe.h.

◆ shape_derivatives

template<int dim, int spacedim = dim>
std::vector<Tensor<1, dim> > MappingFE< dim, spacedim >::InternalData::shape_derivatives

Values of shape function derivatives. Access by function derivative.

Computed once.

Definition at line 293 of file mapping_fe.h.

◆ shape_second_derivatives

template<int dim, int spacedim = dim>
std::vector<Tensor<2, dim> > MappingFE< dim, spacedim >::InternalData::shape_second_derivatives

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

Computed once.

Definition at line 301 of file mapping_fe.h.

◆ shape_third_derivatives

template<int dim, int spacedim = dim>
std::vector<Tensor<3, dim> > MappingFE< dim, spacedim >::InternalData::shape_third_derivatives

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

Computed once.

Definition at line 309 of file mapping_fe.h.

◆ shape_fourth_derivatives

template<int dim, int spacedim = dim>
std::vector<Tensor<4, dim> > MappingFE< dim, spacedim >::InternalData::shape_fourth_derivatives

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

Computed once.

Definition at line 317 of file mapping_fe.h.

◆ unit_tangentials

template<int dim, int spacedim = dim>
std::array<std::vector<Tensor<1, dim> >, GeometryInfo<dim>::faces_per_cell *(dim - 1)> MappingFE< dim, spacedim >::InternalData::unit_tangentials

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

Filled once.

Definition at line 327 of file mapping_fe.h.

◆ fe

template<int dim, int spacedim = dim>
const FiniteElement<dim, spacedim>& MappingFE< dim, spacedim >::InternalData::fe

Underlying finite element.

Definition at line 332 of file mapping_fe.h.

◆ polynomial_degree

template<int dim, int spacedim = dim>
const unsigned int MappingFE< dim, spacedim >::InternalData::polynomial_degree

The polynomial degree of the mapping.

Definition at line 337 of file mapping_fe.h.

◆ n_shape_functions

template<int dim, int spacedim = dim>
const unsigned int MappingFE< dim, spacedim >::InternalData::n_shape_functions

Number of shape functions.

Definition at line 342 of file mapping_fe.h.

◆ covariant

template<int dim, int spacedim = dim>
std::vector<DerivativeForm<1, dim, spacedim> > MappingFE< dim, spacedim >::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 353 of file mapping_fe.h.

◆ contravariant

template<int dim, int spacedim = dim>
std::vector<DerivativeForm<1, dim, spacedim> > MappingFE< dim, spacedim >::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 362 of file mapping_fe.h.

◆ aux

template<int dim, int spacedim = dim>
std::vector<std::vector<Tensor<1, spacedim> > > MappingFE< dim, spacedim >::InternalData::aux
mutable

Auxiliary vectors for internal use.

Definition at line 367 of file mapping_fe.h.

◆ mapping_support_points

template<int dim, int spacedim = dim>
std::vector<Point<spacedim> > MappingFE< dim, spacedim >::InternalData::mapping_support_points
mutable

Stores the support points of the mapping shape functions on the cell_of_current_support_points.

Definition at line 373 of file mapping_fe.h.

◆ cell_of_current_support_points

template<int dim, int spacedim = dim>
Triangulation<dim,spacedim>::cell_iterator MappingFE< dim, spacedim >::InternalData::cell_of_current_support_points
mutable

Stores the cell of which the mapping_support_points are stored.

Definition at line 379 of file mapping_fe.h.

◆ volume_elements

template<int dim, int spacedim = dim>
std::vector<double> MappingFE< dim, spacedim >::InternalData::volume_elements
mutable

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

Definition at line 385 of file mapping_fe.h.

◆ quadrature_weights

template<int dim, int spacedim = dim>
std::vector<double> MappingFE< dim, spacedim >::InternalData::quadrature_weights
mutable

Projected quadrature weights.

Definition at line 390 of file mapping_fe.h.

◆ update_each

template<int dim, int spacedim = dim>
UpdateFlags Mapping< dim, spacedim >::InternalDataBase::update_each
inherited

A set of update flags specifying the kind of information that an implementation of the Mapping interface needs to compute on each cell or face, i.e., in Mapping::fill_fe_values() and friends.

This set of flags is stored here by implementations of Mapping::get_data(), Mapping::get_face_data(), or Mapping::get_subface_data(), and is that subset of the update flags passed to those functions that require re-computation on every cell. (The subset of the flags corresponding to information that can be computed once and for all already at the time of the call to Mapping::get_data() – or an implementation of that interface – need not be stored here because it has already been taken care of.)

Definition at line 691 of file mapping.h.


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