Flow123d  master-9c1c1b8e5
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
MHMatrixAssemblyRichards< dim > Class Template Reference

#include <assembly_richards.hh>

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

Public Types

typedef RichardsLMH::EqFields EqFields
 
typedef RichardsLMH::EqData EqData
 
- Public Types inherited from MHMatrixAssemblyLMH< dim >
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

 MHMatrixAssemblyRichards (EqFields *eq_fields, EqData *eq_data)
 
 ~MHMatrixAssemblyRichards ()
 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)
 Integral over element. More...
 
void boundary_side_integral (DHCellSide cell_side)
 Assembles between boundary element and corresponding side on bulk element. More...
 
void begin () override
 Implements AssemblyBase::begin. More...
 
void end () override
 Implements AssemblyBase::end. More...
 
- Public Member Functions inherited from MHMatrixAssemblyLMH< dim >
 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)
 
void boundary_side_integral (DHCellSide cell_side)
 
void dimjoin_intergral (DHCellAccessor cell_lower_dim, DHCellSide neighb_side)
 
- 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 ()
 
- Static Public Member Functions inherited from MHMatrixAssemblyLMH< dim >
static constexpr const char * name ()
 

Protected Member Functions

void asm_source_term_richards (const DHCellAccessor &cell, BulkPoint &p)
 Part of cell_integral method, specialized in Richards equation. More...
 
bool reset_soil_model (const DHCellAccessor &cell, BulkPoint &p)
 
void update_water_content (const DHCellAccessor &cell, BulkPoint &p)
 
double compute_conductivity (const DHCellAccessor &cell, BulkPoint &p)
 Precompute conductivity on bulk point. More...
 
void postprocess_velocity_richards (const DHCellAccessor &dh_cell, BulkPoint &p, arma::vec &solution)
 Postprocess velocity after calculating of cell integral. More...
 
- Protected Member Functions inherited from MHMatrixAssemblyLMH< dim >
void begin_mh_matrix ()
 Common code of begin method of MH matrix assembly (Darcy and Richards) More...
 
void end_mh_matrix ()
 Common code of end method of MH matrix assembly (Darcy and Richards) More...
 
void begin_reconstruct_schur ()
 Common code of begin method of Reconstruct Schur assembly (Darcy and Richards) More...
 
void end_reconstruct_schur ()
 Common code of end method of Reconstruct Schur assembly (Darcy and Richards) More...
 
void asm_sides (const DHCellAccessor &cell, BulkPoint &p, double conductivity)
 Part of cell_integral method, common in all descendants. More...
 
void asm_element ()
 Part of cell_integral method, common in all descendants. More...
 
void asm_source_term_darcy (const DHCellAccessor &cell, BulkPoint &p)
 Part of cell_integral method, specialized in Darcy equation. More...
 
void precompute_boundary_side (DHCellSide &cell_side, BoundaryPoint &p_side, BulkPoint &p_bdr)
 Precompute values used in boundary side integral on given DHCellSide. More...
 
void use_dirichlet_switch (DHCellSide &cell_side, const ElementAccessor< 3 > &b_ele, BulkPoint &p_bdr)
 Update BC switch dirichlet in MH matrix assembly if BC type is seepage. More...
 
void boundary_side_integral_in (DHCellSide cell_side, const ElementAccessor< 3 > &b_ele, BulkPoint &p_bdr)
 
void set_dofs ()
 Precompute loc_system and loc_schur data members. More...
 
void set_loc_schur (const DHCellAccessor dh_cr_cell)
 Precompute loc_schur data member of given cell. More...
 
unsigned int ngh_idx (DHCellAccessor &dh_cell, DHCellSide &neighb_side)
 Temporary method find neighbour index in higher-dim cell. More...
 
arma::vec load_local_system (const DHCellAccessor &dh_cell)
 
void postprocess_velocity (const DHCellAccessor &dh_cell, BulkPoint &p)
 
void postprocess_velocity_darcy (const DHCellAccessor &dh_cell, BulkPoint &p, arma::vec &solution)
 Postprocess velocity during loading of local system and after calculating of cell integral. More...
 
- 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

EqFieldseq_fields_
 Data objects shared with ConvectionTransport. More...
 
EqDataeq_data_
 
LocDofVec cr_disc_dofs_
 Vector of local DOF indices pre-computed on different DOF handlers. More...
 
LocDofVec edge_indices_
 Dofs of discontinuous fields on element edges. More...
 
double storativity_
 
double capacity
 
double phead
 
double water_content
 
double water_content_previous_time
 
double diagonal_coef_
 
double source_diagonal_
 
double water_content_diff_
 
double mass_diagonal_
 
double mass_rhs_
 
- Protected Attributes inherited from MHMatrixAssemblyLMH< dim >
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_
 
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 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...
 
DarcyMH::EqFields::BC_Type type_
 Type of boundary condition. 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...
 
LocalSystem loc_schur_
 
- 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 MHMatrixAssemblyRichards< dim >

Definition at line 145 of file assembly_richards.hh.

Member Typedef Documentation

◆ EqData

