Flow123d  3.9.0-f06eab6ff
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Friends | List of all members
StiffnessAssemblyDG< dim, Model > Class Template Reference

#include <assembly_dg.hh>

Inheritance diagram for StiffnessAssemblyDG< dim, Model >:
Inheritance graph
[legend]
Collaboration diagram for StiffnessAssemblyDG< dim, Model >:
Collaboration graph
[legend]

Public Types

typedef TransportDG< Model >::EqFields EqFields
 
typedef TransportDG< Model >::EqData EqData
 
- Public Types inherited from AssemblyBase< dim >
typedef GenericAssemblyBase::BulkIntegralData BulkIntegralData
 
typedef GenericAssemblyBase::EdgeIntegralData EdgeIntegralData
 
typedef GenericAssemblyBase::CouplingIntegralData CouplingIntegralData
 
typedef GenericAssemblyBase::BoundaryIntegralData BoundaryIntegralData
 

Public Member Functions

 StiffnessAssemblyDG (EqFields *eq_fields, EqData *eq_data)
 Constructor. More...
 
 ~StiffnessAssemblyDG ()
 Destructor. More...
 
void initialize (ElementCacheMap *element_cache_map)
 Initialize auxiliary vectors and other data members. More...
 
void cell_integral (DHCellAccessor cell, unsigned int element_patch_idx)
 Assembles the cell (volume) integral into the stiffness matrix. More...
 
void boundary_side_integral (DHCellSide cell_side)
 Assembles the fluxes on the boundary. More...
 
void edge_integral (RangeConvert< DHEdgeSide, DHCellSide > edge_side_range)
 Assembles the fluxes between sides of elements of the same dimension. More...
 
void dimjoin_intergral (DHCellAccessor cell_lower_dim, DHCellSide neighb_side)
 Assembles the fluxes between elements of different dimensions. More...
 
- Public Member Functions inherited from AssemblyBase< dim >
 AssemblyBase (unsigned int quad_order)
 Constructor. More...
 
virtual ~AssemblyBase ()
 Destructor. More...
 
virtual void cell_integral (FMT_UNUSED DHCellAccessor cell, FMT_UNUSED unsigned int element_patch_idx)
 Assembles the volume integrals on cell. More...
 
virtual void boundary_side_integral (FMT_UNUSED DHCellSide cell_side)
 Assembles the fluxes on the boundary. More...
 
virtual void edge_integral (FMT_UNUSED RangeConvert< DHEdgeSide, DHCellSide > edge_side_range)
 Assembles the fluxes between sides on the edge. More...
 
virtual void dimjoin_intergral (FMT_UNUSED DHCellAccessor cell_lower_dim, FMT_UNUSED DHCellSide neighb_side)
 Assembles the fluxes between elements of different dimensions. More...
 
virtual void begin ()
 Method prepares object before assemblation (e.g. balance, ...). More...
 
virtual void end ()
 Method finishes object after assemblation (e.g. balance, ...). More...
 
int n_active_integrals () const
 Getter of active_integrals. More...
 
void create_integrals (std::shared_ptr< EvalPoints > eval_points, AssemblyIntegrals &integrals)
 Create integrals according to dim of assembly object. More...
 
Range< BulkPointbulk_points (unsigned int element_patch_idx) const
 Return BulkPoint range of appropriate dimension. More...
 
Range< EdgePointedge_points (const DHCellSide &cell_side) const
 Return EdgePoint range of appropriate dimension. More...
 
Range< CouplingPointcoupling_points (const DHCellSide &cell_side) const
 Return CouplingPoint range of appropriate dimension. More...
 
Range< BoundaryPointboundary_points (const DHCellSide &cell_side) const
 Return BoundaryPoint range of appropriate dimension. More...
 
virtual void assemble_cell_integrals (const RevertableList< BulkIntegralData > &bulk_integral_data)
 Assembles the cell integrals for the given dimension. More...
 
void assemble_boundary_side_integrals (const RevertableList< BoundaryIntegralData > &boundary_integral_data)
 Assembles the boundary side integrals for the given dimension. More...
 
void assemble_edge_integrals (const RevertableList< EdgeIntegralData > &edge_integral_data)
 Assembles the edge integrals for the given dimension. More...
 
void assemble_neighbour_integrals (const RevertableList< CouplingIntegralData > &coupling_integral_data)
 Assembles the neighbours integrals for the given dimension. More...
 

Static Public Member Functions

static constexpr const char * name ()
 

Private Attributes

shared_ptr< FiniteElement< dim > > fe_
 Finite element for the solution of the advection-diffusion equation. More...
 
shared_ptr< FiniteElement< dim-1 > > fe_low_
 Finite element for the solution of the advection-diffusion equation (dim-1). More...
 
EqFieldseq_fields_
 Data objects shared with TransportDG. More...
 
EqDataeq_data_
 
FieldSet used_fields_
 Sub field set contains fields used in calculation. More...
 
