Flow123d
JS_before_hm-1880-gdd969e4e2
|
Go to the documentation of this file.
33 #ifndef DARCY_FLOW_MH_HH
34 #define DARCY_FLOW_MH_HH
76 template<
int spacedim,
class Value>
class FieldDivide;
133 <<
"Diverged nonlinear solver. Reason: " << EI_Reason::val
136 <<
"Missing the key 'time', obligatory for the transient problems.");
199 std::shared_ptr<DOFHandlerMultiDim>
dh_;
200 std::shared_ptr<SubDOFHandlerMultiDim>
dh_cr_;
250 {
data_->extra_storativity = extra_stor; }
253 {
data_->extra_source = extra_src; }
382 void dofs_range(
unsigned int n_dofs,
unsigned int &min,
unsigned int &max,
unsigned int component);
385 #endif //DARCY_FLOW_MH_HH
std::shared_ptr< Balance > balance_
virtual double solution_precision() const
void solve_nonlinear()
Solve method common to zero_time_step and update solution.
bool use_steady_assembly_
void set_extra_source(const Field< 3, FieldValue< 3 >::Scalar > &extra_src)
void set_extra_storativity(const Field< 3, FieldValue< 3 >::Scalar > &extra_stor)
Basic time management class.
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 & type_field_descriptor()
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.
Field< 3, FieldValue< 3 >::Scalar > sigma
virtual void postprocess()
postprocess velocity field (add sources)
Field< 3, FieldValue< 3 >::Scalar > extra_storativity
virtual void setup_time_term()
unsigned int n_schur_compls
std::shared_ptr< SubDOFHandlerMultiDim > dh_cr_
DOF handler represents DOFs of edges.
MultidimAssembly multidim_assembler
void create_linear_system(Input::AbstractRecord rec)
BCField< 3, FieldValue< 3 >::Scalar > bc_flux
virtual void output_data() override
Write computed fields.
virtual ~DarcyMH() override
static const Input::Type::Selection & get_mh_mortar_selection()
Selection for enum MortarMethod.
Field< 3, FieldValue< 3 >::Scalar > field_ele_pressure
Externally added water source.
std::shared_ptr< DOFHandlerMultiDim > dh_
full DOF handler represents DOFs of sides, elements and edges
BCField< 3, FieldValue< 3 >::Scalar > bc_switch_pressure
void allocate_mh_matrix()
void prepare_new_time_step()
void assembly_mh_matrix(MultidimAssembly &assembler)
DarcyFlowMHOutput * output_object
BCField< 3, FieldValue< 3 >::Scalar > bc_pressure
std::vector< char > bc_switch_dirichlet
Idicator of dirichlet or neumann type of switch boundary conditions.
virtual void assembly_source_term()
Source term is implemented differently in LMH version.
int is_linear
Hack fo BDDC solver.
void mat_count_off_proc_values(Mat m, Vec v)
Basic time management functionality for unsteady (and steady) solvers (class Equation).
virtual bool zero_time_term(bool time_global=false)
void print_matlab_matrix(string matlab_file)
Print darcy flow matrix in matlab format into a file.
Field< 3, FieldValue< 3 >::Scalar > field_ele_piezo_head
static const Input::Type::Selection & get_bc_type_selection()
Return a Selection corresponding to enum BC_Type.
DECLARE_INPUT_EXCEPTION(ExcMissingTimeGovernor,<< "Missing the key 'time', obligatory for the transient problems.")
Container for various descendants of FieldCommonBase.
MortarMethod
Type of experimental Mortar-like method for non-compatible 1d-2d interaction.
bool force_no_neumann_bc
auxiliary flag for switchting Dirichlet like BC
Field< 3, FieldValue< 3 >::Scalar > water_source_density
std::shared_ptr< EqData > data_
DECLARE_EXCEPTION(ExcSolverDiverge,<< "Diverged nonlinear solver. Reason: "<< EI_Reason::val)
Field< 3, FieldValue< 3 >::Scalar > storativity
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)
unsigned int nonlinear_iteration_
void set_mesh_data_for_bddc(LinSys_BDDC *bddc_ls)
static const Input::Type::Record & get_input_type()
std::shared_ptr< DOFHandlerMultiDim > dh_cr_disc_
DOF handler represents DOFs of sides.
virtual void assembly_linear_system()
DarcyMH(Mesh &mesh, const Input::Record in_rec, TimeGovernor *tm=nullptr)
CREATE AND FILL GLOBAL MH MATRIX OF THE WATER MODEL.
std::shared_ptr< Balance > balance
virtual void initialize_specific()
Field< 3, FieldValue< 3 >::Scalar > field_edge_pressure
MortarMethod mortar_method_
Field< 3, FieldValue< 3 >::VectorFixed > flux
Field< 3, FieldValue< 3 >::TensorFixed > anisotropy
BCField< 3, FieldValue< 3 >::Scalar > bc_robin_sigma
Class template representing a field with values dependent on: point, element, and region.
Field< 3, FieldValue< 3 >::VectorFixed > field_ele_velocity
TYPEDEF_ERR_INFO(EI_Reason, string)
Field< 3, FieldValue< 3 >::Scalar > init_pressure
virtual void read_initial_condition()
Mixed-hybrid model of linear Darcy flow, possibly unsteady.
Field< 3, FieldValue< 3 >::Scalar > cross_section
std::vector< std::shared_ptr< AssemblyBase > > MultidimAssembly
BCField< 3, FieldValue< 3 >::Enum > bc_type
Field< 3, FieldValue< 3 >::Scalar > conductivity
static const int registrar
Registrar of class to factory.
void initialize() override
void zero_time_step() override
Field< 3, FieldValue< 3 >::Scalar > extra_source
Externally added storativity.
EqData()
Creation of all fields.