Flow123d  jenkins-Flow123d-linux-release-multijob-282
Classes | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
DarcyFlowMH_Steady Class Reference

Mixed-hybrid of steady Darcy flow with sources and variable density. More...

#include <darcy_flow_mh.hh>

Inheritance diagram for DarcyFlowMH_Steady:
Inheritance graph
[legend]
Collaboration diagram for DarcyFlowMH_Steady:
Collaboration graph
[legend]

Classes

class  EqData
 

Public Member Functions

 DarcyFlowMH_Steady (Mesh &mesh, const Input::Record in_rec, bool make_tg=true)
 CREATE AND FILL GLOBAL MH MATRIX OF THE WATER MODEL. More...
 
virtual void update_solution ()
 
virtual void get_solution_vector (double *&vec, unsigned int &vec_size)
 
virtual void get_parallel_solution_vector (Vec &vector)
 
virtual void postprocess ()
 postprocess velocity field (add sources) More...
 
virtual void output_data () override
 Write computed fields. More...
 
 ~DarcyFlowMH_Steady ()
 
- Public Member Functions inherited from DarcyFlowMH
 DarcyFlowMH (Mesh &mesh, const Input::Record in_rec)
 
void get_velocity_seq_vector (Vec &velocity_vec)
 
const MH_DofHandlerget_mh_dofhandler ()
 
virtual void set_concentration_vector (Vec &vc)
 
- Public Member Functions inherited from EquationBase
 EquationBase ()
 
 EquationBase (Mesh &mesh, const Input::Record in_rec)
 
virtual ~EquationBase ()
 
virtual void zero_time_step ()
 
virtual void initialize ()
 Initialize fields. More...
 
virtual void choose_next_time ()
 
virtual void set_time_upper_constraint (double dt)
 
virtual void set_time_lower_constraint (double dt)
 
TimeGovernor const & time ()
 
virtual void set_time_governor (TimeGovernor &time)
 
double planned_time ()
 
double solved_time ()
 
Meshmesh ()
 
TimeMark::Type mark_type ()
 
FieldSetdata ()
 

Static Public Attributes

static Input::Type::Record input_type
 
- Static Public Attributes inherited from DarcyFlowMH
static Input::Type::Selection mh_mortar_selection
 
static Input::Type::AbstractRecord input_type
 
static Input::Type::Record bc_segment_rec
 
static Input::Type::AbstractRecord bc_input_type
 
static std::vector
< Input::Type::Record
bc_input_types
 

Protected Member Functions

void make_serial_scatter ()
 
virtual void modify_system ()
 
virtual void setup_time_term ()
 
void prepare_parallel (const Input::AbstractRecord in_rec)
 
void make_row_numberings ()
 
void create_linear_system ()
 
virtual void read_init_condition ()
 
void assembly_steady_mh_matrix ()
 
virtual void assembly_source_term ()
 Source term is implemented differently in LMH version. More...
 
void assembly_linear_system ()
 
void set_mesh_data_for_bddc (LinSys_BDDC *bddc_ls)
 
double solution_precision () const
 
- Protected Member Functions inherited from DarcyFlowMH
void setup_velocity_vector ()
 

Protected Attributes

DarcyFlowMHOutputoutput_object
 
int size
 
int n_schur_compls
 
double * solution
 
LinSysschur0
 
Distributionedge_ds
 
Distributionel_ds
 
Distributionside_ds
 
boost::shared_ptr< Distributionrows_ds
 
int * el_4_loc
 
int * row_4_el
 
int * side_id_4_loc
 
int * side_row_4_id
 
int * edge_4_loc
 
int * row_4_edge
 
boost::shared_ptr
< LocalToGlobalMap
global_row_4_sub_row
 
Vec sol_vec
 
VecScatter par_to_all
 
EqData data_
 
- Protected Attributes inherited from DarcyFlowMH
bool solution_changed_for_scatter
 
Vec velocity_vector
 
MH_DofHandler mh_dh
 
MortarMethod mortar_method_
 
boost::shared_ptr< Balancebalance_
 object for calculation and writing the water balance to file. More...
 
unsigned int water_balance_idx_
 index of water balance within the Balance object. More...
 
- Protected Attributes inherited from EquationBase
bool equation_empty_
 flag is true if only default constructor was called More...
 
Meshmesh_
 
TimeGovernortime_
 
Input::Record input_record_
 
FieldSeteq_data_
 

Friends

class DarcyFlowMHOutput
 
class P0_CouplingAssembler
 
class P1_CouplingAssembler
 

