33 #ifndef DARCY_FLOW_MH_HH 34 #define DARCY_FLOW_MH_HH 115 <<
"Diverged nonlinear solver. Reason: " << EI_Reason::val
118 <<
"Missing the key 'time', obligatory for the transient problems.");
378 #endif //DARCY_FLOW_MH_HH
void get_solution_vector(double *&vec, unsigned int &vec_size) override
void make_serial_scatter()
Abstract base class for equation clasess.
Container for various descendants of FieldCommonBase.
Field< 3, FieldValue< 3 >::Scalar > init_pressure
virtual void initialize_specific()
void get_parallel_solution_vector(Vec &vector) override
void assembly_mh_matrix(MultidimAssembly &assembler)
DECLARE_INPUT_EXCEPTION(ExcMissingTimeGovernor,<< "Missing the key 'time', obligatory for the transient problems.")
virtual ~DarcyMH() override
virtual void assembly_source_term()
Source term is implemented differently in LMH version.
virtual void output_data() override
Write computed fields.
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 > sigma
static const Input::Type::Selection & get_mh_mortar_selection()
Selection for enum MortarMethod.
void initialize() override
static const Input::Type::Record & type_field_descriptor()
std::vector< char > bc_switch_dirichlet
Idicator of dirichlet or neumann type of switch boundary conditions.
int is_linear
Hack fo BDDC solver.
unsigned int n_schur_compls
bool solution_changed_for_scatter
void solve_nonlinear()
Solve method common to zero_time_step and update solution.
std::shared_ptr< EqData > data_
void mat_count_off_proc_values(Mat m, Vec v)
unsigned int nonlinear_iteration_
void set_mesh_data_for_bddc(LinSys_BDDC *bddc_ls)
BCField< 3, FieldValue< 3 >::Scalar > bc_flux
void update_solution() override
BCField< 3, FieldValue< 3 >::Scalar > bc_pressure
virtual void postprocess()
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 force_bc_switch
auxiliary flag for switchting Dirichlet like BC
bool use_steady_assembly_
void allocate_mh_matrix()
std::shared_ptr< Balance > balance
static const Input::Type::Selection & get_bc_type_selection()
Return a Selection corresponding to enum BC_Type.
virtual void assembly_linear_system()
DarcyMH(Mesh &mesh, const Input::Record in_rec)
CREATE AND FILL GLOBAL MH MATRIX OF THE WATER MODEL.
void create_linear_system(Input::AbstractRecord rec)
Initialize global_row_4_sub_row.
MortarMethod
Type of experimental Mortar-like method for non-compatible 1d-2d interaction.
DECLARE_EXCEPTION(ExcSolverDiverge,<< "Diverged nonlinear solver. Reason: "<< EI_Reason::val)
unsigned int local_boundary_index
Vector classes to support both Iterator, index and Id access and creating co-located vectors...
Field< 3, FieldValue< 3 >::TensorFixed > anisotropy
TYPEDEF_ERR_INFO(EI_Reason, string)
EqData()
Creation of all fields.
void print_matlab_matrix(string matlab_file)
Print darcy flow matrix in matlab format into a file.
void zero_time_step() override
virtual void read_initial_condition()
Field< 3, FieldValue< 3 >::Scalar > cross_section
BCField< 3, FieldValue< 3 >::Enum > bc_type
DarcyFlowMHOutput * output_object
Field< 3, FieldValue< 3 >::Scalar > conductivity
void set_solution(double time, double *solution, double precision)
virtual void prepare_new_time_step()
postprocess velocity field (add sources)
virtual double solution_precision() const
BCField< 3, FieldValue< 3 >::Scalar > bc_robin_sigma
std::vector< std::shared_ptr< AssemblyBase > > MultidimAssembly
virtual void setup_time_term()
MortarMethod mortar_method_
static const Input::Type::Record & get_input_type()
virtual bool zero_time_term(bool time_global=false)
const MH_DofHandler & get_mh_dofhandler() override
Mixed-hybrid model of linear Darcy flow, possibly unsteady.