33 #ifndef DARCY_FLOW_MH_HH 34 #define DARCY_FLOW_MH_HH 39 #include <boost/exception/info.hpp> 76 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.");
202 std::shared_ptr<DOFHandlerMultiDim>
dh_;
203 std::shared_ptr<SubDOFHandlerMultiDim>
dh_cr_;
239 return time_->last_t();
242 std::shared_ptr< FieldFE<3, FieldValue<3>::VectorFixed> > get_velocity_field()
override;
245 void initialize()
override;
246 virtual void initialize_specific();
247 void zero_time_step()
override;
248 void update_solution()
override;
250 void solve_time_step(
bool output =
true);
253 virtual void postprocess();
254 virtual void output_data()
override;
259 { data_->extra_storativity = extra_stor; }
262 { data_->extra_source = extra_src; }
274 virtual bool zero_time_term(
bool time_global=
false);
277 void solve_nonlinear();
278 void modify_system();
279 virtual void setup_time_term();
280 void prepare_new_time_step();
298 virtual void read_initial_condition();
315 void allocate_mh_matrix();
329 virtual void assembly_source_term();
334 virtual void assembly_linear_system();
336 void set_mesh_data_for_bddc(
LinSys_BDDC * bddc_ls);
342 virtual double solution_precision()
const;
345 void print_matlab_matrix(
string matlab_file);
395 void dofs_range(
unsigned int n_dofs,
unsigned int &min,
unsigned int &max,
unsigned int component);
398 #endif //DARCY_FLOW_MH_HH Field< 3, FieldValue< 3 >::VectorFixed > field_ele_velocity
void set_extra_storativity(const Field< 3, FieldValue< 3 >::Scalar > &extra_stor)
Field< 3, FieldValue< 3 >::Scalar > extra_source
Externally added storativity.
std::vector< std::shared_ptr< AssemblyBase > > MultidimAssembly
Container for various descendants of FieldCommonBase.
Field< 3, FieldValue< 3 >::Scalar > init_pressure
std::shared_ptr< FieldFE< 3, FieldValue< 3 >::VectorFixed > > ele_flux_ptr
Field of flux in barycenter of every element.
std::shared_ptr< DOFHandlerMultiDim > dh_
full DOF handler represents DOFs of sides, elements and edges
Class template representing a field with values dependent on: point, element, and region...
static const int registrar
Registrar of class to factory.
Field< 3, FieldValue< 3 >::Scalar > extra_storativity
Field< 3, FieldValue< 3 >::Scalar > sigma
std::shared_ptr< SubDOFHandlerMultiDim > dh_cr_
DOF handler represents DOFs of edges.
std::vector< char > bc_switch_dirichlet
Idicator of dirichlet or neumann type of switch boundary conditions.
int is_linear
Hack fo BDDC solver.
Basic time management functionality for unsteady (and steady) solvers (class Equation).
unsigned int n_schur_compls
void set_extra_source(const Field< 3, FieldValue< 3 >::Scalar > &extra_src)
std::shared_ptr< EqData > data_
void mat_count_off_proc_values(Mat m, Vec v)
Basic time management class.
Field< 3, FieldValue< 3 >::Scalar > field_ele_pressure
Externally added water source.
void dofs_range(unsigned int n_dofs, unsigned int &min, unsigned int &max, unsigned int component)
Helper method fills range (min and max) of given component.
MultidimAssembly multidim_assembler
unsigned int nonlinear_iteration_
BCField< 3, FieldValue< 3 >::Scalar > bc_flux
BCField< 3, FieldValue< 3 >::Scalar > bc_pressure
bool force_no_neumann_bc
auxiliary flag for switchting Dirichlet like BC
Field< 3, FieldValue< 3 >::Scalar > water_source_density
BCField< 3, FieldValue< 3 >::Scalar > bc_switch_pressure
Field< 3, FieldValue< 3 >::Scalar > storativity
std::shared_ptr< Balance > balance_
bool use_steady_assembly_
std::shared_ptr< Balance > balance
double last_t() override
Return last time of TimeGovernor.
std::shared_ptr< DOFHandlerMultiDim > dh_cr_disc_
DOF handler represents DOFs of sides.
Field< 3, FieldValue< 3 >::Scalar > field_ele_piezo_head
Field< 3, FieldValue< 3 >::TensorFixed > anisotropy
Field< 3, FieldValue< 3 >::Scalar > field_edge_pressure
Field< 3, FieldValue< 3 >::Scalar > cross_section
BCField< 3, FieldValue< 3 >::Enum > bc_type
DarcyFlowMHOutput * output_object
Field< 3, FieldValue< 3 >::Scalar > conductivity
BCField< 3, FieldValue< 3 >::Scalar > bc_robin_sigma
MortarMethod mortar_method_
Mixed-hybrid model of linear Darcy flow, possibly unsteady.