Reference documentation for deal.II version 9.2.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\}}\)
Public Member Functions | Private Attributes | List of all members
internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType > Class Template Reference

#include <deal.II/matrix_free/mapping_data_on_the_fly.h>

Inheritance diagram for internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >:
[legend]

Public Member Functions

 MappingDataOnTheFly (const Mapping< dim > &mapping, const Quadrature< 1 > &quadrature, const UpdateFlags update_flags)
 
 MappingDataOnTheFly (const Quadrature< 1 > &quadrature, const UpdateFlags update_flags)
 
void reinit (typename ::Triangulation< dim >::cell_iterator cell)
 
bool is_initialized () const
 
typename ::Triangulation< dim >::cell_iterator get_cell () const
 
const ::FEValues< dim > & get_fe_values () const
 
const MappingInfoStorage< dim, dim, Number, VectorizedArrayType > & get_data_storage () const
 
const Quadrature< 1 > & get_quadrature () const
 

Private Attributes

typename ::Triangulation< dim >::cell_iterator present_cell
 
FE_Nothing< dim > fe_dummy
 
::FEValues< dim > fe_values
 
const Quadrature< 1 > quadrature_1d
 
MappingInfoStorage< dim, dim, Number, VectorizedArrayType > mapping_info_storage
 

Detailed Description

template<int dim, typename Number, typename VectorizedArrayType>
class internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >

This class provides evaluated mapping information using standard deal.II information in a form that FEEvaluation and friends can use for vectorized access. Since no vectorization over cells is available with the DoFHandler/Triangulation cell iterators, the interface to FEEvaluation's vectorization model is to use VectorizedArray::n_array_element copies of the same element. This interface is thus primarily useful for evaluating several operators on the same cell, e.g., when assembling cell matrices.

As opposed to the Mapping classes in deal.II, this class does not actually provide a boundary description that can be used to evaluate the geometry, but it rather provides the evaluated geometry from a given deal.II mapping (as passed to the constructor of this class) in a form accessible to FEEvaluation.

Author
Martin Kronbichler, 2014

Definition at line 62 of file mapping_data_on_the_fly.h.

Constructor & Destructor Documentation

◆ MappingDataOnTheFly() [1/2]

template<int dim, typename Number , typename VectorizedArrayType >
internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::MappingDataOnTheFly ( const Mapping< dim > &  mapping,
const Quadrature< 1 > &  quadrature,
const UpdateFlags  update_flags 
)
inline

Constructor, similar to FEValues. Since this class only evaluates the geometry, no finite element has to be specified and the simplest element, FE_Nothing, is used internally for the underlying FEValues object.

Definition at line 166 of file mapping_data_on_the_fly.h.

◆ MappingDataOnTheFly() [2/2]

template<int dim, typename Number , typename VectorizedArrayType >
internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::MappingDataOnTheFly ( const Quadrature< 1 > &  quadrature,
const UpdateFlags  update_flags 
)
inline

Constructor. This constructor is equivalent to the other one except that it makes the object use a \(Q_1\) mapping (i.e., an object of type MappingQGeneric(1)) implicitly.

Definition at line 203 of file mapping_data_on_the_fly.h.

Member Function Documentation

◆ reinit()

template<int dim, typename Number , typename VectorizedArrayType >
void internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::reinit ( typename ::Triangulation< dim >::cell_iterator  cell)
inline

Initialize with the given cell iterator.

Definition at line 214 of file mapping_data_on_the_fly.h.

◆ is_initialized()

template<int dim, typename Number , typename VectorizedArrayType >
bool internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::is_initialized
inline

Return whether reinit() has been called at least once, i.e., a cell has been set.

Definition at line 253 of file mapping_data_on_the_fly.h.

◆ get_cell()

template<int dim, typename Number , typename VectorizedArrayType >
typename::Triangulation< dim >::cell_iterator internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::get_cell
inline

Return a triangulation iterator to the current cell.

Definition at line 264 of file mapping_data_on_the_fly.h.

◆ get_fe_values()

template<int dim, typename Number , typename VectorizedArrayType >
const ::FEValues< dim > & internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::get_fe_values
inline

Return a reference to the underlying FEValues object that evaluates certain quantities (only mapping-related ones like Jacobians or mapped quadrature points are accessible, as no finite element data is actually used).

Definition at line 273 of file mapping_data_on_the_fly.h.

◆ get_data_storage()

template<int dim, typename Number , typename VectorizedArrayType >
const MappingInfoStorage< dim, dim, Number, VectorizedArrayType > & internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::get_data_storage
inline

Return a reference to the underlying storage field of type MappingInfoStorage of the same format as the data fields in MappingInfo. This ensures compatibility with the precomputed data fields in the MappingInfo class.

Definition at line 282 of file mapping_data_on_the_fly.h.

◆ get_quadrature()

template<int dim, typename Number , typename VectorizedArrayType >
const Quadrature< 1 > & internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::get_quadrature
inline

Return a reference to 1D quadrature underlying this object.

Definition at line 292 of file mapping_data_on_the_fly.h.

Member Data Documentation

◆ present_cell

template<int dim, typename Number , typename VectorizedArrayType >
typename ::Triangulation<dim>::cell_iterator internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::present_cell
private

A cell iterator in case we generate the data on the fly to be able to check if we need to re-generate the information stored in this class.

Definition at line 135 of file mapping_data_on_the_fly.h.

◆ fe_dummy

template<int dim, typename Number , typename VectorizedArrayType >
FE_Nothing<dim> internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::fe_dummy
private

Dummy finite element object necessary for initializing the FEValues object.

Definition at line 141 of file mapping_data_on_the_fly.h.

◆ fe_values

template<int dim, typename Number , typename VectorizedArrayType >
::FEValues<dim> internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::fe_values
private

An underlying FEValues object that performs the (scalar) evaluation.

Definition at line 146 of file mapping_data_on_the_fly.h.

◆ quadrature_1d

template<int dim, typename Number , typename VectorizedArrayType >
const Quadrature<1> internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::quadrature_1d
private

Get 1D quadrature formula to be used for reinitializing shape info.

Definition at line 151 of file mapping_data_on_the_fly.h.

◆ mapping_info_storage

template<int dim, typename Number , typename VectorizedArrayType >
MappingInfoStorage<dim, dim, Number, VectorizedArrayType> internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number, VectorizedArrayType >::mapping_info_storage
private

The storage part created for a single cell and held in analogy to MappingInfo.

Definition at line 158 of file mapping_data_on_the_fly.h.


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