Flow123d  DF_patch_fe_data_tables-1a16803
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
PatchFEValues_TEMP< spacedim > Class Template Reference

#include <fe_values.hh>

Inheritance diagram for PatchFEValues_TEMP< spacedim >:
Inheritance graph
[legend]
Collaboration diagram for PatchFEValues_TEMP< spacedim >:
Collaboration graph
[legend]

Classes

class  ElementFEData
 

Public Member Functions

 PatchFEValues_TEMP (unsigned int max_size=0)
 Constructor, set maximal number of elements on patch. More...
 
void reinit (PatchElementsList patch_elements)
 Reinit data. More...
 
unsigned int used_size () const
 
unsigned int max_size () const
 
void get_cell (const unsigned int patch_cell_idx)
 Set element that is selected for processing. Element is given by index on patch. More...
 
void get_side (unsigned int patch_cell_idx, unsigned int side_idx)
 Set element and side that are selected for processing. Element is given by index on patch. More...
 
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...
 
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 unsigned int point_no) const
 Return the gradient 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 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...
 
double shape_value_component (const unsigned int function_no, const unsigned int point_no, const unsigned int comp) 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_component (const unsigned int function_no, const unsigned int point_no, const unsigned int comp) const
 Return the gradient of the function_no-th shape function at the point_no-th quadrature point. 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 determinant (const unsigned int point_no)
 Return the relative volume change of the cell (Jacobian determinant). More...
 
double JxW (const unsigned int point_no)
 Return the product of Jacobian determinant and the quadrature weight at given 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...
 
arma::vec::fixed< spacedim > normal_vector (unsigned int point_no)
 Returns the normal vector to a side at given quadrature point. More...
 
arma::vec::fixed< spacedim > normal_vector (const SidePoint &p)
 Returns the normal vector to a side at given quadrature point. More...
 
- Public Member Functions inherited from FEValuesBase< PatchFEValues_TEMP< 3 >, 3 >
 FEValuesBase ()
 Default constructor with postponed initialization. More...
 
void initialize (Quadrature &_quadrature, FiniteElement< DIM > &_fe, UpdateFlags _flags)
 Initialize structures and calculates cell-independent data. More...
 
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< PatchFEValues_TEMP< 3 >, spacedim > & scalar_view (unsigned int i) const
 Accessor to scalar values of multicomponent FE. More...
 
const FEValuesViews::Vector< PatchFEValues_TEMP< 3 >, spacedim > & vector_view (unsigned int i) const
 Accessor to vector values of multicomponent FE. More...
 
const FEValuesViews::Tensor< PatchFEValues_TEMP< 3 >, spacedim > & tensor_view (unsigned int i) const
 Accessor to tensor values of multicomponent FE. More...
 

Protected Types

enum  MeshObjectType { ElementFE = 0 , SideFE = 1 }
 

Protected Member Functions

void resize (unsigned int max_size)
 Set size of ElementFEData. Important: Use only during the initialization of FESystem ! More...
 
void allocate_in (unsigned int q_dim) override
 Implement FEValuesBase::allocate_in. More...
 
void initialize_in (Quadrature &q, unsigned int dim) override
 Implement FEValuesBase::initialize_in. More...
 
void init_fe_val_vec () override
 Implement FEValuesBase::initialize_in. More...
 
- Protected Member Functions inherited from FEValuesBase< PatchFEValues_TEMP< 3 >, 3 >
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...
 
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...
 
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 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_TEMP for storing data of elements or sides. More...
 
- Protected Attributes inherited from FEValuesBase< PatchFEValues_TEMP< 3 >, 3 >
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_TEMP< 3 > > 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...
 
PatchFEValues_TEMP< 3 > * fv_
 Helper object, we need its for ViewsCache initialization. More...
 

Friends

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

Detailed Description

template<unsigned int spacedim = 3>
class PatchFEValues_TEMP< spacedim >

