70 "SPECIAL PURPOSE. Computes error norms of the solution, particulary suited for non-compatible coupling models.")
72 "Output file with raw data from MH module.")
77 "Flow_Darcy_MH_specific",
101 .
description(
"Subdomain ids of the domain decomposition.");
114 .
description(
"Error norm of the pressure solution. [Experimental]");
117 .
description(
"Error norm of the velocity solution. [Experimental]");
120 .
description(
"Error norm of the divergence of the velocity solution. [Experimental]");
143 if (in_rec_specific) {
153 if (in_rec_specific->opt_val(
"raw_flow_output", raw_output_file_path))
159 WarningOut() <<
"Raw output is not available in parallel computation. MPI size: " << mpi_size <<
"\n";
163 MessageOut() <<
"Opening raw flow output: " << raw_output_file_path <<
"\n";
166 }
INPUT_CATCH(FilePath::ExcFileOpen, FilePath::EI_Address_String, (*in_rec_specific))
173 auto fields_array = in_rec_specific->val<
Input::Array>(
"fields");
174 if(fields_array.size() > 0){
190 if (main_mh_in_rec.
opt_val(
"user_fields", user_fields_arr)) {
212 uint p_elem_component = 1;
247 - source_file: analytical_module.py
250 - source_file: analytical_module.py
253 - source_file: analytical_module.py
268 for (
unsigned int i=1; i<2*
mesh_->
region_db().bulk_size(); i+=2) {
270 ASSERT_GT(dim, 0).error(
"Bulk region with dim==0!\n");
280 std::string source_file =
"analytical_module.py";
281 for (
uint i_dim=0; i_dim<3; ++i_dim) {
282 this->set_ref_solution<ScalarSolution>(in_recs[i_dim],
flow_eq_fields_->ref_pressure, reg_by_dim[i_dim]);
283 this->set_ref_solution<VectorSolution>(in_recs[i_dim],
flow_eq_fields_->ref_velocity, reg_by_dim[i_dim]);
284 this->set_ref_solution<ScalarSolution>(in_recs[i_dim],
flow_eq_fields_->ref_divergence, reg_by_dim[i_dim]);
289 template <
class FieldType>
293 std::shared_ptr< FieldPython<3, FieldType> > algo = std::make_shared< FieldPython<3, FieldType> >();
294 algo->init_from_input( in_rec, init_data );
298 #define DARCY_SET_REF_SOLUTION(FTYPE) \
299 template void DarcyFlowMHOutput::set_ref_solution<FTYPE>(const Input::Record &, Field<3, FTYPE> &, std::vector<std::string>)
#define ASSERT_GT(a, b)
Definition of comparative assert macro (Greater Than) only for debug mode.
#define ASSERT_PTR(ptr)
Definition of assert macro checking non-null pointer (PTR) only for debug mode.
Standard quantities for output in DarcyFlowMH.
Field< 3, FieldValue< 3 >::Scalar > subdomain
Field< 3, FieldValue< 3 >::Scalar > region_id
Specific quantities for output in DarcyFlowMH - error estimates etc.
Field< 3, FieldValue< 3 >::Scalar > velocity_diff
Field< 3, FieldValue< 3 >::Scalar > div_diff
Field< 3, FieldValue< 3 >::Scalar > pressure_diff
void set_specific_output_python_fields()
static const Input::Type::Instance & get_input_type_specific()
std::shared_ptr< DiffEqData > diff_eq_data_
DarcyFlowMHOutput(DarcyLMH *flow, Input::Record in_rec)
GenericAssembly< L2DifferenceAssembly > * l2_difference_assembly_
general assembly objects, hold assembly objects of appropriate dimension
void output()
Calculate values for output.
OutputFields output_fields
virtual void prepare_output(Input::Record in_rec)
std::shared_ptr< DarcyLMH::EqFields > flow_eq_fields_
void set_ref_solution(const Input::Record &rec, Field< 3, FieldType > &output_field, std::vector< std::string > reg)
OutputSpecificFields output_specific_fields
bool is_output_specific_fields
Output specific field stuff.
std::shared_ptr< RawOutputEqData > raw_eq_data_
static const Input::Type::Instance & get_input_type(FieldSet &eq_data, const std::string &equation_name)
void prepare_specific_output(Input::Record in_rec)
virtual ~DarcyFlowMHOutput()
bool compute_errors_
Specific experimental error computing.
std::shared_ptr< OutputTime > output_stream
GenericAssembly< OutputInternalFlowAssembly > * output_internal_assembly_
Mixed-hybrid model of linear Darcy flow, possibly unsteady.
std::shared_ptr< EqData > eq_data_
std::shared_ptr< EqFields > eq_fields_
void initialize(std::shared_ptr< OutputTime > stream, Mesh *mesh, Input::Record in_rec, const TimeGovernor &tg)
const Input::Type::Instance & make_output_type_from_record(Input::Type::Record &in_rec, const string &equation_name, const string &aditional_description="")
void output(TimeStep step)
const Input::Type::Instance & make_output_type(const string &equation_name, const string &aditional_description="")
static Input::Type::Record & get_input_type()
const std::string & input_name() const
FieldCommon & description(const string &description)
FieldCommon & flags(FieldFlag::Flags::Mask mask)
FieldCommon & name(const string &name)
std::pair< double, double > limits() const
FieldCommon & units(const UnitSI &units)
Set basic units of the field.
unsigned int n_comp() const
static constexpr Mask equation_result
Match result fields. These are never given by input or copy of input.
static constexpr Mask equation_external_output
Match an output field, that can be also copy of other field.
Container for various descendants of FieldCommonBase.
void set_mesh(const Mesh &mesh)
bool set_time(const TimeStep &time, LimitSide limit_side)
Class template representing a field with values dependent on: point, element, and region.
void set(FieldBasePtr field, double time, std::vector< std::string > region_set_names={"ALL"})
Dedicated class for storing path to input and output files.
void open_stream(Stream &stream) const
void assemble(std::shared_ptr< DOFHandlerMultiDim > dh) override
General assemble methods.
static auto region_id(Mesh &mesh) -> IndexField
static auto subdomain(Mesh &mesh) -> IndexField
Class represents intersection of two elements.
const RegionDB & region_db() const
unsigned int n_elements() const
MixedMeshIntersections & mixed_intersections()
std::vector< IntersectionLocal< 1, 2 > > intersection_storage12_
Stores 1D-2D intersections.
static std::shared_ptr< OutputTime > create_output_stream(const std::string &equation_name, const Input::Record &in_rec, const std::shared_ptr< TimeUnitConversion > &time_unit_conv)
This method delete all object instances of class OutputTime stored in output_streams vector.
unsigned int get_dim(unsigned int idx) const
const std::string & get_label(unsigned int idx) const
std::shared_ptr< TimeUnitConversion > get_unit_conversion() const
Getter for time unit conversion object.
const TimeStep & step(int index=-1) const
Class for representation SI units of Fields.
static UnitSI & dimensionless()
Returns dimensionless unit.
Lumped mixed-hybrid model of linear Darcy flow, possibly unsteady.
#define DARCY_SET_REF_SOLUTION(FTYPE)
Output class for darcy_flow_mh model.
Declaration of class which handles the ordering of degrees of freedom (dof) and mappings between loca...
Global macros to enhance readability and debugging, general constants.
Classes with algorithms for computation of intersections of meshes.
#define WarningOut()
Macro defining 'warning' record of log.
#define MessageOut()
Macro defining 'message' record of log.
Implementation of range helper class.
Helper struct stores data for initizalize descentants of FieldAlgorithmBase.
#define START_TIMER(tag)
Starts a timer with specified tag.