Flow123d
JS_before_hm-1820-g636551b33
|
Go to the documentation of this file.
33 #ifndef DARCY_FLOW_LMH_HH
34 #define DARCY_FLOW_LMH_HH
78 template<
int spacedim,
class Value>
class FieldDivide;
136 <<
"Diverged nonlinear solver. Reason: " << EI_Reason::val
139 <<
"Missing the key 'time', obligatory for the transient problems.");
154 std::shared_ptr<SubDOFHandlerMultiDim>
dh_p_;
202 {
data_->extra_storativity = extra_stor; }
206 {
data_->extra_source = extra_src; }
285 {
return *(
data_->lin_sys_schur); }
312 #endif //DARCY_FLOW_LMH_HH
void print_matlab_matrix(string matlab_file)
Print darcy flow matrix in matlab format into a file.
virtual bool zero_time_term(bool time_global=false)
void reconstruct_solution_from_schur(MultidimAssembly &assembler)
DarcyFlowMHOutput * output_object
Basic time management class.
VectorMPI p_edge_solution
virtual void accept_time_step()
postprocess velocity field (add sources)
void create_linear_system(Input::AbstractRecord rec)
std::map< LongIdx, LocalSystem > seepage_bc_systems
TYPEDEF_ERR_INFO(EI_Reason, string)
unsigned int nonlinear_iteration_
std::shared_ptr< LinSys > lin_sys_schur
void solve_time_step(bool output=true)
Solve the problem without moving to next time and without output.
void update_solution() override
static const Input::Type::Record & get_input_type()
virtual void postprocess()
DECLARE_EXCEPTION(ExcSolverDiverge,<< "Diverged nonlinear solver. Reason: "<< EI_Reason::val)
virtual void assembly_linear_system()
void set_extra_source(const Field< 3, FieldValue< 3 >::Scalar > &extra_src)
Sets external source field (coupling with other equation).
static const Input::Type::Record & type_field_descriptor()
void zero_time_step() override
void assembly_mh_matrix(MultidimAssembly &assembler)
std::shared_ptr< SubDOFHandlerMultiDim > dh_p_
DOF handler represents DOFs of element pressure.
void solve_nonlinear()
Solve method common to zero_time_step and update solution.
std::shared_ptr< Balance > balance_
static const int registrar
Registrar of class to factory.
void set_extra_storativity(const Field< 3, FieldValue< 3 >::Scalar > &extra_stor)
Sets external storarivity field (coupling with other equation).
Basic time management functionality for unsteady (and steady) solvers (class Equation).
virtual void initialize_specific()
virtual double solution_precision() const
virtual ~DarcyLMH() override
void initialize() override
std::vector< int > get_component_indices_vec(unsigned int component) const
Get vector of all DOF indices of given component (0..side, 1..element, 2..edge)
LinSys & lin_sys_schur()
Getter for the linear system of the 2. Schur complement.
bool use_steady_assembly_
static const Input::Type::Selection & get_mh_mortar_selection()
Selection for enum MortarMethod.
void allocate_mh_matrix()
Mixed-hybrid model of linear Darcy flow, possibly unsteady.
mixed-hybrid model of linear Darcy flow, possibly unsteady.
virtual void initial_condition_postprocess()
VectorMPI p_edge_solution_previous
DECLARE_INPUT_EXCEPTION(ExcMissingTimeGovernor,<< "Missing the key 'time', obligatory for the transient problems.")
Class template representing a field with values dependent on: point, element, and region.
virtual void output_data() override
Write computed fields.
DarcyLMH(Mesh &mesh, const Input::Record in_rec, TimeGovernor *tm=nullptr)
CREATE AND FILL GLOBAL MH MATRIX OF THE WATER MODEL.
std::shared_ptr< EqData > data_
void read_initial_condition()
VectorMPI p_edge_solution_previous_time