Flow123d
jenkins-Flow123d-windows32-release-multijob-51
|
Edge lumped mixed-hybrid solution of unsteady Darcy flow. More...
#include <darcy_flow_mh.hh>
Public Member Functions | |
DarcyFlowLMH_Unsteady (Mesh &mesh, const Input::Record in_rec) | |
DarcyFlowLMH_Unsteady () | |
Public Member Functions inherited from DarcyFlowMH_Steady | |
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 | 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_DofHandler & | get_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 () |
Mesh & | mesh () |
TimeMark::Type | mark_type () |
FieldSet & | data () |
Static Public Attributes | |
static Input::Type::Record | input_type |
Static Public Attributes inherited from DarcyFlowMH_Steady | |
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 | read_init_condition () override |
void | modify_system () override |
void | setup_time_term () |
virtual void | postprocess () |
postprocess velocity field (add sources) More... | |
Protected Member Functions inherited from DarcyFlowMH_Steady | |
void | make_serial_scatter () |
void | prepare_parallel (const Input::AbstractRecord in_rec) |
void | make_row_numberings () |
void | create_linear_system () |
void | assembly_steady_mh_matrix () |
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 () |
Private Attributes | |
Vec | steady_diagonal |
Vec | steady_rhs |
Vec | new_diagonal |
Vec | previous_solution |
Additional Inherited Members | |
Public Types inherited from DarcyFlowMH | |
enum | MortarMethod { NoMortar = 0, MortarP0 = 1, MortarP1 = 2 } |
Protected Attributes inherited from DarcyFlowMH_Steady | |
DarcyFlowMHOutput * | output_object |
int | size |
int | n_schur_compls |
double * | solution |
LinSys * | schur0 |
Distribution * | edge_ds |
Distribution * | el_ds |
Distribution * | side_ds |
boost::shared_ptr< Distribution > | rows_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_ |
Protected Attributes inherited from EquationBase | |
bool | equation_empty_ |
flag is true if only default constructor was called More... | |
Mesh * | mesh_ |
TimeGovernor * | time_ |
Input::Record | input_record_ |
FieldSet * | eq_data_ |
Edge lumped mixed-hybrid solution of unsteady Darcy flow.
The time term and sources are evenly distributed form an element to its edges. This applies directly to the second Schur complement. After this system for pressure traces is solved we reconstruct pressures and side flows as follows:
This lumping technique preserves discrete maximum principle for any time step provided one use acute mesh. But in practice even worse meshes are tractable.
Definition at line 478 of file darcy_flow_mh.hh.
DarcyFlowLMH_Unsteady::DarcyFlowLMH_Unsteady | ( | Mesh & | mesh, |
const Input::Record | in_rec | ||
) |
Definition at line 1490 of file darcy_flow_mh.cc.
DarcyFlowLMH_Unsteady::DarcyFlowLMH_Unsteady | ( | ) |
|
overrideprotectedvirtual |
Reimplemented from DarcyFlowMH_Steady.
Definition at line 1578 of file darcy_flow_mh.cc.
|
protectedvirtual |
postprocess velocity field (add sources)
Reimplemented from DarcyFlowMH_Steady.
Definition at line 1600 of file darcy_flow_mh.cc.
|
overrideprotectedvirtual |
Read initial condition into solution vector. Must be called after create_linear_system.
Reimplemented from DarcyFlowMH_Steady.
Definition at line 1514 of file darcy_flow_mh.cc.
|
protectedvirtual |
Reimplemented from DarcyFlowMH_Steady.
Definition at line 1542 of file darcy_flow_mh.cc.
|
static |
Definition at line 485 of file darcy_flow_mh.hh.
|
private |
Definition at line 494 of file darcy_flow_mh.hh.
|
private |
Definition at line 495 of file darcy_flow_mh.hh.
|
private |
Definition at line 492 of file darcy_flow_mh.hh.
|
private |
Definition at line 493 of file darcy_flow_mh.hh.