Flow123d  DF_patch_fe_data_tables-dc76198
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
FEValuesBase< FV, spacedim > Class Template Referenceabstract

#include <fe_values.hh>

Inheritance diagram for FEValuesBase< FV, spacedim >:
Inheritance graph
[legend]
Collaboration diagram for FEValuesBase< FV, spacedim >:
Collaboration graph
[legend]

Classes

struct  ViewsCache
 

Public Member Functions

 FEValuesBase ()
 Default constructor with postponed initialization. More...
 
template<unsigned int DIM>
void initialize (Quadrature &_quadrature, FiniteElement< DIM > &_fe, UpdateFlags _flags)
 Initialize structures and calculates cell-independent data. More...
 
template<unsigned int DIM>
void allocate (Quadrature &_quadrature, FiniteElement< DIM > &_fe, UpdateFlags flags)
 Allocates space for computed data. More...
 
unsigned int n_points () const
 Returns the number of quadrature points. More...
 
unsigned int n_dofs () const
 Returns the number of shape functions. More...
 
unsigned int dim () const
 Return dimension of reference space. More...
 
const FEValuesViews::Scalar< FV, spacedim > & scalar_view (unsigned int i) const
 Accessor to scalar values of multicomponent FE. More...
 
const FEValuesViews::Vector< FV, spacedim > & vector_view (unsigned int i) const
 Accessor to vector values of multicomponent FE. More...
 
const FEValuesViews::Tensor< FV, spacedim > & tensor_view (unsigned int i) const
 Accessor to tensor values of multicomponent FE. More...
 

Protected Member Functions

void fill_data (const ElementValues< spacedim > &elm_values, const FEInternalData &fe_data)
 Computes the shape function values and gradients on the actual cell and fills the FEValues structure. More...
 
template<class MapType >
void fill_data_specialized (const ElementValues< spacedim > &elm_values, const FEInternalData &fe_data)
 Computes the shape function values and gradients on the actual cell and fills the FEValues structure. Specialized variant of previous method for different FETypes given by template parameter. More...
 
virtual void allocate_in (unsigned int)=0
 Initialize vectors declared separately in descendants. More...
 
virtual void initialize_in (Quadrature &, unsigned int)=0
 Initialize ElementValues separately in descendants. More...
 
virtual void init_fe_val_vec ()=0
 Initialize fe_values_vec only in PatchFEValues_TEMP. More...
 
template<unsigned int DIM>
std::shared_ptr< FEInternalDatainit_fe_data (const FiniteElement< DIM > &fe, const Quadrature &q)
 Precompute finite element data on reference element. More...
 

Protected Attributes

unsigned int dim_
 Dimension of reference space. More...
 
unsigned int n_points_
 Number of integration points. More...
 
unsigned int n_dofs_
 Number of finite element dofs. More...
 
FEType fe_type_
 Type of finite element (scalar, vector, tensor). More...
 
std::vector< std::vector< unsigned int > > fe_sys_dofs_
 Dof indices of FESystem sub-elements. More...
 
std::vector< unsigned int > fe_sys_n_components_
 Numbers of components of FESystem sub-elements in reference space. More...
 
std::vector< unsigned int > fe_sys_n_space_components_
 Numbers of components of FESystem sub-elements in real space. More...
 
UpdateFlags update_flags
 Flags that indicate which finite element quantities are to be computed. More...
 
std::vector< FV > fe_values_vec
 Vector of FEValues for sub-elements of FESystem. More...
 
unsigned int n_components_
 Number of components of the FE. More...
 
ViewsCache views_cache_
 Auxiliary storage of FEValuesViews accessors. More...
 
std::shared_ptr< FEInternalDatafe_data_
 Precomputed finite element data. More...
 
std::vector< shared_ptr< FEInternalData > > side_fe_data_
 Precomputed FE data (shape functions on reference element) for all side quadrature points. More...
 
FV * fv_
 Helper object, we need its for ViewsCache initialization. More...
 

Friends

class MapScalar< FV, spacedim >
 
class MapPiola< FV, spacedim >
 
class MapContravariant< FV, spacedim >
 
class MapVector< FV, spacedim >
 
class MapTensor< FV, spacedim >
 
class MapSystem< FV, spacedim >
 

Detailed Description

template<class FV, unsigned int spacedim = 3>
class FEValuesBase< FV, spacedim >

Definition at line 100 of file fe_values.hh.

Constructor & Destructor Documentation

◆ FEValuesBase()

template<class FV , unsigned int spacedim>
FEValuesBase< FV, spacedim >::FEValuesBase

Default constructor with postponed initialization.

Definition at line 41 of file fe_values.cc.

Member Function Documentation

◆ allocate()

template<class FV , unsigned int spacedim>
template<unsigned int DIM>
void FEValuesBase< FV, spacedim >::allocate ( Quadrature _quadrature,
FiniteElement< DIM > &  _fe,
UpdateFlags  flags 
)

Allocates space for computed data.

