Flow123d  DF_patch_fe_darcy_complete-579fe1e
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AssemblyBase< dim > Class Template Reference

#include <assembly_base.hh>

Inheritance diagram for AssemblyBase< dim >:
Inheritance graph
[legend]
Collaboration diagram for AssemblyBase< dim >:
Collaboration graph
[legend]

Public Member Functions

 AssemblyBase (unsigned int quad_order, AssemblyInternals *asm_internals)
 
virtual ~AssemblyBase ()
 Destructor. More...
 
virtual void cell_integral (FMT_UNUSED DHCellAccessor cell, FMT_UNUSED unsigned int element_patch_idx)
 
virtual void boundary_side_integral (FMT_UNUSED DHCellSide cell_side)
 
virtual void edge_integral (FMT_UNUSED RangeConvert< DHEdgeSide, DHCellSide > edge_side_range)
 
virtual void dimjoin_intergral (FMT_UNUSED DHCellAccessor cell_lower_dim, FMT_UNUSED DHCellSide neighb_side)
 
virtual void begin ()
 
virtual void end ()
 
std::shared_ptr< BulkIntegralAcc< dim > > create_bulk_integral (Quadrature *quad)
 
std::shared_ptr< EdgeIntegralAcc< dim > > create_edge_integral (Quadrature *quad)
 
std::shared_ptr< CouplingIntegralAcc< dim > > create_coupling_integral (Quadrature *quad)
 
std::shared_ptr< BoundaryIntegralAcc< dim > > create_boundary_integral (Quadrature *quad)
 
bool add_integrals_of_computing_step (DHCellAccessor cell)
 
virtual void assemble_cell_integrals ()
 
void assemble_boundary_side_integrals ()
 
void assemble_edge_integrals ()
 
void assemble_neighbour_integrals ()
 
void set_min_edge_sides (unsigned int val)
 Setter of min_edge_sides_. More...
 
void clean_integral_data ()
 
const DimIntegrals< dim > & integrals () const
 Getter of integrals_. More...
 
const IntegralDataintegral_data () const
 Getter of integral_data_. More...
 

Protected Member Functions

 AssemblyBase ()
 
void add_volume_integrals (const DHCellAccessor &cell)
 
void add_edge_integrals (const DHCellSide &cell_side)
 
void add_boundary_integrals (const DHCellSide &bdr_side)
 
void add_coupling_integrals (const DHCellAccessor &cell)
 
template<template< unsigned int > class IntegralAcc>
void add_side_points (std::shared_ptr< IntegralAcc< dim > > &integral, DHCellSide cell_side, PatchPointValues< 3 > &ppv)
 
std::string print_update_flags (UpdateFlags u) const
 Print update flags to string format. More...
 

Protected Attributes

Quadraturequad_
 Quadrature used in assembling methods. More...
 
Quadraturequad_low_
 Quadrature used in assembling methods (dim-1). More...
 
DimIntegrals< dim > integrals_
 Set of used integrals. More...
 
AssemblyInternalsasm_internals_
 Holds shared internals data with GeneriAssembly. More...
 
unsigned int min_edge_sides_
 
IntegralData integral_data_
 Holds patch data for computing different types of integrals. More...
 

Detailed Description

template<unsigned int dim>
class AssemblyBase< dim >

Base class define empty methods, these methods can be overwite in descendants.

Definition at line 34 of file assembly_base.hh.

Constructor & Destructor Documentation

◆ AssemblyBase() [1/2]

template<unsigned int dim>
AssemblyBase< dim >::AssemblyBase ( unsigned int  quad_order,
AssemblyInternals asm_internals 
)
inline

Constructor

Parameters
quad_orderOrder of Quadrature objects.
asm_internalsHolds shared data with GenericAssembly

Definition at line 43 of file assembly_base.hh.

◆ ~AssemblyBase()

template<unsigned int dim>
virtual AssemblyBase< dim >::~AssemblyBase ( )
inlinevirtual

Destructor.

Definition at line 51 of file assembly_base.hh.

◆ AssemblyBase() [2/2]

template<unsigned int dim>
AssemblyBase< dim >::AssemblyBase ( )
inlineprotected

Default constructor.

Be aware if you use this constructor. Quadrature objects must be initialized manually in descendant.

Definition at line 292 of file assembly_base.hh.

Member Function Documentation

◆ add_boundary_integrals()

template<unsigned int dim>
void AssemblyBase< dim >::add_boundary_integrals ( const DHCellSide bdr_side)
inlineprotected

Add data of boundary integrals to appropriate data structure.

Method is used internally in AssemblyBase

Definition at line 347 of file assembly_base.hh.

Here is the caller graph for this function:

◆ add_coupling_integrals()

