Flow123d  DF_patch_fe_darcy_complete-579fe1e
Public Types | Public Member Functions | Private 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]

Public Types

typedef PatchPointValues< spacedim >::PatchFeData PatchFeData
 

Public Member Functions

 PatchFEValues ()
 
 PatchFEValues (MixedPtr< FiniteElement > fe)
 
 ~PatchFEValues ()
 Destructor. 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...
 
template<unsigned int dim>
unsigned int n_dofs_high () const
 Returns the number of shape functions og higher dim element. 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>
std::shared_ptr< FiniteElement< dim > > fe_dim ()
 Returns pointer to FiniteElement of given dimension. More...
 
void clean_elements_map ()
 Clear elements_map, set values to (-1) More...
 
template<unsigned int dim>
void add_patch_points (const DimIntegrals< dim > &integrals, const IntegralData &integral_data, ElementCacheMap *element_cache_map, std::shared_ptr< EvalPoints > eval_points)
 Add elements, sides and quadrature points registered on patch. 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, ElementCacheMap *element_cache_map)
 Register side to patch_point_vals_ table by dimension of side. More...
 
uint register_bulk_point (DHCellAccessor cell, uint patch_elm_idx, uint elm_cache_map_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 patch_side_idx, uint elm_cache_map_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 (const Quadrature *quad)
 Returns operation of given dim and OpType, creates it if doesn't exist. More...
 
template<class OpType , unsigned int dim>
PatchOp< spacedim > * get_for_elem_quad ()
 Returns operation of given dim and OpType, creates it if doesn't exist. More...
 
template<class OpType , unsigned int dim>
PatchOp< spacedim > * get (const Quadrature *quad, 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...
 
PatchFeDatapatch_fe_data ()
 Getter of patch_fe_data_. More...
 
void set_used_domain (fem_domain domain)
 Mark domain (bulk or side) as used in assembly class. More...
 
PatchPointValues< spacedim > & ppv (uint domain, uint dim)
 Temporary method. More...
 
void make_permanent_ppv_data ()
 Marks data of last successfully added element to patch as permanent. More...
 
const Quadratureelement_quad (unsigned int dim) const
 Return element quadrature (passed to element / side operations) More...
 

Private Member Functions

uint register_element_internal (DHCellAccessor cell, uint element_patch_idx)
 Register element to patch_point_vals_ table by dimension of element. More...
 

Private Attributes

PatchFeData patch_fe_data_
 
std::vector< ElemDimList< spacedim > > elem_dim_list_vec_
 Sub objects of element data of dimensions 1,2,3. More...
 
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_domain_ [2]
 Pair of flags signs holds info if bulk and side quadratures are used. More...
 
std::vector< PatchOp< spacedim > * > operations_
 
OperationMap< PatchOp< spacedim > > op_dependency_
 
std::vector< uintelements_map_
 
std::vector< Quadratureelement_quads_
 

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 52 of file patch_fe_values.hh.

◆ PatchFEValues() [2/2]

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

Definition at line 67 of file patch_fe_values.hh.

◆ ~PatchFEValues()

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

Destructor.

Definition at line 80 of file patch_fe_values.hh.

Member Function Documentation

◆ add_patch_points()

template<unsigned int spacedim = 3>
template<unsigned int dim>
void PatchFEValues< spacedim >::add_patch_points ( const DimIntegrals< dim > &  integrals,
const IntegralData integral_data,
ElementCacheMap element_cache_map,
std::shared_ptr< EvalPoints eval_points 
)
inline

Add elements, sides and quadrature points registered on patch.

Definition at line 150 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ asm_arena() [1/2]

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

return reference to assembly arena

Definition at line 267 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 272 of file patch_fe_values.hh.

◆ clean_elements_map()

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

Clear elements_map, set values to (-1)

Following methods are used during update of patch.

Definition at line 144 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ element_quad()

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

Return element quadrature (passed to element / side operations)

Definition at line 366 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ 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 125 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ fe_dim()

template<unsigned int spacedim = 3>
template<unsigned int dim>
std::shared_ptr<FiniteElement<dim> > PatchFEValues< spacedim >::fe_dim ( )
inline

Returns pointer to FiniteElement of given dimension.

Definition at line 137 of file patch_fe_values.hh.

◆ get() [1/2]

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

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

Definition at line 283 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 ( const Quadrature quad,
std::shared_ptr< FiniteElement< dim >>  fe 
)
inline

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

Definition at line 306 of file patch_fe_values.hh.

◆ get_for_elem_quad()

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

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

Definition at line 300 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 84 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ make_permanent_ppv_data()

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

Marks data of last successfully added element to patch as permanent.

Definition at line 358 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ 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 110 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ n_dofs_high()

template<unsigned int spacedim>
template<unsigned int dim>
unsigned int PatchFEValues< spacedim >::n_dofs_high

Returns the number of shape functions og higher dim element.

Definition at line 32 of file patch_fe_values.cc.

◆ patch_arena()

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

return reference to patch arena

Definition at line 277 of file patch_fe_values.hh.

◆ patch_fe_data()

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

Getter of patch_fe_data_.

Definition at line 341 of file patch_fe_values.hh.

◆ ppv()

template<unsigned int spacedim = 3>
PatchPointValues<spacedim>& PatchFEValues< spacedim >::ppv ( uint  domain,
uint  dim 
)
inline

Temporary method.

Definition at line 351 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ 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 322 of file patch_fe_values.hh.

◆ register_bulk_point()

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

Register bulk point to patch_point_vals_ table by dimension of element.

Definition at line 256 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 230 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ register_element_internal()

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

Register element to patch_point_vals_ table by dimension of element.

Definition at line 373 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,
ElementCacheMap element_cache_map 
)
inline

Register side to patch_point_vals_ table by dimension of side.

Definition at line 243 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  patch_side_idx,
uint  elm_cache_map_idx,
uint  i_point_on_side 
)
inline