Parameters
n_pointsNumber of quadrature points.
_feThe finite element.
flagsThe update flags.

Definition at line 173 of file fe_values.cc.

Here is the caller graph for this function:

◆ allocate_in()

template<class FV , unsigned int spacedim = 3>
virtual void FEValuesBase< FV, spacedim >::allocate_in ( unsigned int  )
protectedpure virtual

Initialize vectors declared separately in descendants.

Implemented in PatchFEValues_TEMP< spacedim >, PatchFEValues_TEMP< 3 >, PatchFEValues_TEMP< spacedim >, FEValues< spacedim >, and FEValues< 3 >.

◆ dim()

template<class FV , unsigned int spacedim = 3>
unsigned int FEValuesBase< FV, spacedim >::dim ( ) const
inline

Return dimension of reference space.

Definition at line 159 of file fe_values.hh.

◆ fill_data()

template<class FV , unsigned int spacedim>
void FEValuesBase< FV, spacedim >::fill_data ( const ElementValues< spacedim > &  elm_values,
const FEInternalData fe_data 
)
protected

Computes the shape function values and gradients on the actual cell and fills the FEValues structure.

Parameters
fe_dataPrecomputed finite element data.

Definition at line 254 of file fe_values.cc.

◆ fill_data_specialized()

template<class FV , unsigned int spacedim>
template<class MapType >
void FEValuesBase< FV, spacedim >::fill_data_specialized ( const ElementValues< spacedim > &  elm_values,
const FEInternalData fe_data 
)
inlineprotected

Computes the shape function values and gradients on the actual cell and fills the FEValues structure. Specialized variant of previous method for different FETypes given by template parameter.

Definition at line 284 of file fe_values.cc.

◆ init_fe_data()

template<class FV , unsigned int spacedim>
template<unsigned int DIM>
std::shared_ptr< FEInternalData > FEValuesBase< FV, spacedim >::init_fe_data ( const FiniteElement< DIM > &  fe,
const Quadrature q 
)
protected

Precompute finite element data on reference element.

Definition at line 218 of file fe_values.cc.

◆ init_fe_val_vec()

template<class FV , unsigned int spacedim = 3>
virtual void FEValuesBase< FV, spacedim >::init_fe_val_vec ( )
protectedpure virtual

Initialize fe_values_vec only in PatchFEValues_TEMP.

Implemented in PatchFEValues_TEMP< spacedim >, PatchFEValues_TEMP< 3 >, PatchFEValues_TEMP< spacedim >, FEValues< spacedim >, and FEValues< 3 >.

Here is the caller graph for this function:

◆ initialize()

template<class FV , unsigned int spacedim>
template<unsigned int DIM>
void FEValuesBase< FV, spacedim >::initialize ( Quadrature _quadrature,
FiniteElement< DIM > &  _fe,
UpdateFlags  _flags 
)

Initialize structures and calculates cell-independent data.

Parameters
_quadratureThe quadrature rule for the cell associated to given finite element or for the cell side.
_feThe finite element.
_flagsThe update flags.

Definition at line 129 of file fe_values.cc.

Here is the caller graph for this function:

◆ initialize_in()

template<class FV , unsigned int spacedim = 3>
virtual void FEValuesBase< FV, spacedim >::initialize_in ( Quadrature ,
unsigned int   
)
protectedpure virtual

Initialize ElementValues separately in descendants.

Implemented in PatchFEValues_TEMP< spacedim >, PatchFEValues_TEMP< 3 >, PatchFEValues_TEMP< spacedim >, FEValues< spacedim >, and FEValues< 3 >.

Here is the caller graph for this function:

◆ n_dofs()

template<class FV , unsigned int spacedim = 3>
unsigned int FEValuesBase< FV, spacedim >::n_dofs ( ) const
inline

Returns the number of shape functions.

Definition at line 153 of file fe_values.hh.

Here is the caller graph for this function:

◆ n_points()

template<class FV , unsigned int spacedim = 3>
unsigned int FEValuesBase< FV, spacedim >::n_points ( ) const
inline

Returns the number of quadrature points.

Definition at line 147 of file fe_values.hh.

Here is the caller graph for this function:

◆ scalar_view()

template<class FV , unsigned int spacedim = 3>
const FEValuesViews::Scalar<FV, spacedim>& FEValuesBase< FV, spacedim >::scalar_view ( unsigned int  i) const
inline

Accessor to scalar values of multicomponent FE.

Parameters
iIndex of scalar component.

Definition at line 166 of file fe_values.hh.

◆ tensor_view()

template<class FV , unsigned int spacedim = 3>
const FEValuesViews::Tensor<FV, spacedim>& FEValuesBase< FV, spacedim >::tensor_view ( unsigned int  i) const
inline

Accessor to tensor values of multicomponent FE.

Parameters
iIndex of first tensor component.

Definition at line 186 of file fe_values.hh.

◆ vector_view()

template<class FV , unsigned int spacedim = 3>
const FEValuesViews::Vector<FV, spacedim>& FEValuesBase< FV, spacedim >::vector_view ( unsigned int  i) const
inline

