Flow123d  JS_before_hm-2198-g122e1f2e2
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
MHMatrixAssemblyLMH< dim > Class Template Reference

#include <assembly_lmh_old.hh>

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

Public Types

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

 DECLARE_EXCEPTION (ExcBCNotSupported,<< "BC type not supported.\n")
 
 MHMatrixAssemblyLMH (EqFields *eq_fields, EqData *eq_data)
 Constructor. More...
 
virtual ~MHMatrixAssemblyLMH ()
 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)
 Assemble source term (integral over element) More...
 
void boundary_side_integral (DHCellSide cell_side)
 
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 ()
 

Protected Member Functions

void set_dofs ()
 
void schur_postprocess ()
 
virtual void assemble_source_term (const DHCellAccessor &cell, BulkPoint &p)
 
unsigned int ngh_idx (DHCellAccessor &dh_cell, DHCellSide &neighb_side)
 Temporary method find neighbour index in higher-dim cell. More...
 
void load_local_system (const DHCellAccessor &dh_cell)
 
void postprocess_velocity (const DHCellAccessor &dh_cell, unsigned int element_patch_idx, arma::vec &solution)
 
virtual void postprocess_velocity_specific (const DHCellAccessor &dh_cell, BulkPoint &p, arma::vec &solution, double edge_scale, double edge_source_term)
 
virtual double compute_conductivity (FMT_UNUSED const DHCellAccessor &cell, BulkPoint &p)
 
virtual void postprocess_bulk_integral (FMT_UNUSED const DHCellAccessor &cell, FMT_UNUSED unsigned intelement_patch_idx)
 
virtual void dirichlet_switch (char &switch_dirichlet, DHCellSide cell_side)
 
- 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

FieldSet used_fields_
 Sub field set contains fields used in calculation. More...
 
EqFieldseq_fields_
 Data objects shared with DarcyFlow. More...
 
EqDataeq_data_
 
FE_RT0< dim > fe_rt_
 Assembly volume integrals. More...
 
QGauss quad_rt_
 
FEValues< 3 > fe_values_
 
unsigned int ndofs_
 Number of dofs. More...
 
unsigned int qsize_
 Size of quadrature of dim-1. More...
 
shared_ptr< FiniteElement< dim > > fe_
 Finite element for the solution of the advection-diffusion equation. More...
 
FEValues< 3 > fe_values_side_
 FEValues of object (of P disc finite element type) More...
 
arma::vec reconstructed_solution_
 Vector for reconstructed solution (velocity and pressure on element) from Schur complement. More...
 
double conductivity_
 
double scale_sides_
 Precomputed value (1 / cross_section / conductivity) More...
 
double rhs_val_
 
double mat_val_
 Precomputed RHS and mat value. More...
 
double n_sides_
 
double coef_
 
double source_term_
 Variables used in compute lumped source. More...
 
double time_term_diag_
 
double time_term_
 
double time_term_rhs_
 Variables used in compute time term (unsteady) More...
 
double cross_section_
 Precomputed cross-section value. More...
 
unsigned int bulk_local_idx_
 Local idx of bulk element. More...
 
unsigned int sidx_
 
unsigned int side_row_
 
unsigned int edge_row_
 Helper indices in boundary assembly. More...
 
double solution_head_
 Precomputed value in boundary assembly. More...
 
double bc_total_flux_
 
double bc_flux_
 
double side_flux_
 Precomputed values in boundary assembly. More...
 
double bc_pressure_
 
double bc_switch_pressure_
 
double bc_sigma_
 Precomputed values in boundary assembly. More...
 
arma::vec3 nv_
 Normal vector. More...
 
double ngh_value_
 Precomputed ngh value. More...
 
double edge_scale_
 
double edge_source_term_
 Precomputed values in postprocess_velocity. More...
 
double new_pressure_
 
double old_pressure_
 Precomputed values in postprocess_velocity_specific. 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...
 

Friends

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

Detailed Description

template<unsigned int dim>
class MHMatrixAssemblyLMH< dim >

Definition at line 116 of file assembly_lmh_old.hh.

Member Typedef Documentation

◆ EqData