unsigned int ndofs_
 Number of dofs. More...
 
unsigned int qsize_lower_dim_
 Size of quadrature of dim-1. More...
 
FEValues< 3 > fe_values_
 FEValues of object (of P disc finite element type) More...
 
FEValues< 3 > fe_values_vb_
 FEValues of dim-1 object (of P disc finite element type) More...
 
FEValues< 3 > fe_values_side_
 FEValues of object (of P disc finite element type) More...
 
vector< FEValues< 3 > > fe_values_vec_
 Vector of FEValues of object (of P disc finite element types) More...
 
vector< FEValues< 3 > * > fv_sb_
 Auxiliary vector, holds FEValues objects for assemble element-side. More...
 
vector< LongIdxdof_indices_
 Vector of global DOF indices. More...
 
vector< vector< LongIdx > > side_dof_indices_
 Vector of vectors of side DOF indices. More...
 
vector< LongIdxside_dof_indices_vb_
 Vector of side DOF indices (assemble element-side fluxex) More...
 
vector< PetscScalar > local_matrix_
 Auxiliary vector for assemble methods. More...
 
vector< double * > averages
 Auxiliary storage for averages of shape functions. More...
 
vector< double * > waverages
 Auxiliary storage for weighted averages of shape functions. More...
 
vector< double * > jumps
 Auxiliary storage for jumps of shape functions. More...
 

Friends

template<template< IntDim... > class DimAssembly>
class GenericAssembly
 

Additional Inherited Members

- Protected Member Functions inherited from AssemblyBase< dim >
 AssemblyBase ()
 
std::string print_update_flags (UpdateFlags u) const
 Print update flags to string format. More...
 
- Protected Attributes inherited from AssemblyBase< dim >
Quadraturequad_
 Quadrature used in assembling methods. More...
 
Quadraturequad_low_
 Quadrature used in assembling methods (dim-1). More...
 
int active_integrals_
 Holds mask of active integrals. More...
 
DimIntegrals integrals_
 Set of used integrals. More...
 
ElementCacheMapelement_cache_map_
 ElementCacheMap shared with GenericAssembly object. More...
 

Detailed Description

template<unsigned int dim, class Model>
class StiffnessAssemblyDG< dim, Model >

Auxiliary container class for Finite element and related objects of given dimension.

Definition at line 163 of file assembly_dg.hh.

Member Typedef Documentation

◆ EqData

template<unsigned int dim, class Model >
typedef TransportDG<Model>::EqData StiffnessAssemblyDG< dim, Model >::EqData

Definition at line 167 of file assembly_dg.hh.

◆ EqFields

template<unsigned int dim, class Model >
typedef TransportDG<Model>::EqFields StiffnessAssemblyDG< dim, Model >::EqFields

Definition at line 166 of file assembly_dg.hh.

Constructor & Destructor Documentation

◆ StiffnessAssemblyDG()

template<unsigned int dim, class Model >
StiffnessAssemblyDG< dim, Model >::StiffnessAssemblyDG ( EqFields eq_fields,
EqData eq_data 
)
inline

Constructor.

Definition at line 172 of file assembly_dg.hh.

◆ ~StiffnessAssemblyDG()

template<unsigned int dim, class Model >
StiffnessAssemblyDG< dim, Model >::~StiffnessAssemblyDG ( )
inline

Destructor.

Definition at line 186 of file assembly_dg.hh.

Member Function Documentation

◆ boundary_side_integral()

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::boundary_side_integral ( DHCellSide  cell_side)
inline

Assembles the fluxes on the boundary.

Definition at line 282 of file assembly_dg.hh.

◆ cell_integral()

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::cell_integral ( DHCellAccessor  cell,
unsigned int  element_patch_idx 
)
inline

Assembles the cell (volume) integral into the stiffness matrix.

Definition at line 243 of file assembly_dg.hh.

◆ dimjoin_intergral()

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::dimjoin_intergral ( DHCellAccessor  cell_lower_dim,
DHCellSide  neighb_side 
)
inline

Assembles the fluxes between elements of different dimensions.

Definition at line 538 of file assembly_dg.hh.

◆ edge_integral()

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::edge_integral ( RangeConvert< DHEdgeSide, DHCellSide edge_side_range)
inline

Assembles the fluxes between sides of elements of the same dimension.

Definition at line 369 of file assembly_dg.hh.

◆ initialize()

template<unsigned int dim, class Model >
void StiffnessAssemblyDG< dim, Model >::initialize ( ElementCacheMap element_cache_map)
inline

Initialize auxiliary vectors and other data members.

Definition at line 193 of file assembly_dg.hh.

◆ name()

template<unsigned int dim, class Model >
static constexpr const char* StiffnessAssemblyDG< dim, Model >::name ( )
inlinestaticconstexpr

Definition at line 169 of file assembly_dg.hh.

Friends And Related Function Documentation

◆ GenericAssembly

template<unsigned int dim, class Model >
template<template< IntDim... > class DimAssembly>
friend class GenericAssembly
friend