template<unsigned int dim>
void AssemblyBase< dim >::add_coupling_integrals ( const DHCellAccessor cell)
inlineprotected

Add data of coupling integrals to appropriate data structure.

Method is used internally in AssemblyBase

Definition at line 375 of file assembly_base.hh.

Here is the caller graph for this function:

◆ add_edge_integrals()

template<unsigned int dim>
void AssemblyBase< dim >::add_edge_integrals ( const DHCellSide cell_side)
inlineprotected

Add data of edge integrals to appropriate data structure.

Method is used internally in AssemblyBase

Definition at line 327 of file assembly_base.hh.

Here is the caller graph for this function:

◆ add_integrals_of_computing_step()

template<unsigned int dim>
bool AssemblyBase< dim >::add_integrals_of_computing_step ( DHCellAccessor  cell)
inline

Add data of integrals to appropriate structure and register elements to ElementCacheMap.

Return true if patch is full to its maximal capacity. Method is called from GenericAssembly::assembly method.

Definition at line 173 of file assembly_base.hh.

◆ add_side_points()

template<unsigned int dim>
template<template< unsigned int > class IntegralAcc>
void AssemblyBase< dim >::add_side_points ( std::shared_ptr< IntegralAcc< dim > > &  integral,
DHCellSide  cell_side,
PatchPointValues< 3 > &  ppv 
)
inlineprotected

Common part of add_edge integrals and add_coupling_integrals methods

Method is used internally in AssemblyBase

Definition at line 412 of file assembly_base.hh.

Here is the caller graph for this function:

◆ add_volume_integrals()

template<unsigned int dim>
void AssemblyBase< dim >::add_volume_integrals ( const DHCellAccessor cell)
inlineprotected

Add data of volume integrals to appropriate data structure.

Method is used internally in AssemblyBase

Definition at line 305 of file assembly_base.hh.

Here is the caller graph for this function:

◆ assemble_boundary_side_integrals()

template<unsigned int dim>
void AssemblyBase< dim >::assemble_boundary_side_integrals ( )
inline

Assembles the boundary side integrals for the given dimension.

Method is called from GenericAssembly::assembly method.

Definition at line 231 of file assembly_base.hh.

◆ assemble_cell_integrals()

template<unsigned int dim>
virtual void AssemblyBase< dim >::assemble_cell_integrals ( )
inlinevirtual

Assembles the cell integrals for the given dimension.

Method is called from GenericAssembly::assembly method.

Reimplemented in AssemblyOutputNodeData< dim, TEqData >, and AssemblyOutputElemData< dim, TEqData >.

Definition at line 214 of file assembly_base.hh.

◆ assemble_edge_integrals()

template<unsigned int dim>
void AssemblyBase< dim >::assemble_edge_integrals ( )
inline

Assembles the edge integrals for the given dimension.

Method is called from GenericAssembly::assembly method.

Definition at line 242 of file assembly_base.hh.

◆ assemble_neighbour_integrals()

template<unsigned int dim>
void AssemblyBase< dim >::assemble_neighbour_integrals ( )
inline

Assembles the neighbours integrals for the given dimension.

Method is called from GenericAssembly::assembly method.

Definition at line 253 of file assembly_base.hh.

◆ begin()

template<unsigned int dim>
virtual void AssemblyBase< dim >::begin ( )
inlinevirtual

◆ boundary_side_integral()

template<unsigned int dim>
virtual void AssemblyBase< dim >::boundary_side_integral ( FMT_UNUSED DHCellSide  cell_side)
inlinevirtual

Assembles the fluxes on the boundary.

Method can be overridden and implemented in descendant

Reimplemented in ReconstructSchurAssemblyRichards< dim, TEqData >, and ReconstructSchurAssemblyLMH< dim, TEqData >.

Definition at line 68 of file assembly_base.hh.

Here is the caller graph for this function:

◆ cell_integral()

template<unsigned int dim>
virtual void AssemblyBase< dim >::cell_integral ( FMT_UNUSED DHCellAccessor  cell,
FMT_UNUSED unsigned int  element_patch_idx 
)
inlinevirtual

Assembles the volume integrals on cell.

Method can be overridden and implemented in descendant

Definition at line 61 of file assembly_base.hh.

Here is the caller graph for this function:

◆ clean_integral_data()

template<unsigned int dim>
void AssemblyBase< dim >::clean_integral_data ( )
inline

Clean all integral data structures

Method is called from GenericAssembly::assembly method.

Definition at line 269 of file assembly_base.hh.

◆ create_boundary_integral()

template<unsigned int dim>
std::shared_ptr<BoundaryIntegralAcc<dim> > AssemblyBase< dim >::create_boundary_integral ( Quadrature quad)
inline

