Reference documentation for deal.II version 9.0.0
Public Member Functions | Private Attributes | List of all members
internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number > Class Template Reference

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

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 > & 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 > mapping_info_storage
 

Detailed Description

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

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 59 of file mapping_data_on_the_fly.h.

Constructor & Destructor Documentation

◆ MappingDataOnTheFly() [1/2]

template<int dim, typename Number >
internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number >::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 154 of file mapping_data_on_the_fly.h.

◆ MappingDataOnTheFly() [2/2]

template<int dim, typename Number >
internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number >::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 185 of file mapping_data_on_the_fly.h.

Member Function Documentation

◆ reinit()

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

Initialize with the given cell iterator.

Definition at line 197 of file mapping_data_on_the_fly.h.

◆ is_initialized()

template<int dim, typename Number >
bool internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number >::is_initialized ( ) const
inline

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

Definition at line 234 of file mapping_data_on_the_fly.h.

◆ get_cell()

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

Return a triangulation iterator to the current cell.

Definition at line 244 of file mapping_data_on_the_fly.h.

◆ get_fe_values()

template<int dim, typename Number >
const ::FEValues< dim > & internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number >::get_fe_values ( ) const
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 254 of file mapping_data_on_the_fly.h.

◆ get_data_storage()

template<int dim, typename Number >
const MappingInfoStorage< dim, dim, Number > & internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number >::get_data_storage ( ) const
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 264 of file mapping_data_on_the_fly.h.

◆ get_quadrature()

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

Return a reference to 1D quadrature underlying this object.

Definition at line 274 of file mapping_data_on_the_fly.h.

Member Data Documentation

◆ present_cell

template<int dim, typename Number = double>
typename ::Triangulation<dim>::cell_iterator internal::MatrixFreeFunctions::MappingDataOnTheFly< dim, Number >::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 124 of file mapping_data_on_the_fly.h.

◆ fe_dummy

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

Dummy finite element object necessary for initializing the FEValues object.

Definition at line 130 of file mapping_data_on_the_fly.h.

◆ fe_values

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

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

Definition at line 135 of file mapping_data_on_the_fly.h.

◆ quadrature_1d

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

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

Definition at line 140 of file mapping_data_on_the_fly.h.

◆ mapping_info_storage

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

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

Definition at line 146 of file mapping_data_on_the_fly.h.


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