Definition at line 642 of file assembly_dg.hh.

Member Data Documentation

◆ averages

template<unsigned int dim, class Model >
vector<double*> StiffnessAssemblyDG< dim, Model >::averages
private

Auxiliary storage for averages of shape functions.

Definition at line 637 of file assembly_dg.hh.

◆ dof_indices_

template<unsigned int dim, class Model >
vector<LongIdx> StiffnessAssemblyDG< dim, Model >::dof_indices_
private

Vector of global DOF indices.

Definition at line 632 of file assembly_dg.hh.

◆ eq_data_

template<unsigned int dim, class Model >
EqData* StiffnessAssemblyDG< dim, Model >::eq_data_
private

Definition at line 619 of file assembly_dg.hh.

◆ eq_fields_

template<unsigned int dim, class Model >
EqFields* StiffnessAssemblyDG< dim, Model >::eq_fields_
private

Data objects shared with TransportDG.

Definition at line 618 of file assembly_dg.hh.

◆ fe_

template<unsigned int dim, class Model >
shared_ptr<FiniteElement<dim> > StiffnessAssemblyDG< dim, Model >::fe_
private

Finite element for the solution of the advection-diffusion equation.

Definition at line 614 of file assembly_dg.hh.

◆ fe_low_

template<unsigned int dim, class Model >
shared_ptr<FiniteElement<dim-1> > StiffnessAssemblyDG< dim, Model >::fe_low_
private

Finite element for the solution of the advection-diffusion equation (dim-1).

Definition at line 615 of file assembly_dg.hh.

◆ fe_values_

template<unsigned int dim, class Model >
FEValues<3> StiffnessAssemblyDG< dim, Model >::fe_values_
private

FEValues of object (of P disc finite element type)

Definition at line 626 of file assembly_dg.hh.

◆ fe_values_side_

template<unsigned int dim, class Model >
FEValues<3> StiffnessAssemblyDG< dim, Model >::fe_values_side_
private

FEValues of object (of P disc finite element type)

Definition at line 628 of file assembly_dg.hh.

◆ fe_values_vb_

template<unsigned int dim, class Model >
FEValues<3> StiffnessAssemblyDG< dim, Model >::fe_values_vb_
private

FEValues of dim-1 object (of P disc finite element type)

Definition at line 627 of file assembly_dg.hh.

◆ fe_values_vec_

template<unsigned int dim, class Model >
vector<FEValues<3> > StiffnessAssemblyDG< dim, Model >::fe_values_vec_
private

Vector of FEValues of object (of P disc finite element types)

Definition at line 629 of file assembly_dg.hh.

◆ fv_sb_

template<unsigned int dim, class Model >
vector<FEValues<3>*> StiffnessAssemblyDG< dim, Model >::fv_sb_
private

Auxiliary vector, holds FEValues objects for assemble element-side.

Definition at line 630 of file assembly_dg.hh.

◆ jumps

template<unsigned int dim, class Model >
vector<double*> StiffnessAssemblyDG< dim, Model >::jumps
private

Auxiliary storage for jumps of shape functions.

Definition at line 639 of file assembly_dg.hh.

◆ local_matrix_

template<unsigned int dim, class Model >
vector<PetscScalar> StiffnessAssemblyDG< dim, Model >::local_matrix_
private

Auxiliary vector for assemble methods.

Definition at line 635 of file assembly_dg.hh.

◆ ndofs_

template<unsigned int dim, class Model >
unsigned int StiffnessAssemblyDG< dim, Model >::ndofs_
private

Number of dofs.

Definition at line 624 of file assembly_dg.hh.

◆ qsize_lower_dim_

template<unsigned int dim, class Model >
unsigned int StiffnessAssemblyDG< dim, Model >::qsize_lower_dim_
private

Size of quadrature of dim-1.

Definition at line 625 of file assembly_dg.hh.

◆ side_dof_indices_

template<unsigned int dim, class Model >
vector< vector<LongIdx> > StiffnessAssemblyDG< dim, Model >::side_dof_indices_
private

Vector of vectors of side DOF indices.

Definition at line 633 of file assembly_dg.hh.

◆ side_dof_indices_vb_

template<unsigned int dim, class Model >
vector<LongIdx> StiffnessAssemblyDG< dim, Model >::side_dof_indices_vb_
private

Vector of side DOF indices (assemble element-side fluxex)

Definition at line 634 of file assembly_dg.hh.

◆ used_fields_

template<unsigned int dim, class Model >
FieldSet StiffnessAssemblyDG< dim, Model >::used_fields_
private

Sub field set contains fields used in calculation.

Definition at line 622 of file assembly_dg.hh.

◆ waverages

template<unsigned int dim, class Model >
vector<double*> StiffnessAssemblyDG< dim, Model >::waverages
private

Auxiliary storage for weighted averages of shape functions.

Definition at line 638 of file assembly_dg.hh.


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