Accessor to vector values of multicomponent FE.

Parameters
iIndex of first vector component.

Definition at line 176 of file fe_values.hh.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ MapContravariant< FV, spacedim >

template<class FV , unsigned int spacedim = 3>
friend class MapContravariant< FV, spacedim >
friend

Definition at line 263 of file fe_values.hh.

◆ MapPiola< FV, spacedim >

template<class FV , unsigned int spacedim = 3>
friend class MapPiola< FV, spacedim >
friend

Definition at line 263 of file fe_values.hh.

◆ MapScalar< FV, spacedim >

template<class FV , unsigned int spacedim = 3>
friend class MapScalar< FV, spacedim >
friend

Definition at line 263 of file fe_values.hh.

◆ MapSystem< FV, spacedim >

template<class FV , unsigned int spacedim = 3>
friend class MapSystem< FV, spacedim >
friend

Definition at line 263 of file fe_values.hh.

◆ MapTensor< FV, spacedim >

template<class FV , unsigned int spacedim = 3>
friend class MapTensor< FV, spacedim >
friend

Definition at line 263 of file fe_values.hh.

◆ MapVector< FV, spacedim >

template<class FV , unsigned int spacedim = 3>
friend class MapVector< FV, spacedim >
friend

Definition at line 263 of file fe_values.hh.

Member Data Documentation

◆ dim_

template<class FV , unsigned int spacedim = 3>
unsigned int FEValuesBase< FV, spacedim >::dim_
protected

Dimension of reference space.

Definition at line 224 of file fe_values.hh.

◆ fe_data_

template<class FV , unsigned int spacedim = 3>
std::shared_ptr<FEInternalData> FEValuesBase< FV, spacedim >::fe_data_
protected

Precomputed finite element data.

Definition at line 257 of file fe_values.hh.

◆ fe_sys_dofs_

template<class FV , unsigned int spacedim = 3>
std::vector<std::vector<unsigned int> > FEValuesBase< FV, spacedim >::fe_sys_dofs_
protected

Dof indices of FESystem sub-elements.

Definition at line 236 of file fe_values.hh.

◆ fe_sys_n_components_

template<class FV , unsigned int spacedim = 3>
std::vector<unsigned int> FEValuesBase< FV, spacedim >::fe_sys_n_components_
protected

Numbers of components of FESystem sub-elements in reference space.

Definition at line 239 of file fe_values.hh.

◆ fe_sys_n_space_components_

template<class FV , unsigned int spacedim = 3>
std::vector<unsigned int> FEValuesBase< FV, spacedim >::fe_sys_n_space_components_
protected

Numbers of components of FESystem sub-elements in real space.

Definition at line 242 of file fe_values.hh.

◆ fe_type_

template<class FV , unsigned int spacedim = 3>
FEType FEValuesBase< FV, spacedim >::fe_type_
protected

Type of finite element (scalar, vector, tensor).

Definition at line 233 of file fe_values.hh.

◆ fe_values_vec

template<class FV , unsigned int spacedim = 3>
std::vector<FV> FEValuesBase< FV, spacedim >::fe_values_vec
protected

Vector of FEValues for sub-elements of FESystem.

Definition at line 248 of file fe_values.hh.

◆ fv_

template<class FV , unsigned int spacedim = 3>
FV* FEValuesBase< FV, spacedim >::fv_
protected

Helper object, we need its for ViewsCache initialization.

Definition at line 263 of file fe_values.hh.

◆ n_components_

template<class FV , unsigned int spacedim = 3>
unsigned int FEValuesBase< FV, spacedim >::n_components_
protected

Number of components of the FE.

Definition at line 251 of file fe_values.hh.

◆ n_dofs_

template<class FV , unsigned int spacedim = 3>
unsigned int FEValuesBase< FV, spacedim >::n_dofs_
protected

Number of finite element dofs.

Definition at line 230 of file fe_values.hh.

◆ n_points_

template<class FV , unsigned int spacedim = 3>
unsigned int FEValuesBase< FV, spacedim >::n_points_
protected

Number of integration points.

Definition at line 227 of file fe_values.hh.

◆ side_fe_data_

template<class FV , unsigned int spacedim = 3>
std::vector<shared_ptr<FEInternalData> > FEValuesBase< FV, spacedim >::side_fe_data_
protected

Precomputed FE data (shape functions on reference element) for all side quadrature points.

Definition at line 260 of file fe_values.hh.

◆ update_flags

template<class FV , unsigned int spacedim = 3>
UpdateFlags FEValuesBase< FV, spacedim >::update_flags
protected

Flags that indicate which finite element quantities are to be computed.

Definition at line 245 of file fe_values.hh.

◆ views_cache_

template<class FV , unsigned int spacedim = 3>
ViewsCache FEValuesBase< FV, spacedim >::views_cache_
protected

Auxiliary storage of FEValuesViews accessors.

Definition at line 254 of file fe_values.hh.


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