template<unsigned int dim>
typedef RichardsLMH::EqData MHMatrixAssemblyRichards< dim >::EqData

Definition at line 149 of file assembly_richards.hh.

◆ EqFields

template<unsigned int dim>
typedef RichardsLMH::EqFields MHMatrixAssemblyRichards< dim >::EqFields

Definition at line 148 of file assembly_richards.hh.

Constructor & Destructor Documentation

◆ MHMatrixAssemblyRichards()

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

Definition at line 153 of file assembly_richards.hh.

◆ ~MHMatrixAssemblyRichards()

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

Destructor.

Definition at line 177 of file assembly_richards.hh.

Member Function Documentation

◆ asm_source_term_richards()

template<unsigned int dim>
void MHMatrixAssemblyRichards< dim >::asm_source_term_richards ( const DHCellAccessor cell,
BulkPoint p 
)
inlineprotected

Part of cell_integral method, specialized in Richards equation.

Definition at line 237 of file assembly_richards.hh.

Here is the caller graph for this function:

◆ begin()

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

Implements AssemblyBase::begin.

Reimplemented from MHMatrixAssemblyLMH< dim >.

Reimplemented in ReconstructSchurAssemblyRichards< dim >.

Definition at line 222 of file assembly_richards.hh.

◆ boundary_side_integral()

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

Assembles between boundary element and corresponding side on bulk element.

Definition at line 202 of file assembly_richards.hh.

◆ cell_integral()

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

Integral over element.

Definition at line 187 of file assembly_richards.hh.

◆ compute_conductivity()

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::compute_conductivity ( const DHCellAccessor cell,
BulkPoint p 
)
inlineprotected

Precompute conductivity on bulk point.

Definition at line 338 of file assembly_richards.hh.

Here is the caller graph for this function:

◆ end()

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

Implements AssemblyBase::end.

Reimplemented from MHMatrixAssemblyLMH< dim >.

Reimplemented in ReconstructSchurAssemblyRichards< dim >.

Definition at line 229 of file assembly_richards.hh.

◆ initialize()

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

Initialize auxiliary vectors and other data members.

Definition at line 180 of file assembly_richards.hh.

◆ name()

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

Definition at line 151 of file assembly_richards.hh.

◆ postprocess_velocity_richards()

template<unsigned int dim>
void MHMatrixAssemblyRichards< dim >::postprocess_velocity_richards ( const DHCellAccessor dh_cell,
BulkPoint p,
arma::vec &  solution 
)
inlineprotected

Postprocess velocity after calculating of cell integral.

Definition at line 362 of file assembly_richards.hh.

Here is the caller graph for this function:

◆ reset_soil_model()

template<unsigned int dim>
bool MHMatrixAssemblyRichards< dim >::reset_soil_model ( const DHCellAccessor cell,
BulkPoint p 
)
inlineprotected

Definition at line 294 of file assembly_richards.hh.

◆ update_water_content()

template<unsigned int dim>
void MHMatrixAssemblyRichards< dim >::update_water_content ( const DHCellAccessor cell,
BulkPoint p 
)
inlineprotected

Definition at line 311 of file assembly_richards.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 396 of file assembly_richards.hh.

Member Data Documentation

◆ capacity

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::capacity
protected

Definition at line 390 of file assembly_richards.hh.

◆ cr_disc_dofs_

template<unsigned int dim>
LocDofVec MHMatrixAssemblyRichards< dim >::cr_disc_dofs_
protected

Vector of local DOF indices pre-computed on different DOF handlers.

Definition at line 387 of file assembly_richards.hh.

◆ diagonal_coef_

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::diagonal_coef_
protected

Definition at line 392 of file assembly_richards.hh.

◆ edge_indices_

template<unsigned int dim>
LocDofVec MHMatrixAssemblyRichards< dim >::edge_indices_
protected

Dofs of discontinuous fields on element edges.

Definition at line 388 of file assembly_richards.hh.

◆ eq_data_

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

Definition at line 385 of file assembly_richards.hh.

◆ eq_fields_

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

Data objects shared with ConvectionTransport.

Definition at line 384 of file assembly_richards.hh.

◆ mass_diagonal_

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::mass_diagonal_
protected

Definition at line 393 of file assembly_richards.hh.

◆ mass_rhs_

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::mass_rhs_
protected

Definition at line 393 of file assembly_richards.hh.

◆ phead

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::phead
protected

Definition at line 390 of file assembly_richards.hh.

◆ source_diagonal_

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::source_diagonal_
protected

Definition at line 392 of file assembly_richards.hh.

◆ storativity_

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::storativity_
protected

Definition at line 389 of file assembly_richards.hh.

◆ water_content

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::water_content
protected

Definition at line 391 of file assembly_richards.hh.

◆ water_content_diff_

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::water_content_diff_
protected

Definition at line 393 of file assembly_richards.hh.

◆ water_content_previous_time

template<unsigned int dim>
double MHMatrixAssemblyRichards< dim >::water_content_previous_time
protected

Definition at line 391 of file assembly_richards.hh.


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