template<unsigned int dim>
typedef DarcyLMH::EqData MHMatrixAssemblyLMH< dim >::EqData

Definition at line 120 of file assembly_lmh_old.hh.

◆ EqFields

template<unsigned int dim>
typedef DarcyLMH::EqFields MHMatrixAssemblyLMH< dim >::EqFields

Definition at line 119 of file assembly_lmh_old.hh.

Constructor & Destructor Documentation

◆ MHMatrixAssemblyLMH()

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

Constructor.

Definition at line 127 of file assembly_lmh_old.hh.

◆ ~MHMatrixAssemblyLMH()

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

Destructor.

Definition at line 146 of file assembly_lmh_old.hh.

Member Function Documentation

◆ assemble_source_term()

template<unsigned int dim>
virtual void MHMatrixAssemblyLMH< dim >::assemble_source_term ( const DHCellAccessor cell,
BulkPoint p 
)
inlineprotectedvirtual

Reimplemented in ReconstructSchurAssemblyRichards< dim >, and MHMatrixAssemblyRichards< dim >.

Definition at line 488 of file assembly_lmh_old.hh.

Here is the caller graph for this function:

◆ begin()

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

Implements AssemblyBase::begin.

Reimplemented from AssemblyBase< dim >.

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

Definition at line 383 of file assembly_lmh_old.hh.

◆ boundary_side_integral()

template<unsigned int dim>
void MHMatrixAssemblyLMH< dim >::boundary_side_integral ( DHCellSide  cell_side)
inline

Definition at line 258 of file assembly_lmh_old.hh.

◆ cell_integral()

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

Assemble source term (integral over element)

Definition at line 179 of file assembly_lmh_old.hh.

◆ compute_conductivity()

template<unsigned int dim>
virtual double MHMatrixAssemblyLMH< dim >::compute_conductivity ( FMT_UNUSED const DHCellAccessor cell,
BulkPoint p 
)
inlineprotectedvirtual

Definition at line 604 of file assembly_lmh_old.hh.

Here is the caller graph for this function:

◆ DECLARE_EXCEPTION()

template<unsigned int dim>
MHMatrixAssemblyLMH< dim >::DECLARE_EXCEPTION ( ExcBCNotSupported  ,
<< "BC type not supported.\n"   
)

◆ dimjoin_intergral()

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

Assembles the fluxes between elements of different dimensions.

Definition at line 345 of file assembly_lmh_old.hh.

◆ dirichlet_switch()

template<unsigned int dim>
virtual void MHMatrixAssemblyLMH< dim >::dirichlet_switch ( char &  switch_dirichlet,
DHCellSide  cell_side 
)
inlineprotectedvirtual

Definition at line 611 of file assembly_lmh_old.hh.

Here is the caller graph for this function:

◆ end()

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

Implements AssemblyBase::end.

Reimplemented from AssemblyBase< dim >.

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

Definition at line 400 of file assembly_lmh_old.hh.

◆ initialize()

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

Initialize auxiliary vectors and other data members.

Definition at line 149 of file assembly_lmh_old.hh.

Here is the caller graph for this function:

◆ load_local_system()

template<unsigned int dim>
void MHMatrixAssemblyLMH< dim >::load_local_system ( const DHCellAccessor dh_cell)
inlineprotected

Loads the local system from a map: element index -> LocalSystem, if it exits, or if the full solution is not yet reconstructed, and reconstructs the full solution on the element. Currently used only for seepage BC.

Definition at line 548 of file assembly_lmh_old.hh.

◆ name()

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

Definition at line 124 of file assembly_lmh_old.hh.

◆ ngh_idx()

template<unsigned int dim>
unsigned int MHMatrixAssemblyLMH< dim >::ngh_idx ( DHCellAccessor dh_cell,
DHCellSide neighb_side 
)
inlineprotected

Temporary method find neighbour index in higher-dim cell.

Definition at line 533 of file assembly_lmh_old.hh.

Here is the caller graph for this function:

◆ postprocess_bulk_integral()