Definition at line 499 of file fe_values.hh.

Member Enumeration Documentation

◆ MeshObjectType

template<unsigned int spacedim = 3>
enum PatchFEValues_TEMP::MeshObjectType
protected
Enumerator
ElementFE 
SideFE 

Definition at line 740 of file fe_values.hh.

Constructor & Destructor Documentation

◆ PatchFEValues_TEMP()

template<unsigned int spacedim = 3>
PatchFEValues_TEMP< spacedim >::PatchFEValues_TEMP ( unsigned int  max_size = 0)

Constructor, set maximal number of elements on patch.

Member Function Documentation

◆ allocate_in()

template<unsigned int spacedim = 3>
void PatchFEValues_TEMP< spacedim >::allocate_in ( unsigned int  q_dim)
overrideprotectedvirtual

◆ determinant()

template<unsigned int spacedim = 3>
double PatchFEValues_TEMP< spacedim >::determinant ( const unsigned int  point_no)
inline

Return the relative volume change of the cell (Jacobian determinant).

If dim_==spacedim then the sign may be negative, otherwise the result is a positive number.

Parameters
point_noNumber of the quadrature point.

Definition at line 671 of file fe_values.hh.

◆ get_cell()

template<unsigned int spacedim = 3>
void PatchFEValues_TEMP< spacedim >::get_cell ( const unsigned int  patch_cell_idx)
inline

Set element that is selected for processing. Element is given by index on patch.

Definition at line 516 of file fe_values.hh.

Here is the caller graph for this function:

◆ get_side()

template<unsigned int spacedim = 3>
void PatchFEValues_TEMP< spacedim >::get_side ( unsigned int  patch_cell_idx,
unsigned int  side_idx 
)
inline

Set element and side that are selected for processing. Element is given by index on patch.

Definition at line 521 of file fe_values.hh.

Here is the caller graph for this function:

◆ init_fe_val_vec()

template<unsigned int spacedim = 3>
void PatchFEValues_TEMP< spacedim >::init_fe_val_vec ( )
overrideprotectedvirtual

◆ initialize_in()

template<unsigned int spacedim = 3>
void PatchFEValues_TEMP< spacedim >::initialize_in ( Quadrature q,
unsigned int  dim 
)
overrideprotectedvirtual

◆ JxW() [1/3]

template<unsigned int spacedim = 3>
double PatchFEValues_TEMP< spacedim >::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 697 of file fe_values.hh.

◆ JxW() [2/3]

template<unsigned int spacedim = 3>
double PatchFEValues_TEMP< spacedim >::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 709 of file fe_values.hh.

◆ JxW() [3/3]

template<unsigned int spacedim = 3>
double PatchFEValues_TEMP< spacedim >::JxW ( const unsigned int  point_no)
inline

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

Parameters
point_noNumber of the quadrature point.

Definition at line 683 of file fe_values.hh.

Here is the caller graph for this function:

◆ max_size()

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

Definition at line 511 of file fe_values.hh.

Here is the caller graph for this function:

◆ normal_vector() [1/2]

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues_TEMP< spacedim >::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 732 of file fe_values.hh.

◆ normal_vector() [2/2]

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues_TEMP< spacedim >::normal_vector ( unsigned int  point_no)
inline

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

Parameters
point_noNumber of the quadrature point.

Definition at line 720 of file fe_values.hh.

Here is the caller graph for this function:

◆ reinit()

template<unsigned int spacedim = 3>
void PatchFEValues_TEMP< spacedim >::reinit ( PatchElementsList  patch_elements)

Reinit data.

Here is the caller graph for this function:

◆ resize()

template<unsigned int spacedim = 3>
void PatchFEValues_TEMP< spacedim >::resize ( unsigned int  max_size)
inlineprotected

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

Definition at line 763 of file fe_values.hh.

◆ set_shape_gradient()

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

Set shape gradient val of the i_point and i_func_comp.