Register side point to patch_point_vals_ table by dimension of side.

Definition at line 261 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 99 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 89 of file patch_fe_values.hh.

Here is the caller graph for this function:

◆ set_used_domain()

template<unsigned int spacedim = 3>
void PatchFEValues< spacedim >::set_used_domain ( fem_domain  domain)
inline

Mark domain (bulk or side) as used in assembly class.

Definition at line 346 of file patch_fe_values.hh.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ PatchOp< spacedim >

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

Definition at line 413 of file patch_fe_values.hh.

Member Data Documentation

◆ elem_dim_list_vec_

template<unsigned int spacedim = 3>
std::vector< ElemDimList<spacedim> > PatchFEValues< spacedim >::elem_dim_list_vec_
private

Sub objects of element data of dimensions 1,2,3.

Definition at line 388 of file patch_fe_values.hh.

◆ element_quads_

template<unsigned int spacedim = 3>
std::vector<Quadrature> PatchFEValues< spacedim >::element_quads_
private

Array of element Quadratures of dim 0,1,2,3

Items are used during construction of element/side operations. This solution solves duplicities of these operations (with different quadrature sizes). Quadrature size has no effect on result of these operations.

Definition at line 413 of file patch_fe_values.hh.

◆ elements_map_

template<unsigned int spacedim = 3>
std::vector<uint> PatchFEValues< spacedim >::elements_map_
private

Map of element patch indices to PatchOp::result_ and int_table_ tables

TODO will be deleted after sorting elements in ElementCacheMap by dimension

Definition at line 404 of file patch_fe_values.hh.

◆ fe_

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

Mixed of shared pointers of FiniteElement object.

Definition at line 393 of file patch_fe_values.hh.

◆ op_dependency_

template<unsigned int spacedim = 3>
OperationMap< PatchOp<spacedim> > PatchFEValues< spacedim >::op_dependency_
private

Definition at line 397 of file patch_fe_values.hh.

◆ operations_

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

Definition at line 396 of file patch_fe_values.hh.

◆ patch_fe_data_

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

Definition at line 385 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 391 of file patch_fe_values.hh.

◆ used_domain_

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

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

Definition at line 394 of file patch_fe_values.hh.


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