Flow123d  DF_patch_fevalues-8016b85
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

class  FEInternalData
 Structure for storing the precomputed finite element data. More...
 
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...
 
template<class MapType >
void fill_data_specialized (const ElementValues< spacedim > &elm_values, const typename FEValuesBase< FV, spacedim >::FEInternalData &fe_data)
 

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. More...
 
template<unsigned int DIM>
std::shared_ptr< typename FEValuesBase< FV, spacedim >::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 60 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 42 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 176 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< spacedim >, PatchFEValues< 3 >, PatchFEValues< 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 119 of file fe_values.hh.

◆ fill_data()

template<class FV , unsigned int spacedim = 3>
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 257 of file fe_values.cc.

◆ fill_data_specialized() [1/2]

template<class FV , unsigned int spacedim = 3>
template<class MapType >
void FEValuesBase< FV, spacedim >::fill_data_specialized ( 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. Specialized variant of previous method for different FETypes given by template parameter.

◆ fill_data_specialized() [2/2]

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

Definition at line 287 of file fe_values.cc.

◆ init_fe_data()

template<class FV , unsigned int spacedim>
template<unsigned int DIM>
std::shared_ptr< typename FEValuesBase< FV, spacedim >::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 221 of file fe_values.cc.

Here is the caller graph for this function:

◆ 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.

Implemented in PatchFEValues< spacedim >, PatchFEValues< 3 >, PatchFEValues< 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 132 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< spacedim >, PatchFEValues< 3 >, PatchFEValues< 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 113 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 107 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 126 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 146 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 136 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 262 of file fe_values.hh.

◆ MapPiola< FV, spacedim >

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

Definition at line 262 of file fe_values.hh.

◆ MapScalar< FV, spacedim >

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

Definition at line 262 of file fe_values.hh.

◆ MapSystem< FV, spacedim >

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

Definition at line 262 of file fe_values.hh.

◆ MapTensor< FV, spacedim >

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

Definition at line 262 of file fe_values.hh.

◆ MapVector< FV, spacedim >

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

Definition at line 262 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 223 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 256 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 235 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 238 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 241 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 232 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 247 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 262 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 250 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 229 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 226 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 259 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 244 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 253 of file fe_values.hh.


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