Flow123d  DF_patch_fe_mechanics-5faa023
Classes | Public Types | Public Member Functions | Private Attributes | Friends | List of all members
PatchFEValues< spacedim > Class Template Reference

#include <patch_fe_values.hh>

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

Classes

struct  TableSizes
 Struct for pre-computing number of elements, sides, bulk points and side points on each dimension. More...
 

Public Types

typedef PatchPointValues< spacedim >::PatchFeData PatchFeData
 

Public Member Functions

 PatchFEValues ()
 
 PatchFEValues (unsigned int quad_order, MixedPtr< FiniteElement > fe)
 
 ~PatchFEValues ()
 Destructor. More...
 
template<unsigned int DIM>
void initialize (Quadrature &_quadrature)
 Initialize structures and calculates cell-independent data. More...
 
void init_finalize ()
 Finalize initialization, creates child (patch) arena and passes it to PatchPointValue objects. More...
 
void reset ()
 Reset PatchpointValues structures. More...
 
void reinit_patch ()
 Reinit data. More...
 
template<unsigned int dim>
unsigned int n_dofs () const
 Returns the number of shape functions. More...
 
Quadratureget_bulk_quadrature (uint dim) const
 Getter for bulk quadrature of given dimension. More...
 
Quadratureget_side_quadrature (uint dim) const
 Getter for side quadrature of given dimension. More...
 
template<unsigned int dim>
std::shared_ptr< FiniteElement< dim > > fe_comp (std::shared_ptr< FiniteElement< dim > > fe, uint component_idx)
 Returnd FiniteElement of component_idx for FESystem or fe for other types. More...
 
template<unsigned int dim>
BulkValues< dim > bulk_values ()
 Return BulkValue object of dimension given by template parameter. More...
 
template<unsigned int dim>
SideValues< dim > side_values ()
 Return SideValue object of dimension given by template parameter. More...
 
template<unsigned int dim>
JoinValues< dim > join_values ()
 Return JoinValue object of dimension given by template parameter. More...
 
void resize_tables (TableSizes table_sizes)
 Resize tables of patch_point_vals_. More...
 
uint register_element (DHCellAccessor cell, uint element_patch_idx)
 Register element to patch_point_vals_ table by dimension of element. More...
 
uint register_side (DHCellSide cell_side)
 Register side to patch_point_vals_ table by dimension of side. More...
 
uint register_bulk_point (DHCellAccessor cell, uint elem_table_row, uint value_patch_idx, uint i_point_on_elem)
 Register bulk point to patch_point_vals_ table by dimension of element. More...
 
uint register_side_point (DHCellSide cell_side, uint elem_table_row, uint value_patch_idx, uint i_point_on_side)
 Register side point to patch_point_vals_ table by dimension of side. More...
 
AssemblyArenaasm_arena ()
 return reference to assembly arena More...
 
const AssemblyArenaasm_arena () const
 same as previous but return constant reference More...
 
PatchArenapatch_arena () const
 return reference to patch arena More...
 
template<class OpType , unsigned int dim>
PatchOp< spacedim > * get ()
 Returns operation of given dim and OpType, creates it if doesn't exist. More...
 
template<class OpType , unsigned int dim>
PatchOp< spacedim > * get (std::shared_ptr< FiniteElement< dim >> fe)
 Returns operation of given dim and OpType, creates it if doesn't exist. More...
 
void print_operations (ostream &stream) const
 Print table of all used operations - development method. More...
 

Private Attributes

PatchFeData patch_fe_data_
 
std::vector< std::vector< PatchPointValues< spacedim > > > patch_point_vals_
 Sub objects of bulk and side data of dimensions 1,2,3. More...
 
MixedPtr< FiniteElementfe_
 Mixed of shared pointers of FiniteElement object. More...
 
bool used_quads_ [2]
 Pair of flags signs holds info if bulk and side quadratures are used. More...
 
std::vector< PatchOp< spacedim > * > operations_
 
std::unordered_map< std::string, PatchOp< spacedim > * > op_dependency_
 

Friends

class PatchOp< spacedim >
 

Detailed Description

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

Definition at line 48 of file patch_fe_values.hh.

Member Typedef Documentation

◆ PatchFeData