Additional Inherited Members

- Public Types inherited from DarcyFlowMH
enum  MortarMethod { NoMortar = 0, MortarP0 = 1, MortarP1 = 2 }
 

Detailed Description

Mixed-hybrid of steady Darcy flow with sources and variable density.

solve equations:

\[ q= -{\mathbf{K}} \nabla h -{\mathbf{K}} R \nabla z \]

\[ \mathrm{div} q = f \]

where

Definition at line 244 of file darcy_flow_mh.hh.

Constructor & Destructor Documentation

DarcyFlowMH_Steady::DarcyFlowMH_Steady ( Mesh mesh_in,
const Input::Record  in_rec,
bool  make_tg = true 
)

CREATE AND FILL GLOBAL MH MATRIX OF THE WATER MODEL.

Parameters {Solver,NSchurs} number of performed Schur complements (0,1,2) for water flow MH-system

Definition at line 214 of file darcy_flow_mh.cc.

DarcyFlowMH_Steady::~DarcyFlowMH_Steady ( )

Definition at line 1185 of file darcy_flow_mh.cc.

Member Function Documentation

void DarcyFlowMH_Steady::assembly_linear_system ( )
protected

Assembly or update whole linear system.

Definition at line 982 of file darcy_flow_mh.cc.

Here is the caller graph for this function:

void DarcyFlowMH_Steady::assembly_source_term ( )
protectedvirtual

Source term is implemented differently in LMH version.

Reimplemented in DarcyFlowLMH_Unsteady.

Definition at line 635 of file darcy_flow_mh.cc.

Here is the caller graph for this function:

void DarcyFlowMH_Steady::assembly_steady_mh_matrix ( )
protected

Abstract assembly method used for both assembly and preallocation. Assembly only steady part of the equation. TODO:

  • use general preallocation methods in DofHandler
  • include alos time term
  • add support for Robin type sources
  • support for nonlinear solvers - assembly either residual vector, matrix, or both (using FADBAD++)

Definition at line 412 of file darcy_flow_mh.cc.

void DarcyFlowMH_Steady::create_linear_system ( )
protected

Create and preallocate MH linear system (including matrix, rhs and solution vectors)

Definition at line 881 of file darcy_flow_mh.cc.

Here is the caller graph for this function:

void DarcyFlowMH_Steady::get_parallel_solution_vector ( Vec &  vector)
virtual

Child class have to implement getter for parallel solution vector. DEPRECATED

Reimplemented from EquationBase.

Definition at line 388 of file darcy_flow_mh.cc.

void DarcyFlowMH_Steady::get_solution_vector ( double *&  vector,
unsigned int &  size 
)
virtual

Child class have to implement getter for sequential solution vector. DEPRECATED

Reimplemented from EquationBase.

Definition at line 371 of file darcy_flow_mh.cc.

Here is the caller graph for this function:

void DarcyFlowMH_Steady::make_row_numberings ( )
protected

Definition at line 1221 of file darcy_flow_mh.cc.

void DarcyFlowMH_Steady::make_serial_scatter ( )
protected

Definition at line 1266 of file darcy_flow_mh.cc.

virtual void DarcyFlowMH_Steady::modify_system ( )
inlineprotectedvirtual

Reimplemented in DarcyFlowLMH_Unsteady, and DarcyFlowMH_Unsteady.

Definition at line 272 of file darcy_flow_mh.hh.

void DarcyFlowMH_Steady::output_data ( void  )
overridevirtual

Write computed fields.

Reimplemented from EquationBase.

Definition at line 343 of file darcy_flow_mh.cc.

Here is the caller graph for this function:

void DarcyFlowMH_Steady::postprocess ( )
virtual

postprocess velocity field (add sources)

Reimplemented in DarcyFlowLMH_Unsteady.

Definition at line 318 of file darcy_flow_mh.cc.

Here is the caller graph for this function:

void DarcyFlowMH_Steady::prepare_parallel ( const Input::AbstractRecord  in_rec)
protected

Definition at line 1312 of file darcy_flow_mh.cc.

Here is the caller graph for this function:

virtual void DarcyFlowMH_Steady::read_init_condition ( )
inlineprotectedvirtual

Read initial condition into solution vector. Must be called after create_linear_system.

Reimplemented in DarcyFlowLMH_Unsteady, and DarcyFlowMH_Unsteady.

Definition at line 291 of file darcy_flow_mh.hh.

void DarcyFlowMH_Steady::set_mesh_data_for_bddc ( LinSys_BDDC bddc_ls)
protected