template<unsigned int dim>
virtual void MHMatrixAssemblyLMH< dim >::postprocess_bulk_integral ( FMT_UNUSED const DHCellAccessor cell,
FMT_UNUSED unsigned  intelement_patch_idx 
)
inlineprotectedvirtual

Definition at line 608 of file assembly_lmh_old.hh.

Here is the caller graph for this function:

◆ postprocess_velocity()

template<unsigned int dim>
void MHMatrixAssemblyLMH< dim >::postprocess_velocity ( const DHCellAccessor dh_cell,
unsigned int  element_patch_idx,
arma::vec &  solution 
)
inlineprotected

Definition at line 570 of file assembly_lmh_old.hh.

Here is the caller graph for this function:

◆ postprocess_velocity_specific()

template<unsigned int dim>
virtual void MHMatrixAssemblyLMH< dim >::postprocess_velocity_specific ( const DHCellAccessor dh_cell,
BulkPoint p,
arma::vec &  solution,
double  edge_scale,
double  edge_source_term 
)
inlineprotectedvirtual

◆ schur_postprocess()

template<unsigned int dim>
void MHMatrixAssemblyLMH< dim >::schur_postprocess ( )
inlineprotected

Definition at line 469 of file assembly_lmh_old.hh.

Here is the caller graph for this function:

◆ set_dofs()

template<unsigned int dim>
void MHMatrixAssemblyLMH< dim >::set_dofs ( )
inlineprotected

Definition at line 410 of file assembly_lmh_old.hh.

Here is the caller graph for this function:

Friends And Related Function Documentation

◆ GenericAssembly

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

Definition at line 681 of file assembly_lmh_old.hh.

Member Data Documentation

◆ bc_flux_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::bc_flux_
protected

Definition at line 673 of file assembly_lmh_old.hh.

◆ bc_pressure_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::bc_pressure_
protected

Definition at line 674 of file assembly_lmh_old.hh.

◆ bc_sigma_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::bc_sigma_
protected

Precomputed values in boundary assembly.

Definition at line 674 of file assembly_lmh_old.hh.

◆ bc_switch_pressure_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::bc_switch_pressure_
protected

Definition at line 674 of file assembly_lmh_old.hh.

◆ bc_total_flux_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::bc_total_flux_
protected

Definition at line 673 of file assembly_lmh_old.hh.

◆ bulk_local_idx_

template<unsigned int dim>
unsigned int MHMatrixAssemblyLMH< dim >::bulk_local_idx_
protected

Local idx of bulk element.

Definition at line 670 of file assembly_lmh_old.hh.

◆ coef_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::coef_
protected

Definition at line 667 of file assembly_lmh_old.hh.

◆ conductivity_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::conductivity_
protected

Definition at line 665 of file assembly_lmh_old.hh.

◆ cross_section_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::cross_section_
protected

Precomputed cross-section value.

Definition at line 669 of file assembly_lmh_old.hh.

◆ edge_row_

template<unsigned int dim>
unsigned int MHMatrixAssemblyLMH< dim >::edge_row_
protected

Helper indices in boundary assembly.

Definition at line 671 of file assembly_lmh_old.hh.

◆ edge_scale_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::edge_scale_
protected

Definition at line 677 of file assembly_lmh_old.hh.

◆ edge_source_term_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::edge_source_term_
protected

Precomputed values in postprocess_velocity.

Definition at line 677 of file assembly_lmh_old.hh.

◆ eq_data_

template<unsigned int dim>
EqData* MHMatrixAssemblyLMH< dim >::eq_data_
protected

Definition at line 650 of file assembly_lmh_old.hh.

◆ eq_fields_

template<unsigned int dim>
EqFields* MHMatrixAssemblyLMH< dim >::eq_fields_
protected

Data objects shared with DarcyFlow.

Definition at line 649 of file assembly_lmh_old.hh.

◆ fe_

template<unsigned int dim>
shared_ptr<FiniteElement<dim> > MHMatrixAssemblyLMH< dim >::fe_
protected

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

Definition at line 659 of file assembly_lmh_old.hh.

◆ fe_rt_

template<unsigned int dim>
FE_RT0<dim> MHMatrixAssemblyLMH< dim >::fe_rt_
protected

