Go to the documentation of this file.
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>)
FieldCommon & units(const UnitSI &units)
Set basic units of the field.
void set_specific_output_python_fields()
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.
void prepare_specific_output(Input::Record in_rec)
#define ASSERT_GT(a, b)
Definition of comparative assert macro (Greater Than) only for debug mode.
void output()
Calculate values for output.
static UnitSI & dimensionless()
Returns dimensionless unit.
const std::string & get_label(unsigned int idx) const
bool set_time(const TimeStep &time, LimitSide limit_side)
GenericAssembly< OutputInternalFlowAssembly > * output_internal_assembly_
void initialize(std::shared_ptr< OutputTime > stream, Mesh *mesh, Input::Record in_rec, const TimeGovernor &tg)
std::shared_ptr< TimeUnitConversion > get_unit_conversion() const
Getter for time unit conversion object.
bool is_output_specific_fields
Output specific field stuff.
const RegionDB & region_db() const
OutputSpecificFields output_specific_fields
DarcyFlowMHOutput(DarcyLMH *flow, Input::Record in_rec)
virtual void prepare_output(Input::Record in_rec)
Dedicated class for storing path to input and output files.
FieldCommon & flags(FieldFlag::Flags::Mask mask)
std::shared_ptr< RawOutputEqData > raw_eq_data_
Declaration of class which handles the ordering of degrees of freedom (dof) and mappings between loca...
Lumped mixed-hybrid model of linear Darcy flow, possibly unsteady.
void open_stream(Stream &stream) const
std::shared_ptr< OutputTime > output_stream
void assemble(std::shared_ptr< DOFHandlerMultiDim > dh) override
General assemble methods.
Field< 3, FieldValue< 3 >::Scalar > pressure_diff
static constexpr Mask equation_external_output
Match an output field, that can be also copy of other field.
Standard quantities for output in DarcyFlowMH.
Field< 3, FieldValue< 3 >::Scalar > region_id
const Input::Type::Instance & make_output_type(const string &equation_name, const string &aditional_description="")
static const Input::Type::Instance & get_input_type(FieldSet &eq_data, const std::string &equation_name)
std::shared_ptr< DiffEqData > diff_eq_data_
OutputFields output_fields
static constexpr Mask equation_result
Match result fields. These are never given by input or copy of input.
Output class for darcy_flow_mh model.
#define DARCY_SET_REF_SOLUTION(FTYPE)
Specific quantities for output in DarcyFlowMH - error estimates etc.
Helper struct stores data for initizalize descentants of FieldAlgorithmBase.
void set(FieldBasePtr field, double time, std::vector< std::string > region_set_names={"ALL"})
Field< 3, FieldValue< 3 >::Scalar > velocity_diff
const TimeStep & step(int index=-1) const
Field< 3, FieldValue< 3 >::Scalar > div_diff
static auto subdomain(Mesh &mesh) -> IndexField
Class for representation SI units of Fields.
static Input::Type::Record & get_input_type()
static const Input::Type::Instance & get_input_type_specific()
Container for various descendants of FieldCommonBase.
std::shared_ptr< EqData > eq_data_
static auto region_id(Mesh &mesh) -> IndexField
void output(TimeStep step)
std::vector< IntersectionLocal< 1, 2 > > intersection_storage12_
Stores 1D-2D intersections.
Global macros to enhance readability and debugging, general constants.
unsigned int get_dim(unsigned int idx) const
void set_mesh(const Mesh &mesh)
#define WarningOut()
Macro defining 'warning' record of log.
GenericAssembly< L2DifferenceAssembly > * l2_difference_assembly_
general assembly objects, hold assembly objects of appropriate dimension
void set_ref_solution(const Input::Record &rec, Field< 3, FieldType > &output_field, std::vector< std::string > reg)
bool compute_errors_
Specific experimental error computing.
Mixed-hybrid model of linear Darcy flow, possibly unsteady.
const Input::Type::Instance & make_output_type_from_record(Input::Type::Record &in_rec, const string &equation_name, const string &aditional_description="")
unsigned int n_comp() const
Field< 3, FieldValue< 3 >::Scalar > subdomain
const std::string & input_name() const
virtual ~DarcyFlowMHOutput()
unsigned int n_elements() const
std::pair< double, double > limits() const
FieldCommon & description(const string &description)
Class template representing a field with values dependent on: point, element, and region.
std::shared_ptr< DarcyLMH::EqFields > flow_eq_fields_
MixedMeshIntersections & mixed_intersections()
#define ASSERT_PTR(ptr)
Definition of assert macro checking non-null pointer (PTR) only for debug mode.
std::shared_ptr< EqFields > eq_fields_
#define START_TIMER(tag)
Starts a timer with specified tag.
FieldCommon & name(const string &name)
Implementation of range helper class.
#define MessageOut()
Macro defining 'message' record of log.
Classes with algorithms for computation of intersections of meshes.