Definition at line 658 of file fe_values.hh.

◆ set_shape_value()

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

Set shape value val of the i_point and i_func_comp.

Definition at line 650 of file fe_values.hh.

◆ shape_grad() [1/3]

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues_TEMP< spacedim >::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 593 of file fe_values.hh.

◆ shape_grad() [2/3]

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues_TEMP< spacedim >::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 607 of file fe_values.hh.

◆ shape_grad() [3/3]

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues_TEMP< spacedim >::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.

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

Definition at line 578 of file fe_values.hh.

◆ shape_grad_component()

template<unsigned int spacedim = 3>
arma::vec::fixed<spacedim> PatchFEValues_TEMP< spacedim >::shape_grad_component ( const unsigned int  function_no,
const unsigned int  point_no,
const unsigned int  comp 
) const

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

For vectorial finite elements.

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

◆ shape_value() [1/3]

template<unsigned int spacedim = 3>
double PatchFEValues_TEMP< spacedim >::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 548 of file fe_values.hh.

◆ shape_value() [2/3]

template<unsigned int spacedim = 3>
double PatchFEValues_TEMP< spacedim >::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 563 of file fe_values.hh.

◆ shape_value() [3/3]

template<unsigned int spacedim = 3>
double PatchFEValues_TEMP< spacedim >::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.

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

Definition at line 532 of file fe_values.hh.

◆ shape_value_component()

template<unsigned int spacedim = 3>
double PatchFEValues_TEMP< spacedim >::shape_value_component ( const unsigned int  function_no,
const unsigned int  point_no,
const unsigned int  comp 
) const
inline

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

For vectorial finite elements.

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

Definition at line 623 of file fe_values.hh.

◆ used_size()

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

Definition at line 507 of file fe_values.hh.

Friends And Related Function Documentation

◆ MapContravariant< PatchFEValues_TEMP< spacedim >, spacedim >

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

Definition at line 792 of file fe_values.hh.

◆ MapPiola< PatchFEValues_TEMP< spacedim >, spacedim >

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

Definition at line 792 of file fe_values.hh.

◆ MapScalar< PatchFEValues_TEMP< spacedim >, spacedim >

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

Definition at line 792 of file fe_values.hh.

◆ MapSystem< PatchFEValues_TEMP< spacedim >, spacedim >

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

Definition at line 792 of file fe_values.hh.

◆ MapTensor< PatchFEValues_TEMP< spacedim >, spacedim >

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

Definition at line 792 of file fe_values.hh.

◆ MapVector< PatchFEValues_TEMP< spacedim >, spacedim >

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

Definition at line 792 of file fe_values.hh.

Member Data Documentation

◆ element_data_

template<unsigned int spacedim = 3>
std::vector<ElementFEData> PatchFEValues_TEMP< spacedim >::element_data_
protected

Data of elements / sides on patch.

Definition at line 783 of file fe_values.hh.

◆ element_patch_map_

template<unsigned int spacedim = 3>
std::map<unsigned int, unsigned int> PatchFEValues_TEMP< spacedim >::element_patch_map_
protected

Map of element patch indexes to element_data_.

Definition at line 780 of file fe_values.hh.

◆ max_n_elem_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues_TEMP< spacedim >::max_n_elem_
protected

Maximal number of elements on patch.

Definition at line 789 of file fe_values.hh.

◆ object_type_

template<unsigned int spacedim = 3>
MeshObjectType PatchFEValues_TEMP< spacedim >::object_type_
protected

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

Definition at line 792 of file fe_values.hh.

◆ patch_data_idx_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues_TEMP< spacedim >::patch_data_idx_
protected

Patch index of processed element / side.

Definition at line 777 of file fe_values.hh.

◆ used_size_

template<unsigned int spacedim = 3>
unsigned int PatchFEValues_TEMP< spacedim >::used_size_
protected

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

Definition at line 786 of file fe_values.hh.


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