template<unsigned int spacedim = 3>
typedef PatchPointValues<spacedim>::PatchFeData PatchFEValues< spacedim >::PatchFeData

Definition at line 50 of file patch_fe_values.hh.

Constructor & Destructor Documentation

◆ PatchFEValues() [1/2]

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

Definition at line 94 of file patch_fe_values.hh.

◆ PatchFEValues() [2/2]

template<unsigned int spacedim = 3>
PatchFEValues< spacedim >::PatchFEValues ( unsigned int  quad_order,
MixedPtr< FiniteElement fe 
)
inline

Definition at line 105 of file patch_fe_values.hh.

◆ ~PatchFEValues()

template<unsigned int spacedim = 3>
PatchFEValues< spacedim >::~PatchFEValues ( )
inline

Destructor.

Definition at line 124 of file patch_fe_values.hh.

Member Function Documentation

◆ asm_arena() [1/2]

template<unsigned int spacedim = 3>
AssemblyArena& PatchFEValues< spacedim >::asm_arena ( )
inline

return reference to assembly arena

Definition at line 264 of file patch_fe_values.hh.

◆ asm_arena() [2/2]

template<unsigned int spacedim = 3>
const AssemblyArena& PatchFEValues< spacedim >::asm_arena ( ) const
inline

same as previous but return constant reference

Definition at line 269 of file patch_fe_values.hh.

◆ bulk_values()

template<unsigned int spacedim>
template<unsigned int dim>
BulkValues< dim > PatchFEValues< spacedim >::bulk_values

Return BulkValue object of dimension given by template parameter.

Definition at line 33 of file patch_fe_values.cc.

◆ fe_comp()

template<unsigned int spacedim = 3>
template<unsigned int dim>
std::shared_ptr<FiniteElement<dim> > PatchFEValues< spacedim >::fe_comp ( std::shared_ptr< FiniteElement< dim > >  fe,
uint  component_idx 
)
inline

Returnd FiniteElement of component_idx for FESystem or fe for other types.

Definition at line 194 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ get() [1/2]

template<unsigned int spacedim = 3>
template<class OpType , unsigned int dim>
PatchOp<spacedim>* PatchFEValues< spacedim >::get ( )
inline

Returns operation of given dim and OpType, creates it if doesn't exist.

Definition at line 280 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ get() [2/2]

template<unsigned int spacedim = 3>
template<class OpType , unsigned int dim>
PatchOp<spacedim>* PatchFEValues< spacedim >::get ( std::shared_ptr< FiniteElement< dim >>  fe)
inline

Returns operation of given dim and OpType, creates it if doesn't exist.

Definition at line 296 of file patch_fe_values.hh.

◆ get_bulk_quadrature()

template<unsigned int spacedim = 3>
Quadrature* PatchFEValues< spacedim >::get_bulk_quadrature ( uint  dim) const
inline

Getter for bulk quadrature of given dimension.

Definition at line 179 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ get_side_quadrature()

template<unsigned int spacedim = 3>
Quadrature* PatchFEValues< spacedim >::get_side_quadrature ( uint  dim) const
inline

Getter for side quadrature of given dimension.

Definition at line 185 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ init_finalize()

template<unsigned int spacedim = 3>
void PatchFEValues< spacedim >::init_finalize ( )
inline

Finalize initialization, creates child (patch) arena and passes it to PatchPointValue objects.

Definition at line 147 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ initialize()

template<unsigned int spacedim = 3>
template<unsigned int DIM>
void PatchFEValues< spacedim >::initialize ( Quadrature _quadrature)
inline

Initialize structures and calculates cell-independent data.

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

Definition at line 135 of file patch_fe_values.hh.

◆ join_values()

template<unsigned int spacedim>
template<unsigned int dim>
JoinValues< dim > PatchFEValues< spacedim >::join_values

Return JoinValue object of dimension given by template parameter.

Definition at line 47 of file patch_fe_values.cc.

◆ n_dofs()

template<unsigned int spacedim = 3>
template<unsigned int dim>
unsigned int PatchFEValues< spacedim >::n_dofs ( ) const
inline

Returns the number of shape functions.

Definition at line 173 of file patch_fe_values.hh.