Assembly volume integrals.

Definition at line 653 of file assembly_lmh_old.hh.

◆ fe_values_

template<unsigned int dim>
FEValues<3> MHMatrixAssemblyLMH< dim >::fe_values_
protected

Definition at line 655 of file assembly_lmh_old.hh.

◆ fe_values_side_

template<unsigned int dim>
FEValues<3> MHMatrixAssemblyLMH< dim >::fe_values_side_
protected

FEValues of object (of P disc finite element type)

Definition at line 660 of file assembly_lmh_old.hh.

◆ mat_val_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::mat_val_
protected

Precomputed RHS and mat value.

Definition at line 666 of file assembly_lmh_old.hh.

◆ n_sides_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::n_sides_
protected

Definition at line 667 of file assembly_lmh_old.hh.

◆ ndofs_

template<unsigned int dim>
unsigned int MHMatrixAssemblyLMH< dim >::ndofs_
protected

Number of dofs.

Definition at line 656 of file assembly_lmh_old.hh.

◆ new_pressure_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::new_pressure_
protected

Definition at line 678 of file assembly_lmh_old.hh.

◆ ngh_value_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::ngh_value_
protected

Precomputed ngh value.

Definition at line 676 of file assembly_lmh_old.hh.

◆ nv_

template<unsigned int dim>
arma::vec3 MHMatrixAssemblyLMH< dim >::nv_
protected

Normal vector.

Definition at line 675 of file assembly_lmh_old.hh.

◆ old_pressure_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::old_pressure_
protected

Precomputed values in postprocess_velocity_specific.

Definition at line 678 of file assembly_lmh_old.hh.

◆ qsize_

template<unsigned int dim>
unsigned int MHMatrixAssemblyLMH< dim >::qsize_
protected

Size of quadrature of dim-1.

Definition at line 657 of file assembly_lmh_old.hh.

◆ quad_rt_

template<unsigned int dim>
QGauss MHMatrixAssemblyLMH< dim >::quad_rt_
protected

Definition at line 654 of file assembly_lmh_old.hh.

◆ reconstructed_solution_

template<unsigned int dim>
arma::vec MHMatrixAssemblyLMH< dim >::reconstructed_solution_
protected

Vector for reconstructed solution (velocity and pressure on element) from Schur complement.

Definition at line 663 of file assembly_lmh_old.hh.

◆ rhs_val_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::rhs_val_
protected

Definition at line 666 of file assembly_lmh_old.hh.

◆ scale_sides_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::scale_sides_
protected

Precomputed value (1 / cross_section / conductivity)

Definition at line 665 of file assembly_lmh_old.hh.

◆ side_flux_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::side_flux_
protected

Precomputed values in boundary assembly.

Definition at line 673 of file assembly_lmh_old.hh.

◆ side_row_

template<unsigned int dim>
unsigned int MHMatrixAssemblyLMH< dim >::side_row_
protected

Definition at line 671 of file assembly_lmh_old.hh.

◆ sidx_

template<unsigned int dim>
unsigned int MHMatrixAssemblyLMH< dim >::sidx_
protected

Definition at line 671 of file assembly_lmh_old.hh.

◆ solution_head_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::solution_head_
protected

Precomputed value in boundary assembly.

Definition at line 672 of file assembly_lmh_old.hh.

◆ source_term_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::source_term_
protected

Variables used in compute lumped source.

Definition at line 667 of file assembly_lmh_old.hh.

◆ time_term_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::time_term_
protected

Definition at line 668 of file assembly_lmh_old.hh.

◆ time_term_diag_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::time_term_diag_
protected

Definition at line 668 of file assembly_lmh_old.hh.

◆ time_term_rhs_

template<unsigned int dim>
double MHMatrixAssemblyLMH< dim >::time_term_rhs_
protected

Variables used in compute time term (unsteady)

Definition at line 668 of file assembly_lmh_old.hh.

◆ used_fields_

template<unsigned int dim>
FieldSet MHMatrixAssemblyLMH< dim >::used_fields_
protected

Sub field set contains fields used in calculation.

Definition at line 646 of file assembly_lmh_old.hh.


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