33 #ifndef DARCY_FLOW_LMH_HH 34 #define DARCY_FLOW_LMH_HH 39 #include <boost/exception/info.hpp> 79 template<
int spacedim,
class Value>
class FieldDivide;
137 <<
"Diverged nonlinear solver. Reason: " << EI_Reason::val
140 <<
"Missing the key 'time', obligatory for the transient problems.");
155 std::shared_ptr<SubDOFHandlerMultiDim>
dh_p_;
185 return time_->last_t();
188 std::shared_ptr< FieldFE<3, FieldValue<3>::VectorFixed> > get_velocity_field()
override;
191 void initialize()
override;
192 virtual void initialize_specific();
193 void zero_time_step()
override;
194 void update_solution()
override;
197 void solve_time_step(
bool output =
true);
200 virtual void accept_time_step();
201 virtual void postprocess();
202 virtual void output_data()
override;
209 { data_->extra_storativity = extra_stor; }
213 { data_->extra_source = extra_src; }
225 virtual bool zero_time_term(
bool time_global=
false);
228 void solve_nonlinear();
242 void read_initial_condition();
249 virtual void initial_condition_postprocess();
256 void allocate_mh_matrix();
274 virtual void assembly_linear_system();
282 virtual double solution_precision()
const;
285 void print_matlab_matrix(
string matlab_file);
292 {
return *(data_->lin_sys_schur); }
323 #endif //DARCY_FLOW_LMH_HH VectorMPI p_edge_solution_previous
void set_extra_source(const Field< 3, FieldValue< 3 >::Scalar > &extra_src)
Sets external source field (coupling with other equation).
bool use_steady_assembly_
static const int registrar
Registrar of class to factory.
VectorMPI p_edge_solution
Class template representing a field with values dependent on: point, element, and region...
std::shared_ptr< LinSys > lin_sys_schur
std::shared_ptr< SubDOFHandlerMultiDim > dh_p_
DOF handler represents DOFs of element pressure.
Mixed-hybrid model of linear Darcy flow, possibly unsteady.
Basic time management functionality for unsteady (and steady) solvers (class Equation).
Basic time management class.
DarcyFlowMHOutput * output_object
std::shared_ptr< EqData > data_
unsigned int nonlinear_iteration_
void set_extra_storativity(const Field< 3, FieldValue< 3 >::Scalar > &extra_stor)
Sets external storarivity field (coupling with other equation).
LinSys & lin_sys_schur()
Getter for the linear system of the 2. Schur complement.
std::shared_ptr< Balance > balance_
VectorMPI p_edge_solution_previous_time
mixed-hybrid model of linear Darcy flow, possibly unsteady.
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::VectorFixed > > ele_flux_ptr
Field of flux in barycenter of every element.
double last_t() override
Return last time of TimeGovernor.
std::map< LongIdx, LocalSystem > seepage_bc_systems