◆ patch_arena()

template<unsigned int spacedim = 3>
PatchArena& PatchFEValues< spacedim >::patch_arena ( ) const
inline

return reference to patch arena

Definition at line 274 of file patch_fe_values.hh.

◆ print_operations()

template<unsigned int spacedim = 3>
void PatchFEValues< spacedim >::print_operations ( ostream &  stream) const
inline

Print table of all used operations - development method.

Definition at line 311 of file patch_fe_values.hh.

◆ register_bulk_point()

template<unsigned int spacedim = 3>
uint PatchFEValues< spacedim >::register_bulk_point ( DHCellAccessor  cell,
uint  elem_table_row,
uint  value_patch_idx,
uint  i_point_on_elem 
)
inline

Register bulk point to patch_point_vals_ table by dimension of element.

Definition at line 253 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ register_element()

template<unsigned int spacedim = 3>
uint PatchFEValues< spacedim >::register_element ( DHCellAccessor  cell,
uint  element_patch_idx 
)
inline

Register element to patch_point_vals_ table by dimension of element.

Definition at line 228 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ register_side()

template<unsigned int spacedim = 3>
uint PatchFEValues< spacedim >::register_side ( DHCellSide  cell_side)
inline

Register side to patch_point_vals_ table by dimension of side.

Definition at line 241 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ register_side_point()

template<unsigned int spacedim = 3>
uint PatchFEValues< spacedim >::register_side_point ( DHCellSide  cell_side,
uint  elem_table_row,
uint  value_patch_idx,
uint  i_point_on_side 
)
inline

Register side point to patch_point_vals_ table by dimension of side.

Definition at line 258 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ reinit_patch()

template<unsigned int spacedim = 3>
void PatchFEValues< spacedim >::reinit_patch ( )
inline

Reinit data.

Definition at line 162 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ reset()

template<unsigned int spacedim = 3>
void PatchFEValues< spacedim >::reset ( )
inline

Reset PatchpointValues structures.

Definition at line 152 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ resize_tables()

template<unsigned int spacedim = 3>
void PatchFEValues< spacedim >::resize_tables ( TableSizes  table_sizes)
inline

Resize tables of patch_point_vals_.

Following methods are used during update of patch.

Definition at line 220 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ side_values()

template<unsigned int spacedim>
template<unsigned int dim>
SideValues< dim > PatchFEValues< spacedim >::side_values

Return SideValue object of dimension given by template parameter.

Definition at line 40 of file patch_fe_values.cc.

Friends And Related Function Documentation

◆ PatchOp< spacedim >

template<unsigned int spacedim = 3>
friend class PatchOp< spacedim >
friend

Definition at line 338 of file patch_fe_values.hh.

Member Data Documentation

◆ fe_

template<unsigned int spacedim = 3>
MixedPtr<FiniteElement> PatchFEValues< spacedim >::fe_
private

Mixed of shared pointers of FiniteElement object.

Definition at line 334 of file patch_fe_values.hh.

◆ op_dependency_

template<unsigned int spacedim = 3>
std::unordered_map<std::string, PatchOp<spacedim> *> PatchFEValues< spacedim >::op_dependency_
private

Definition at line 338 of file patch_fe_values.hh.

◆ operations_

template<unsigned int spacedim = 3>
std::vector< PatchOp<spacedim> *> PatchFEValues< spacedim >::operations_
private

Definition at line 337 of file patch_fe_values.hh.

◆ patch_fe_data_

template<unsigned int spacedim = 3>
PatchFeData PatchFEValues< spacedim >::patch_fe_data_
private

Definition at line 330 of file patch_fe_values.hh.

◆ patch_point_vals_

template<unsigned int spacedim = 3>
std::vector< std::vector<PatchPointValues<spacedim> > > PatchFEValues< spacedim >::patch_point_vals_
private

Sub objects of bulk and side data of dimensions 1,2,3.

Definition at line 332 of file patch_fe_values.hh.

◆ used_quads_

template<unsigned int spacedim = 3>
bool PatchFEValues< spacedim >::used_quads_[2]
private

Pair of flags signs holds info if bulk and side quadratures are used.

Definition at line 335 of file patch_fe_values.hh.


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