type for storage of global to local map

Definition at line 1027 of file darcy_flow_mh.cc.

virtual void DarcyFlowMH_Steady::setup_time_term ( )
inlineprotectedvirtual

Reimplemented in DarcyFlowLMH_Unsteady, and DarcyFlowMH_Unsteady.

Definition at line 274 of file darcy_flow_mh.hh.

double DarcyFlowMH_Steady::solution_precision ( ) const
protectedvirtual

Implements DarcyFlowMH.

Definition at line 365 of file darcy_flow_mh.cc.

void DarcyFlowMH_Steady::update_solution ( void  )
virtual

Calculation of the next time step and its output.

Reimplemented from EquationBase.

Definition at line 293 of file darcy_flow_mh.cc.

Friends And Related Function Documentation

friend class DarcyFlowMHOutput
friend

Definition at line 348 of file darcy_flow_mh.hh.

friend class P0_CouplingAssembler
friend

Definition at line 349 of file darcy_flow_mh.hh.

friend class P1_CouplingAssembler
friend

Definition at line 350 of file darcy_flow_mh.hh.

Member Data Documentation

EqData DarcyFlowMH_Steady::data_
protected

Definition at line 346 of file darcy_flow_mh.hh.

int* DarcyFlowMH_Steady::edge_4_loc
protected

Definition at line 336 of file darcy_flow_mh.hh.

Distribution* DarcyFlowMH_Steady::edge_ds
protected

Definition at line 327 of file darcy_flow_mh.hh.

int* DarcyFlowMH_Steady::el_4_loc
protected

Definition at line 332 of file darcy_flow_mh.hh.

Distribution* DarcyFlowMH_Steady::el_ds
protected

Definition at line 328 of file darcy_flow_mh.hh.

boost::shared_ptr<LocalToGlobalMap> DarcyFlowMH_Steady::global_row_4_sub_row
protected

Definition at line 340 of file darcy_flow_mh.hh.

it::Record DarcyFlowMH_Steady::input_type
static
Initial value:
= it::Record("Steady_MH", "Mixed-Hybrid solver for STEADY saturated Darcy flow.")
.declare_key("input_fields", it::Array(
DarcyFlowMH_Steady::EqData().make_field_descriptor_type("DarcyFlowMH")
.declare_key("bc_piezo_head", FieldAlgorithmBase< 3, FieldValue<3>::Scalar >::get_input_type(), "Boundary condition for pressure as piezometric head." )
.declare_key("init_piezo_head", FieldAlgorithmBase< 3, FieldValue<3>::Scalar >::get_input_type(), "Initial condition for pressure as piezometric head." )
.declare_key(OldBcdInput::flow_old_bcd_file_key(), it::FileName::input(), "File with mesh dependent boundary conditions (obsolete).")

Definition at line 257 of file darcy_flow_mh.hh.

int DarcyFlowMH_Steady::n_schur_compls
protected

Definition at line 320 of file darcy_flow_mh.hh.

DarcyFlowMHOutput* DarcyFlowMH_Steady::output_object
protected

Definition at line 317 of file darcy_flow_mh.hh.

VecScatter DarcyFlowMH_Steady::par_to_all
protected

Definition at line 344 of file darcy_flow_mh.hh.

int* DarcyFlowMH_Steady::row_4_edge
protected

Definition at line 337 of file darcy_flow_mh.hh.

int* DarcyFlowMH_Steady::row_4_el
protected

Definition at line 333 of file darcy_flow_mh.hh.

boost::shared_ptr<Distribution> DarcyFlowMH_Steady::rows_ds
protected

Definition at line 330 of file darcy_flow_mh.hh.

LinSys* DarcyFlowMH_Steady::schur0
protected

Definition at line 324 of file darcy_flow_mh.hh.

Distribution* DarcyFlowMH_Steady::side_ds
protected

Definition at line 329 of file darcy_flow_mh.hh.

int* DarcyFlowMH_Steady::side_id_4_loc
protected

Definition at line 334 of file darcy_flow_mh.hh.

int* DarcyFlowMH_Steady::side_row_4_id
protected

Definition at line 335 of file darcy_flow_mh.hh.

int DarcyFlowMH_Steady::size
protected

Definition at line 319 of file darcy_flow_mh.hh.

Vec DarcyFlowMH_Steady::sol_vec
protected

Definition at line 343 of file darcy_flow_mh.hh.

double* DarcyFlowMH_Steady::solution
protected

Definition at line 321 of file darcy_flow_mh.hh.


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