Flow123d  DF_patch_fe_data_tables-ab62eed
Public Member Functions | Public Attributes | List of all members
PatchFEValues< spacedim >::DimPatchFEValues Class Reference

Subobject holds FE data of one dimension (0,1,2,3) More...

Collaboration diagram for PatchFEValues< spacedim >::DimPatchFEValues:
Collaboration graph
[legend]

Public Member Functions

 DimPatchFEValues (unsigned int max_size=0)
 Constructor. More...
 
unsigned int used_size () const
 
unsigned int max_size () const
 
void reinit (PatchElementsList patch_elements)
 
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...
 
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...
 
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...
 
void set_shape_value (unsigned int i_point, unsigned int i_func_comp, double val)
 
void set_shape_gradient (unsigned int i_point, unsigned int i_func_comp, arma::vec::fixed< spacedim > val)
 
double shape_value (const unsigned int function_no, const unsigned int point_no) const
 Return the value of the function_no-th shape function at the point_no-th quadrature point. More...
 
arma::vec::fixed< spacedim > shape_grad (const unsigned int function_no, const unsigned int point_no) const
 Return the gradient of the function_no-th shape function at the point_no-th quadrature point. More...
 
double JxW (const BulkPoint &p)
 Return the product of Jacobian determinant and the quadrature weight at given quadrature point. More...
 
double JxW (const SidePoint &p)
 Return the product of Jacobian determinant and the quadrature weight at given quadrature point. More...
 
double shape_value (const unsigned int function_no, const BulkPoint &p) const
 Return the value of the function_no-th shape function at the p quadrature point. More...
 
double shape_value (const unsigned int function_no, const SidePoint &p) const
 Return the value of the function_no-th shape function at the p quadrature point. More...
 
arma::vec::fixed< spacedim > shape_grad (const unsigned int function_no, const BulkPoint &p) const
 Return the gradient of the function_no-th shape function at the p quadrature point. More...
 
arma::vec::fixed< spacedim > shape_grad (const unsigned int function_no, const SidePoint &p) const
 Return the gradient of the function_no-th shape function at the p quadrature point. More...
 
arma::vec::fixed< spacedim > normal_vector (const SidePoint &p)
 Returns the normal vector to a side at given quadrature point. More...
 
void resize (unsigned int max_size)
 Set size of ElementFEData. Important: Use only during the initialization of FESystem ! More...
 

Public 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< PatchFEValues< spacedim >::DimPatchFEValuesfe_values_vec
 Vector of FEValues for sub-elements of FESystem. More...
 
unsigned int n_components_
 Number of components of the FE. 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...
 
unsigned int patch_data_idx_
 Patch index of processed element / side. More...
 
std::map< unsigned int, unsigned int > element_patch_map_
 Map of element patch indexes to element_data_. More...
 
std::vector< ElementFEDataelement_data_
 Data of elements / sides on patch. More...
 
unsigned int used_size_
 Number of elements / sides on patch. Must be less or equal to size of element_data vector. More...
 
unsigned int max_n_elem_
 Maximal number of elements on patch. More...
 
MeshObjectType object_type_
 Distinguishes using of PatchFEValues for storing data of elements or sides. More...
 

Detailed Description

template<unsigned int spacedim = 3>
class PatchFEValues< spacedim >::DimPatchFEValues

Subobject holds FE data of one dimension (0,1,2,3)

Definition at line 624 of file patch_fe_values.hh.

Constructor & Destructor Documentation

◆ DimPatchFEValues()

template<unsigned int spacedim = 3>
PatchFEValues< spacedim >::DimPatchFEValues::DimPatchFEValues ( unsigned int  max_size = 0)
inline

Constructor.

Definition at line 627 of file patch_fe_values.hh.

Member Function Documentation

◆ allocate()

template<unsigned int spacedim>
template<unsigned int DIM>
void PatchFEValues< spacedim >::DimPatchFEValues::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 101 of file patch_fe_values.cc.

Here is the caller graph for this function:

◆ fill_data()

template<unsigned int spacedim>
void PatchFEValues< spacedim >::DimPatchFEValues::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.

Parameters
fe_dataPrecomputed finite element data.

Definition at line 230 of file patch_fe_values.cc.

◆ fill_data_specialized()

template<unsigned int spacedim>
template<class MapType >
void PatchFEValues< spacedim >::DimPatchFEValues::fill_data_specialized ( const ElementValues< spacedim > &  elm_values,
const FEInternalData fe_data 
)
inline

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 259 of file patch_fe_values.cc.

◆ init_fe_data()

template<unsigned int spacedim>
template<unsigned int DIM>
std::shared_ptr< FEInternalData > PatchFEValues< spacedim >::DimPatchFEValues::init_fe_data ( const FiniteElement< DIM > &  fe,
const Quadrature q 
)

Precompute finite element data on reference element.

