Flow123d  JS_constraints-e651b99
Public Types | Public Member Functions | Static Public Member Functions | Private Attributes | Friends | List of all members
MatrixMpiAssemblyConvection< dim, TEqData > Class Template Reference

#include <assembly_convection.hh>

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

Public Types

typedef TEqData::EqFields EqFields
 
typedef TEqData EqData
 

Public Member Functions

 MatrixMpiAssemblyConvection (EqData *eq_data, AssemblyInternals *asm_internals)
 Constructor. More...
 
 ~MatrixMpiAssemblyConvection ()
 Destructor. More...
 
void initialize ()
 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 AssemblyBasePatch< dim >
 AssemblyBasePatch (unsigned int quad_order, AssemblyInternals *asm_internals)
 
virtual ~AssemblyBasePatch ()
 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)
 
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...
 
unsigned int n_dofs ()
 Return number of DOFs. More...
 
unsigned int n_dofs_high ()
 Return number of DOFs of higher dim element. More...
 

Static Public Member Functions

static constexpr const char * name ()
 

Private Attributes

EqFieldseq_fields_
 Data objects shared with ConvectionTransport. More...
 
EqDataeq_data_
 
FieldSet used_fields_
 Sub field set contains fields used in calculation. 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
 
std::shared_ptr< EdgeIntegralAcc< dim > > edge_integral_
 Edge integral of assembly class. More...
 
std::shared_ptr< CouplingIntegralAcc< dim > > coupling_integral_
 Coupling integral of assembly class. More...
 
FeQ< ScalarJxW_side_
 
FeQ< ScalarJxW_join_
 
ElQ< Vectornormal_side_
 
ElQ< Vectornormal_join_
 

Friends

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

Additional Inherited Members

- Protected Member Functions inherited from AssemblyBasePatch< dim >
 AssemblyBasePatch ()
 
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)
 
- Protected Attributes inherited from AssemblyBasePatch< dim >
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_
 

Detailed Description

template<unsigned int dim, class TEqData>
class MatrixMpiAssemblyConvection< dim, TEqData >

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, class TEqData >
typedef TEqData MatrixMpiAssemblyConvection< dim, TEqData >::EqData

Definition at line 362 of file assembly_convection.hh.

◆ EqFields

template<unsigned int dim, class TEqData >
typedef TEqData::EqFields MatrixMpiAssemblyConvection< dim, TEqData >::EqFields

Definition at line 361 of file assembly_convection.hh.

Constructor & Destructor Documentation

◆ MatrixMpiAssemblyConvection()

template<unsigned int dim, class TEqData >
MatrixMpiAssemblyConvection< dim, TEqData >::MatrixMpiAssemblyConvection ( EqData eq_data,
AssemblyInternals asm_internals 
)
inline

Constructor.

Definition at line 367 of file assembly_convection.hh.

◆ ~MatrixMpiAssemblyConvection()

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

Destructor.

Definition at line 379 of file assembly_convection.hh.

Member Function Documentation

◆ begin()

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

Implements AssemblyBase::begin.

Reimplemented from AssemblyBasePatch< dim >.

Definition at line 457 of file assembly_convection.hh.

◆ dimjoin_intergral()

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

Assembles the fluxes between elements of different dimensions.

Definition at line 431 of file assembly_convection.hh.

◆ edge_integral()

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

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

Definition at line 393 of file assembly_convection.hh.

◆ end()

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

Implements AssemblyBase::end.

Reimplemented from AssemblyBasePatch< dim >.

Definition at line 464 of file assembly_convection.hh.

◆ initialize()

template<unsigned int dim, class TEqData >
void MatrixMpiAssemblyConvection< dim, TEqData >::initialize ( )
inline

Initialize auxiliary vectors and other data members.

Definition at line 382 of file assembly_convection.hh.

◆ name()

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

Definition at line 364 of file assembly_convection.hh.

Friends And Related Function Documentation

◆ GenericAssembly

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

Definition at line 509 of file assembly_convection.hh.

Member Data Documentation

◆ aij

template<unsigned int dim, class TEqData >
double MatrixMpiAssemblyConvection< dim, TEqData >::aij
private

Definition at line 497 of file assembly_convection.hh.

◆ all_elem_dofs_

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

Definition at line 495 of file assembly_convection.hh.

◆ coupling_integral_

template<unsigned int dim, class TEqData >
std::shared_ptr<CouplingIntegralAcc<dim> > MatrixMpiAssemblyConvection< dim, TEqData >::coupling_integral_
private

Coupling integral of assembly class.

Definition at line 501 of file assembly_convection.hh.

◆ dof_indices_i_

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

Definition at line 490 of file assembly_convection.hh.

◆ dof_indices_j_

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

Global DOF indices.

Definition at line 490 of file assembly_convection.hh.

◆ edg_flux

template<unsigned int dim, class TEqData >
double MatrixMpiAssemblyConvection< dim, TEqData >::edg_flux
private

Definition at line 498 of file assembly_convection.hh.

◆ edge_integral_

template<unsigned int dim, class TEqData >
std::shared_ptr<EdgeIntegralAcc<dim> > MatrixMpiAssemblyConvection< dim, TEqData >::edge_integral_
private

Edge integral of assembly class.

Definition at line 500 of file assembly_convection.hh.

◆ elm_meassures_

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

Definition at line 494 of file assembly_convection.hh.

◆ eq_data_

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

Definition at line 485 of file assembly_convection.hh.

◆ eq_fields_

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

Data objects shared with ConvectionTransport.

Definition at line 484 of file assembly_convection.hh.

◆ flux

template<unsigned int dim, class TEqData >
double MatrixMpiAssemblyConvection< dim, TEqData >::flux
private

Definition at line 498 of file assembly_convection.hh.

◆ JxW_join_

template<unsigned int dim, class TEqData >
FeQ<Scalar> MatrixMpiAssemblyConvection< dim, TEqData >::JxW_join_
private

Definition at line 504 of file assembly_convection.hh.

◆ JxW_side_

template<unsigned int dim, class TEqData >
FeQ<Scalar> MatrixMpiAssemblyConvection< dim, TEqData >::JxW_side_
private

Definition at line 503 of file assembly_convection.hh.

◆ normal_join_

template<unsigned int dim, class TEqData >
ElQ<Vector> MatrixMpiAssemblyConvection< dim, TEqData >::normal_join_
private

Definition at line 506 of file assembly_convection.hh.

◆ normal_side_

template<unsigned int dim, class TEqData >
ElQ<Vector> MatrixMpiAssemblyConvection< dim, TEqData >::normal_side_
private

Definition at line 505 of file assembly_convection.hh.

◆ row_values_

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

Definition at line 496 of file assembly_convection.hh.

◆ side_dofs_

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

Definition at line 492 of file assembly_convection.hh.

◆ side_flux_

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

Definition at line 493 of file assembly_convection.hh.

◆ used_fields_

template<unsigned int dim, class TEqData >
FieldSet MatrixMpiAssemblyConvection< dim, TEqData >::used_fields_
private

Sub field set contains fields used in calculation.

Definition at line 488 of file assembly_convection.hh.


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