Create and return BoundaryIntegral accessor of given quadrature.

Method is called from descendants during construction / initialization of assembly object.

Definition at line 155 of file assembly_base.hh.

◆ create_bulk_integral()

template<unsigned int dim>
std::shared_ptr<BulkIntegralAcc<dim> > AssemblyBase< dim >::create_bulk_integral ( Quadrature quad)
inline

Create and return BulkIntegral accessor of given quadrature.

Method is called from descendants during construction / initialization of assembly object.

Definition at line 103 of file assembly_base.hh.

Here is the caller graph for this function:

◆ create_coupling_integral()

template<unsigned int dim>
std::shared_ptr<CouplingIntegralAcc<dim> > AssemblyBase< dim >::create_coupling_integral ( Quadrature quad)
inline

Create and return CouplingIntegral accessor of given quadrature.

Method is called from descendants during construction / initialization of assembly object.

Definition at line 136 of file assembly_base.hh.

◆ create_edge_integral()

template<unsigned int dim>
std::shared_ptr<EdgeIntegralAcc<dim> > AssemblyBase< dim >::create_edge_integral ( Quadrature quad)
inline

Create and return EdgeIntegral accessor of given quadrature.

Method is called from descendants during construction / initialization of assembly object.

Definition at line 119 of file assembly_base.hh.

◆ dimjoin_intergral()

template<unsigned int dim>
virtual void AssemblyBase< dim >::dimjoin_intergral ( FMT_UNUSED DHCellAccessor  cell_lower_dim,
FMT_UNUSED DHCellSide  neighb_side 
)
inlinevirtual

Assembles the fluxes between elements of different dimensions.

Method can be overridden and implemented in descendant

Reimplemented in ReconstructSchurAssemblyRichards< dim, TEqData >, and ReconstructSchurAssemblyLMH< dim, TEqData >.

Definition at line 82 of file assembly_base.hh.

Here is the caller graph for this function:

◆ edge_integral()

template<unsigned int dim>
virtual void AssemblyBase< dim >::edge_integral ( FMT_UNUSED RangeConvert< DHEdgeSide, DHCellSide edge_side_range)
inlinevirtual

Assembles the fluxes between sides on the edge.

Method can be overwrite and implement in descendant

Definition at line 75 of file assembly_base.hh.

Here is the caller graph for this function:

◆ end()

template<unsigned int dim>
virtual void AssemblyBase< dim >::end ( )
inlinevirtual

◆ integral_data()

template<unsigned int dim>
const IntegralData& AssemblyBase< dim >::integral_data ( ) const
inline

Getter of integral_data_.

Definition at line 282 of file assembly_base.hh.

◆ integrals()

template<unsigned int dim>
const DimIntegrals<dim>& AssemblyBase< dim >::integrals ( ) const
inline

Getter of integrals_.

Definition at line 277 of file assembly_base.hh.

Here is the caller graph for this function:

◆ print_update_flags()

template<unsigned int dim>
std::string AssemblyBase< dim >::print_update_flags ( UpdateFlags  u) const
inlineprotected

Print update flags to string format.

Definition at line 421 of file assembly_base.hh.

◆ set_min_edge_sides()

template<unsigned int dim>
void AssemblyBase< dim >::set_min_edge_sides ( unsigned int  val)
inline

Setter of min_edge_sides_.

Definition at line 260 of file assembly_base.hh.

Member Data Documentation

◆ asm_internals_

template<unsigned int dim>
AssemblyInternals* AssemblyBase< dim >::asm_internals_
protected

Holds shared internals data with GeneriAssembly.

Definition at line 430 of file assembly_base.hh.

◆ integral_data_

template<unsigned int dim>
IntegralData AssemblyBase< dim >::integral_data_
protected

Holds patch data for computing different types of integrals.

Definition at line 440 of file assembly_base.hh.

◆ integrals_

template<unsigned int dim>
DimIntegrals<dim> AssemblyBase< dim >::integrals_
protected

Set of used integrals.

Definition at line 429 of file assembly_base.hh.

◆ min_edge_sides_

template<unsigned int dim>
unsigned int AssemblyBase< dim >::min_edge_sides_
protected

Minimal number of sides on edge.

Edge integral is created and calculated if number of sides is greater or equal than this value. Default value is 2 and can be changed

Definition at line 438 of file assembly_base.hh.

◆ quad_

template<unsigned int dim>
Quadrature* AssemblyBase< dim >::quad_
protected

Quadrature used in assembling methods.

Definition at line 427 of file assembly_base.hh.

◆ quad_low_

template<unsigned int dim>
Quadrature* AssemblyBase< dim >::quad_low_
protected

Quadrature used in assembling methods (dim-1).

Definition at line 428 of file assembly_base.hh.


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