Definition at line 162 of file patch_fe_values.cc.

Here is the caller graph for this function:

◆ initialize()

template<unsigned int spacedim>
template<unsigned int DIM>
void PatchFEValues< spacedim >::DimPatchFEValues::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 56 of file patch_fe_values.cc.

◆ JxW() [1/2]

template<unsigned int spacedim = 3>
double PatchFEValues< spacedim >::DimPatchFEValues::JxW ( const BulkPoint p)
inline

Return the product of Jacobian determinant and the quadrature weight at given quadrature point.

Parameters
pBulkPoint corresponds to the quadrature point.

Definition at line 740 of file patch_fe_values.hh.

◆ JxW() [2/2]

template<unsigned int spacedim = 3>
double PatchFEValues< spacedim >::DimPatchFEValues::JxW ( const SidePoint p)
inline

Return the product of Jacobian determinant and the quadrature weight at given quadrature point.

Parameters
pSidePoint corresponds to the quadrature point.

Definition at line 752 of file patch_fe_values.hh.

◆ max_size()

template<unsigned int spacedim = 3>
unsigned int PatchFEValues< spacedim >::DimPatchFEValues::max_size ( ) const
inline

Definition at line 635 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ normal_vector()

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues< spacedim >::DimPatchFEValues::normal_vector ( const SidePoint p)
inline

Returns the normal vector to a side at given quadrature point.

Parameters
pSidePoint corresponds to the quadrature point.

Definition at line 819 of file patch_fe_values.hh.

◆ reinit()

template<unsigned int spacedim>
void PatchFEValues< spacedim >::DimPatchFEValues::reinit ( PatchElementsList  patch_elements)

Definition at line 198 of file patch_fe_values.cc.

◆ resize()

template<unsigned int spacedim = 3>
void PatchFEValues< spacedim >::DimPatchFEValues::resize ( unsigned int  max_size)
inline

Set size of ElementFEData. Important: Use only during the initialization of FESystem !

Definition at line 826 of file patch_fe_values.hh.

◆ set_shape_gradient()

template<unsigned int spacedim = 3>
void PatchFEValues< spacedim >::DimPatchFEValues::set_shape_gradient ( unsigned int  i_point,
unsigned int  i_func_comp,
arma::vec::fixed< spacedim >  val 
)
inline

!! Temporary function. Use in fill_data. Set shape gradient val of the i_point and i_func_comp.

Definition at line 699 of file patch_fe_values.hh.

◆ set_shape_value()

template<unsigned int spacedim = 3>
void PatchFEValues< spacedim >::DimPatchFEValues::set_shape_value ( unsigned int  i_point,
unsigned int  i_func_comp,
double  val 
)
inline

!! Temporary function. Use in fill_data. Set shape value val of the i_point and i_func_comp.

Definition at line 690 of file patch_fe_values.hh.

◆ shape_grad() [1/3]

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues< spacedim >::DimPatchFEValues::shape_grad ( const unsigned int  function_no,
const BulkPoint p 
) const
inline

Return the gradient of the function_no-th shape function at the p quadrature point.

Parameters
function_noNumber of the shape function.
pBulkPoint corresponds to the quadrature point.

Definition at line 793 of file patch_fe_values.hh.

◆ shape_grad() [2/3]

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues< spacedim >::DimPatchFEValues::shape_grad ( const unsigned int  function_no,
const SidePoint p 
) const
inline

Return the gradient of the function_no-th shape function at the p quadrature point.

Parameters
function_noNumber of the shape function.
pSidePoint corresponds to the quadrature point.

Definition at line 807 of file patch_fe_values.hh.

◆ shape_grad() [3/3]

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues< spacedim >::DimPatchFEValues::shape_grad ( const unsigned int  function_no,
const unsigned int  point_no 
) const
inline

Return the gradient of the function_no-th shape function at the point_no-th quadrature point.

!! Temporary function. Use in fill_data.

Parameters
function_noNumber of the shape function.
point_noNumber of the quadrature point.

Definition at line 727 of file patch_fe_values.hh.

◆ shape_value() [1/3]

template<unsigned int spacedim = 3>
double PatchFEValues< spacedim >::DimPatchFEValues::shape_value ( const unsigned int  function_no,
const BulkPoint p 
) const
inline

Return the value of the function_no-th shape function at the p quadrature point.

Parameters
function_noNumber of the shape function.
pBulkPoint corresponds to the quadrature point.

Definition at line 765 of file patch_fe_values.hh.

◆ shape_value() [2/3]

template<unsigned int spacedim = 3>
double PatchFEValues< spacedim >::DimPatchFEValues::shape_value ( const unsigned int  function_no,
const SidePoint p 
) const
inline

Return the value of the function_no-th shape function at the p quadrature point.

Parameters
function_noNumber of the shape function.
pSidePoint corresponds to the quadrature point.

Definition at line 779 of file patch_fe_values.hh.

