Flow123d  master-f44eb46
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Friends | List of all members
MatrixMpiAssemblyConvection< dim > Class Template Reference

#include <assembly_convection.hh>

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

Public Types

typedef ConvectionTransport::EqFields EqFields
 
typedef ConvectionTransport::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

 MatrixMpiAssemblyConvection (EqFields *eq_fields, EqData *eq_data)
 Constructor. More...
 
 ~MatrixMpiAssemblyConvection ()
 Destructor. More...
 
void initialize (ElementCacheMap *element_cache_map)
 Initialize auxiliary vectors and other data members. 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...
 
void begin () override
 Implements AssemblyBase::begin. More...
 
void end () override
 Implements AssemblyBase::end. 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...
 
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...
 
EqFieldseq_fields_
 Data objects shared with ConvectionTransport. More...
 
EqDataeq_data_
 
FieldSet used_fields_
 Sub field set contains fields used in calculation. 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< LongIdxdof_indices_i_
 
vector< LongIdxdof_indices_j_
 Global DOF indices. More...
 
std::vector< LongIdxside_dofs_
 
std::vector< double > side_flux_
 
std::vector< double > elm_meassures_
 
std::vector< LongIdxall_elem_dofs_
 
std::vector< double > row_values_
 
double aij
 
double edg_flux
 
double flux
 

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 MatrixMpiAssemblyConvection< dim >

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

Assembly convection term part of the matrix and boundary matrix for application of boundary conditions.

Discretization of the convection term use explicit time scheme and finite volumes with full upwinding. We count on with exchange between dimensions and mixing on edges where more then two elements connect (can happen for 2D and 1D elements in 3D embedding space)

In order to get multiplication matrix for explicit transport one have to scale the convection part by the acctual time step and add time term, i. e. unit matrix (see. transport_matrix_step_mpi)

Updates CFL time step constrain.

Definition at line 358 of file assembly_convection.hh.

Member Typedef Documentation

◆ EqData

template<unsigned int dim>
typedef ConvectionTransport::EqData MatrixMpiAssemblyConvection< dim >::EqData

Definition at line 362 of file assembly_convection.hh.

◆ EqFields

template<unsigned int dim>
typedef ConvectionTransport::EqFields MatrixMpiAssemblyConvection< dim >::EqFields

Definition at line 361 of file assembly_convection.hh.

Constructor & Destructor Documentation

◆ MatrixMpiAssemblyConvection()

template<unsigned int dim>
MatrixMpiAssemblyConvection< dim >::MatrixMpiAssemblyConvection ( EqFields eq_fields,
EqData eq_data 
)
inline

Constructor.

Definition at line 367 of file assembly_convection.hh.

◆ ~MatrixMpiAssemblyConvection()

template<unsigned int dim>
MatrixMpiAssemblyConvection< dim >::~MatrixMpiAssemblyConvection ( )
inline

Destructor.

Definition at line 374 of file assembly_convection.hh.

Member Function Documentation

◆ begin()

template<unsigned int dim>
void MatrixMpiAssemblyConvection< dim >::begin ( )
inlineoverridevirtual

Implements AssemblyBase::begin.

Reimplemented from AssemblyBase< dim >.

Definition at line 464 of file assembly_convection.hh.

◆ dimjoin_intergral()

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

Assembles the fluxes between elements of different dimensions.

Definition at line 437 of file assembly_convection.hh.

◆ edge_integral()

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

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

Definition at line 398 of file assembly_convection.hh.

◆ end()

template<unsigned int dim>
void MatrixMpiAssemblyConvection< dim >::end ( )
inlineoverridevirtual

Implements AssemblyBase::end.

Reimplemented from AssemblyBase< dim >.

Definition at line 471 of file assembly_convection.hh.

◆ initialize()

template<unsigned int dim>
void MatrixMpiAssemblyConvection< dim >::initialize ( ElementCacheMap element_cache_map)
inline

Initialize auxiliary vectors and other data members.

Definition at line 377 of file assembly_convection.hh.

◆ name()

template<unsigned int dim>
static constexpr const char* MatrixMpiAssemblyConvection< dim >::name ( )
inlinestaticconstexpr

Definition at line 364 of file assembly_convection.hh.

Friends And Related Function Documentation

◆ GenericAssembly

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

Definition at line 512 of file assembly_convection.hh.

Member Data Documentation

◆ aij

template<unsigned int dim>
double MatrixMpiAssemblyConvection< dim >::aij
private

Definition at line 508 of file assembly_convection.hh.

◆ all_elem_dofs_

template<unsigned int dim>
std::vector<LongIdx> MatrixMpiAssemblyConvection< dim >::all_elem_dofs_
private

Definition at line 506 of file assembly_convection.hh.

◆ dof_indices_i_

template<unsigned int dim>
vector<LongIdx> MatrixMpiAssemblyConvection< dim >::dof_indices_i_
private

Definition at line 501 of file assembly_convection.hh.

◆ dof_indices_j_

template<unsigned int dim>
vector<LongIdx> MatrixMpiAssemblyConvection< dim >::dof_indices_j_
private

Global DOF indices.

Definition at line 501 of file assembly_convection.hh.

◆ edg_flux

template<unsigned int dim>
double MatrixMpiAssemblyConvection< dim >::edg_flux
private

Definition at line 509 of file assembly_convection.hh.

◆ elm_meassures_

template<unsigned int dim>
std::vector<double> MatrixMpiAssemblyConvection< dim >::elm_meassures_
private

Definition at line 505 of file assembly_convection.hh.

◆ eq_data_

template<unsigned int dim>
EqData* MatrixMpiAssemblyConvection< dim >::eq_data_
private

Definition at line 494 of file assembly_convection.hh.

◆ eq_fields_

template<unsigned int dim>
EqFields* MatrixMpiAssemblyConvection< dim >::eq_fields_
private

Data objects shared with ConvectionTransport.

Definition at line 493 of file assembly_convection.hh.

◆ fe_

template<unsigned int dim>
shared_ptr<FiniteElement<dim> > MatrixMpiAssemblyConvection< dim >::fe_
private

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

Definition at line 490 of file assembly_convection.hh.

◆ fe_values_side_

template<unsigned int dim>
FEValues<3> MatrixMpiAssemblyConvection< dim >::fe_values_side_
private

FEValues of object (of P disc finite element type)

Definition at line 499 of file assembly_convection.hh.

◆ fe_values_vec_

template<unsigned int dim>
vector<FEValues<3> > MatrixMpiAssemblyConvection< dim >::fe_values_vec_
private

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

Definition at line 500 of file assembly_convection.hh.

◆ flux

template<unsigned int dim>
double MatrixMpiAssemblyConvection< dim >::flux
private

Definition at line 509 of file assembly_convection.hh.

◆ row_values_

template<unsigned int dim>
std::vector<double> MatrixMpiAssemblyConvection< dim >::row_values_
private

Definition at line 507 of file assembly_convection.hh.

◆ side_dofs_

template<unsigned int dim>
std::vector<LongIdx> MatrixMpiAssemblyConvection< dim >::side_dofs_
private

Definition at line 503 of file assembly_convection.hh.

◆ side_flux_

template<unsigned int dim>
std::vector<double> MatrixMpiAssemblyConvection< dim >::side_flux_
private

Definition at line 504 of file assembly_convection.hh.

◆ used_fields_

template<unsigned int dim>
FieldSet MatrixMpiAssemblyConvection< dim >::used_fields_
private

Sub field set contains fields used in calculation.

Definition at line 497 of file assembly_convection.hh.


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