◆ shape_value() [3/3]

template<unsigned int spacedim = 3>
double PatchFEValues< spacedim >::DimPatchFEValues::shape_value ( const unsigned int  function_no,
const unsigned int  point_no 
) const
inline

Return the value of the function_no-th shape function at the point_no-th quadrature point.

!! Temporary function. Use in fill_data.

Parameters
function_noNumber of the shape function.
point_noNumber of the quadrature point.

Definition at line 712 of file patch_fe_values.hh.

◆ used_size()

template<unsigned int spacedim = 3>
unsigned int PatchFEValues< spacedim >::DimPatchFEValues::used_size ( ) const
inline

Definition at line 631 of file patch_fe_values.hh.

Member Data Documentation

◆ dim_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues< spacedim >::DimPatchFEValues::dim_

Dimension of reference space.

Definition at line 832 of file patch_fe_values.hh.

◆ element_data_

template<unsigned int spacedim = 3>
std::vector<ElementFEData> PatchFEValues< spacedim >::DimPatchFEValues::element_data_

Data of elements / sides on patch.

Definition at line 877 of file patch_fe_values.hh.

◆ element_patch_map_

template<unsigned int spacedim = 3>
std::map<unsigned int, unsigned int> PatchFEValues< spacedim >::DimPatchFEValues::element_patch_map_

Map of element patch indexes to element_data_.

Definition at line 874 of file patch_fe_values.hh.

◆ fe_data_

template<unsigned int spacedim = 3>
std::shared_ptr<FEInternalData> PatchFEValues< spacedim >::DimPatchFEValues::fe_data_

Precomputed finite element data.

Definition at line 865 of file patch_fe_values.hh.

◆ fe_sys_dofs_

template<unsigned int spacedim = 3>
std::vector<std::vector<unsigned int> > PatchFEValues< spacedim >::DimPatchFEValues::fe_sys_dofs_

Dof indices of FESystem sub-elements.

Definition at line 844 of file patch_fe_values.hh.

◆ fe_sys_n_components_

template<unsigned int spacedim = 3>
std::vector<unsigned int> PatchFEValues< spacedim >::DimPatchFEValues::fe_sys_n_components_

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

Definition at line 847 of file patch_fe_values.hh.

◆ fe_sys_n_space_components_

template<unsigned int spacedim = 3>
std::vector<unsigned int> PatchFEValues< spacedim >::DimPatchFEValues::fe_sys_n_space_components_

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

Definition at line 850 of file patch_fe_values.hh.

◆ fe_type_

template<unsigned int spacedim = 3>
FEType PatchFEValues< spacedim >::DimPatchFEValues::fe_type_

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

Definition at line 841 of file patch_fe_values.hh.

◆ fe_values_vec

template<unsigned int spacedim = 3>
std::vector<PatchFEValues<spacedim>::DimPatchFEValues> PatchFEValues< spacedim >::DimPatchFEValues::fe_values_vec

Vector of FEValues for sub-elements of FESystem.

Definition at line 856 of file patch_fe_values.hh.

◆ max_n_elem_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues< spacedim >::DimPatchFEValues::max_n_elem_

Maximal number of elements on patch.

Definition at line 883 of file patch_fe_values.hh.

◆ n_components_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues< spacedim >::DimPatchFEValues::n_components_

Number of components of the FE.

Definition at line 859 of file patch_fe_values.hh.

◆ n_dofs_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues< spacedim >::DimPatchFEValues::n_dofs_

Number of finite element dofs.

Definition at line 838 of file patch_fe_values.hh.

◆ n_points_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues< spacedim >::DimPatchFEValues::n_points_

Number of integration points.

Definition at line 835 of file patch_fe_values.hh.

◆ object_type_

template<unsigned int spacedim = 3>
MeshObjectType PatchFEValues< spacedim >::DimPatchFEValues::object_type_

Distinguishes using of PatchFEValues for storing data of elements or sides.

Definition at line 886 of file patch_fe_values.hh.

◆ patch_data_idx_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues< spacedim >::DimPatchFEValues::patch_data_idx_

Patch index of processed element / side.

Definition at line 871 of file patch_fe_values.hh.

◆ side_fe_data_

template<unsigned int spacedim = 3>
std::vector<shared_ptr<FEInternalData> > PatchFEValues< spacedim >::DimPatchFEValues::side_fe_data_

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

Definition at line 868 of file patch_fe_values.hh.

◆ update_flags

template<unsigned int spacedim = 3>
UpdateFlags PatchFEValues< spacedim >::DimPatchFEValues::update_flags

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

Definition at line 853 of file patch_fe_values.hh.

◆ used_size_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues< spacedim >::DimPatchFEValues::used_size_

Number of elements / sides on patch. Must be less or equal to size of element_data vector.

Definition at line 880 of file patch_fe_values.hh.


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