Flow123d  master-c754b67
darcy_flow_mh_output.cc
Go to the documentation of this file.
1 /*!
2  *
3  * Copyright (C) 2015 Technical University of Liberec. All rights reserved.
4  *
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU General Public License version 3 as published by the
7  * Free Software Foundation. (http://www.gnu.org/licenses/gpl-3.0.en.html)
8  *
9  * This program is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
11  * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
12  *
13  *
14  * @file darcy_flow_mh_output.cc
15  * @ingroup flow
16  * @brief Output class for darcy_flow_mh model.
17  * @author Jan Brezina
18  */
19 
20 #include <vector>
21 #include <iostream>
22 #include <sstream>
23 #include <string>
24 
25 #include <system/global_defs.h>
26 
27 #include "flow/darcy_flow_lmh.hh"
28 #include "flow/assembly_lmh.hh"
32 
33 #include "io/output_time.hh"
34 #include "io/observe.hh"
35 #include "system/system.hh"
36 #include "system/sys_profiler.hh"
37 #include "system/index_types.hh"
38 
39 #include "fields/field_set.hh"
40 #include "fem/dofhandler.hh"
41 #include "fields/field_fe.hh"
42 #include "fields/generic_field.hh"
43 
44 #include "mesh/mesh.h"
45 #include "mesh/partitioning.hh"
46 #include "mesh/accessors.hh"
47 #include "mesh/node_accessor.hh"
48 #include "mesh/range_wrapper.hh"
50 
51 // #include "coupling/balance.hh"
54 
55 namespace it = Input::Type;
56 
57 
58 const it::Instance & DarcyFlowMHOutput::get_input_type(FieldSet& eq_data, const std::string &equation_name) {
60  output_fields += eq_data;
61  return output_fields.make_output_type(equation_name, "");
62 }
63 
64 
66 
67  static it::Record& rec = it::Record("Output_DarcyMHSpecific", "Specific Darcy flow MH output.")
69  .declare_key("compute_errors", it::Bool(), it::Default("false"),
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.")
73  .close();
74 
77  "Flow_Darcy_MH_specific",
78  "");
79 }
80 
81 
84 {
85 
86 // *this += field_ele_pressure.name("pressure_p0_old").units(UnitSI().m()) // TODO remove: obsolete field
87 // .flags(FieldFlag::equation_result)
88 // .description("Pressure solution - P0 interpolation.");
89 // *this += field_node_pressure.name("pressure_p1").units(UnitSI().m())
90 // .flags(FieldFlag::equation_result)
91 // .description("Pressure solution - P1 interpolation.");
92 // *this += field_ele_piezo_head.name("piezo_head_p0_old").units(UnitSI().m()) // TODO remove: obsolete field
93 // .flags(FieldFlag::equation_result)
94 // .description("Piezo head solution - P0 interpolation.");
95 // *this += field_ele_flux.name("velocity_p0_old").units(UnitSI().m()) // TODO remove: obsolete field
96 // .flags(FieldFlag::equation_result)
97 // .description("Velocity solution - P0 interpolation.");
98  *this += subdomain.name("subdomain")
101  .description("Subdomain ids of the domain decomposition.");
102  *this += region_id.name("region_id")
105  .description("Region ids.");
106 }
107 
108 
110 : EquationOutput()
111 {
112  *this += pressure_diff.name("pressure_diff").units(UnitSI().m())
114  .description("Error norm of the pressure solution. [Experimental]");
115  *this += velocity_diff.name("velocity_diff").units(UnitSI().m().s(-1))
117  .description("Error norm of the velocity solution. [Experimental]");
118  *this += div_diff.name("div_diff").units(UnitSI().s(-1))
120  .description("Error norm of the divergence of the velocity solution. [Experimental]");
121 }
122 
124 : darcy_flow(flow),
125  mesh_(&darcy_flow->mesh()),
126  compute_errors_(false),
128  l2_difference_assembly_(nullptr),
130 {
132  main_mh_in_rec.val<Input::Record>("output_stream"),
134  prepare_output(main_mh_in_rec);
135 
137  raw_eq_data_ = std::make_shared<RawOutputEqData>();
138  raw_eq_data_->flow_data_ = darcy_flow->eq_data_;
139  raw_eq_data_->time_ = &darcy_flow->time();
140  ASSERT_PTR(raw_eq_data_->flow_data_);
141 
142  auto in_rec_specific = main_mh_in_rec.find<Input::Record>("output_specific");
143  if (in_rec_specific) {
144  in_rec_specific->opt_val("compute_errors", compute_errors_);
145 
146  // raw output
147  int rank;
149  if (rank == 0) {
150 
151  // optionally open raw output file
152  FilePath raw_output_file_path;
153  if (in_rec_specific->opt_val("raw_flow_output", raw_output_file_path))
154  {
155  int mpi_size;
156  MPI_Comm_size(MPI_COMM_WORLD, &mpi_size);
157  if(mpi_size > 1)
158  {
159  WarningOut() << "Raw output is not available in parallel computation. MPI size: " << mpi_size << "\n";
160  }
161  else
162  {
163  MessageOut() << "Opening raw flow output: " << raw_output_file_path << "\n";
164  try {
165  raw_output_file_path.open_stream(raw_eq_data_->raw_output_file);
166  } INPUT_CATCH(FilePath::ExcFileOpen, FilePath::EI_Address_String, (*in_rec_specific))
167 
169  }
170  }
171  }
172 
173  auto fields_array = in_rec_specific->val<Input::Array>("fields");
174  if(fields_array.size() > 0){
176  prepare_specific_output(*in_rec_specific);
177  }
178  }
179 }
180 
182 {
183  // we need to add data from the flow equation at this point, not in constructor of OutputFields
185 
186  // read optional user fields
187  // TODO: check of DarcyLMH type is temporary, remove condition at the same time as removal DarcyMH
188  if(DarcyLMH* d = dynamic_cast<DarcyLMH*>(darcy_flow)) {
189  Input::Array user_fields_arr;
190  if (main_mh_in_rec.opt_val("user_fields", user_fields_arr)) {
191  d->init_user_fields(user_fields_arr, this->output_fields);
192  }
193  }
194 
196 
199 
200  Input::Record in_rec_output = main_mh_in_rec.val<Input::Record>("output");
201  //output_stream->add_admissible_field_names(in_rec_output.val<Input::Array>("fields"));
202  //output_stream->mark_output_times(darcy_flow->time());
204 }
205 
207 {
208  diff_eq_data_ = std::make_shared<DiffEqData>();
209  diff_eq_data_->flow_data_ = darcy_flow->eq_data_;
210 
211  { // init DOF handlers represents element DOFs
212  uint p_elem_component = 1;
213  diff_eq_data_->dh_ = std::make_shared<SubDOFHandlerMultiDim>(diff_eq_data_->flow_data_->dh_, p_elem_component);
214  }
215 
216  // mask 2d elements crossing 1d
217  if (diff_eq_data_->flow_data_->mortar_method_ != DarcyLMH::NoMortar) {
218  diff_eq_data_->velocity_mask.resize(mesh_->n_elements(),0);
220  diff_eq_data_->velocity_mask[ isec.bulk_ele_idx() ]++;
221  }
222  }
223 
225 
226  diff_eq_data_->vel_diff_ptr = create_field_fe<3, FieldValue<3>::Scalar>(diff_eq_data_->dh_);
228  diff_eq_data_->pressure_diff_ptr = create_field_fe<3, FieldValue<3>::Scalar>(diff_eq_data_->dh_);
229  output_specific_fields.pressure_diff.set(diff_eq_data_->pressure_diff_ptr, 0);
230  diff_eq_data_->div_diff_ptr = create_field_fe<3, FieldValue<3>::Scalar>(diff_eq_data_->dh_);
232 
235 
236  if (compute_errors_) {
239  }
240 }
241 
242 /*
243  * Input string of specific output python fields.
244  * Array of 3-items for 1D, 2D, 3D
245  */
246 string spec_fields_input = R"YAML(
247  - source_file: analytical_module.py
248  class: AllValues1D
249  used_fields: ["X"]
250  - source_file: analytical_module.py
251  class: AllValues2D
252  used_fields: ["X"]
253  - source_file: analytical_module.py
254  class: AllValues3D
255  used_fields: ["X"]
256 )YAML";
257 
258 
260 {
261  typedef FieldValue<3>::Scalar ScalarSolution;
262  typedef FieldValue<3>::VectorFixed VectorSolution;
263 
265 
266  // Create separate vectors of 1D, 2D, 3D regions
268  for (unsigned int i=1; i<2*mesh_->region_db().bulk_size(); i+=2) {
269  unsigned int dim = mesh_->region_db().get_dim(i);
270  ASSERT_GT(dim, 0).error("Bulk region with dim==0!\n");
271  reg_by_dim[dim-1].push_back( mesh_->region_db().get_label(i) );
272  }
273 
277  in_arr.copy_to(in_recs);
278 
279  // Create instances of FieldPython and set them to Field objects
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]);
285  }
286 }
287 
288 
289 template <class FieldType>
291  FieldAlgoBaseInitData init_data(output_field.input_name(), output_field.n_comp(), output_field.units(), output_field.limits(), output_field.flags());
292 
293  std::shared_ptr< FieldPython<3, FieldType> > algo = std::make_shared< FieldPython<3, FieldType> >();
294  algo->init_from_input( in_rec, init_data );
295  output_field.set(algo, darcy_flow->time().t(), reg);
296 }
297 
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>)
300 
303 
304 
306 {
307  if (l2_difference_assembly_ != nullptr) delete l2_difference_assembly_;
309 }
310 
311 
312 
313 
314 
315 //=============================================================================
316 // CONVERT SOLUTION, CALCULATE BALANCES, ETC...
317 //=============================================================================
318 
319 
321 {
322  START_TIMER("Darcy fields output");
323 
324  {
325  START_TIMER("post-process output fields");
326 
327  {
328  if (raw_eq_data_->raw_output_file.is_open())
330  }
331  }
332 
333  {
334  START_TIMER("evaluate output fields");
337  }
338 
339  if (compute_errors_)
340  {
341  START_TIMER("compute specific output fields");
342  //compute_l2_difference();
344  }
345 
347  {
348  START_TIMER("evaluate output fields");
351  }
352 
353 
354 }
355 
FieldCommon::units
FieldCommon & units(const UnitSI &units)
Set basic units of the field.
Definition: field_common.hh:153
DarcyFlowMHOutput::set_specific_output_python_fields
void set_specific_output_python_fields()
Definition: darcy_flow_mh_output.cc:259
LimitSide::right
@ right
DarcyFlowMHOutput::OutputSpecificFields::OutputSpecificFields
OutputSpecificFields()
Definition: darcy_flow_mh_output.cc:109
OutputTime::create_output_stream
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.
Definition: output_time.cc:187
Input::Type::Bool
Class for declaration of the input of type Bool.
Definition: type_base.hh:452
DarcyFlowMHOutput::prepare_specific_output
void prepare_specific_output(Input::Record in_rec)
Definition: darcy_flow_mh_output.cc:206
reader_to_storage.hh
ASSERT_GT
#define ASSERT_GT(a, b)
Definition of comparative assert macro (Greater Than) only for debug mode.
Definition: asserts.hh:317
DarcyFlowMHOutput::output
void output()
Calculate values for output.
Definition: darcy_flow_mh_output.cc:320
UnitSI::dimensionless
static UnitSI & dimensionless()
Returns dimensionless unit.
Definition: unit_si.cc:55
Input::ReaderToStorage
Reader for (slightly) modified input files.
Definition: reader_to_storage.hh:96
RegionDB::get_label
const std::string & get_label(unsigned int idx) const
Definition: region.cc:203
FieldSet::set_time
bool set_time(const TimeStep &time, LimitSide limit_side)
Definition: field_set.cc:190
DarcyFlowMHOutput::output_internal_assembly_
GenericAssembly< OutputInternalFlowAssembly > * output_internal_assembly_
Definition: darcy_flow_mh_output.hh:186
EquationOutput::initialize
void initialize(std::shared_ptr< OutputTime > stream, Mesh *mesh, Input::Record in_rec, const TimeGovernor &tg)
Definition: equation_output.cc:140
TimeGovernor::get_unit_conversion
std::shared_ptr< TimeUnitConversion > get_unit_conversion() const
Getter for time unit conversion object.
Definition: time_governor.cc:807
DarcyFlowMHOutput::is_output_specific_fields
bool is_output_specific_fields
Output specific field stuff.
Definition: darcy_flow_mh_output.hh:177
MeshBase::region_db
const RegionDB & region_db() const
Definition: mesh.h:175
DarcyFlowMHOutput::output_specific_fields
OutputSpecificFields output_specific_fields
Definition: darcy_flow_mh_output.hh:172
DarcyFlowMHOutput::DarcyFlowMHOutput
DarcyFlowMHOutput(DarcyLMH *flow, Input::Record in_rec)
Definition: darcy_flow_mh_output.cc:123
assembly_lmh.hh
Input::Record::val
const Ret val(const string &key) const
Definition: accessors_impl.hh:31
EquationBase::time
TimeGovernor & time()
Definition: equation.hh:151
DarcyFlowMHOutput::prepare_output
virtual void prepare_output(Input::Record in_rec)
Definition: darcy_flow_mh_output.cc:181
EquationBase::eq_fieldset
FieldSet & eq_fieldset()
Definition: equation.hh:206
FilePath
Dedicated class for storing path to input and output files.
Definition: file_path.hh:54
field_set.hh
std::vector
Definition: doxy_dummy_defs.hh:7
Input::Type::FileName::output
static FileName output()
The factory function for declaring type FileName for input files.
Definition: type_base.cc:531
system.hh
DarcyFlowMHOutput::mesh_
Mesh * mesh_
Definition: darcy_flow_mh_output.hh:152
FieldCommon::flags
FieldCommon & flags(FieldFlag::Flags::Mask mask)
Definition: field_common.hh:192
DarcyFlowMHOutput::raw_eq_data_
std::shared_ptr< RawOutputEqData > raw_eq_data_
Definition: darcy_flow_mh_output.hh:180
field_fe.hh
dofhandler.hh
Declaration of class which handles the ordering of degrees of freedom (dof) and mappings between loca...
uint
unsigned int uint
Definition: mh_dofhandler.hh:101
darcy_flow_lmh.hh
Lumped mixed-hybrid model of linear Darcy flow, possibly unsteady.
FilePath::open_stream
void open_stream(Stream &stream) const
Definition: file_path.cc:211
DarcyFlowMHOutput::output_stream
std::shared_ptr< OutputTime > output_stream
Definition: darcy_flow_mh_output.hh:174
flow
Definition: output_msh.hh:24
index_types.hh
GenericAssembly::assemble
void assemble(std::shared_ptr< DOFHandlerMultiDim > dh) override
General assemble methods.
Definition: generic_assembly.hh:209
DarcyFlowMHOutput::OutputSpecificFields::pressure_diff
Field< 3, FieldValue< 3 >::Scalar > pressure_diff
Definition: darcy_flow_mh_output.hh:92
FieldFlag::equation_external_output
static constexpr Mask equation_external_output
Match an output field, that can be also copy of other field.
Definition: field_flag.hh:58
DarcyFlowMHOutput::OutputFields
Standard quantities for output in DarcyFlowMH.
Definition: darcy_flow_mh_output.hh:77
DarcyFlowMHOutput::OutputFields::region_id
Field< 3, FieldValue< 3 >::Scalar > region_id
Definition: darcy_flow_mh_output.hh:83
MPI_Comm_rank
#define MPI_Comm_rank
Definition: mpi.h:236
EquationOutput::make_output_type
const Input::Type::Instance & make_output_type(const string &equation_name, const string &aditional_description="")
Definition: equation_output.cc:123
DarcyFlowMHOutput::get_input_type
static const Input::Type::Instance & get_input_type(FieldSet &eq_data, const std::string &equation_name)
Definition: darcy_flow_mh_output.cc:58
Input::Type::Default
Class Input::Type::Default specifies default value of keys of a Input::Type::Record.
Definition: type_record.hh:61
MPI_Comm_size
#define MPI_Comm_size
Definition: mpi.h:235
DarcyFlowInterface::NoMortar
@ NoMortar
Definition: darcy_flow_interface.hh:31
accessors.hh
DarcyFlowMHOutput::diff_eq_data_
std::shared_ptr< DiffEqData > diff_eq_data_
Definition: darcy_flow_mh_output.hh:179
DarcyFlowMHOutput::output_fields
OutputFields output_fields
Definition: darcy_flow_mh_output.hh:171
Input::Record
Accessor to the data with type Type::Record.
Definition: accessors.hh:291
FieldFlag::equation_result
static constexpr Mask equation_result
Match result fields. These are never given by input or copy of input.
Definition: field_flag.hh:55
sys_profiler.hh
darcy_flow_mh_output.hh
Output class for darcy_flow_mh model.
DARCY_SET_REF_SOLUTION
#define DARCY_SET_REF_SOLUTION(FTYPE)
Definition: darcy_flow_mh_output.cc:298
DarcyFlowMHOutput::OutputSpecificFields
Specific quantities for output in DarcyFlowMH - error estimates etc.
Definition: darcy_flow_mh_output.hh:87
generic_assembly.hh
FieldAlgoBaseInitData
Helper struct stores data for initizalize descentants of FieldAlgorithmBase.
Definition: field_algo_base.hh:81
mixed_mesh_intersections.hh
EquationOutput
Definition: equation_output.hh:46
Field::set
void set(FieldBasePtr field, double time, std::vector< std::string > region_set_names={"ALL"})
Definition: field.impl.hh:242
INPUT_CATCH
#define INPUT_CATCH(ExceptionType, AddressEITag, input_accessor)
Definition: accessors.hh:63
DarcyFlowMHOutput::OutputSpecificFields::velocity_diff
Field< 3, FieldValue< 3 >::Scalar > velocity_diff
Definition: darcy_flow_mh_output.hh:91
TimeGovernor::step
const TimeStep & step(int index=-1) const
Definition: time_governor.cc:753
output_time.hh
DarcyFlowMHOutput::OutputSpecificFields::div_diff
Field< 3, FieldValue< 3 >::Scalar > div_diff
Definition: darcy_flow_mh_output.hh:93
DarcyFlowMHOutput::OutputFields::OutputFields
OutputFields()
Definition: darcy_flow_mh_output.cc:82
assembly_flow_output.hh
GenericField::subdomain
static auto subdomain(Mesh &mesh) -> IndexField
Definition: generic_field.impl.hh:57
UnitSI
Class for representation SI units of Fields.
Definition: unit_si.hh:40
EquationOutput::get_input_type
static Input::Type::Record & get_input_type()
Definition: equation_output.cc:28
Input::Record::opt_val
bool opt_val(const string &key, Ret &value) const
Definition: accessors_impl.hh:107
Input::Type::Instance
Helper class that stores data of generic types.
Definition: type_generic.hh:89
Input::Type::Record::declare_key
Record & declare_key(const string &key, std::shared_ptr< TypeBase > type, const Default &default_value, const string &description, TypeBase::attribute_map key_attributes=TypeBase::attribute_map())
Declares a new key of the Record.
Definition: type_record.cc:503
Input::ReaderToStorage::get_root_interface
T get_root_interface() const
Returns the root accessor.
Definition: reader_to_storage.cc:150
DarcyFlowMHOutput::get_input_type_specific
static const Input::Type::Instance & get_input_type_specific()
Definition: darcy_flow_mh_output.cc:65
FieldSet
Container for various descendants of FieldCommonBase.
Definition: field_set.hh:159
mesh.h
Input::Record::find
Iterator< Ret > find(const string &key) const
Definition: accessors_impl.hh:91
DarcyLMH::eq_data_
std::shared_ptr< EqData > eq_data_
Definition: darcy_flow_lmh.hh:422
Input::Type::Record::close
Record & close() const
Close the Record for further declarations of keys.
Definition: type_record.cc:304
generic_field.hh
Input::Type
Definition: balance.hh:41
partitioning.hh
Input::Type::Record
Record type proxy class.
Definition: type_record.hh:182
observe.hh
GenericField::region_id
static auto region_id(Mesh &mesh) -> IndexField
Definition: generic_field.impl.hh:38
EquationOutput::output
void output(TimeStep step)
Definition: equation_output.cc:261
FieldPython
Definition: field_python.hh:52
MixedMeshIntersections::intersection_storage12_
std::vector< IntersectionLocal< 1, 2 > > intersection_storage12_
Stores 1D-2D intersections.
Definition: mixed_mesh_intersections.hh:74
Input::Type::Record::copy_keys
Record & copy_keys(const Record &other)
Copy keys from other record.
Definition: type_record.cc:216
Input::Type::Array
Class for declaration of inputs sequences.
Definition: type_base.hh:339
Input::Array
Accessor to input data conforming to declared Array.
Definition: accessors.hh:566
global_defs.h
Global macros to enhance readability and debugging, general constants.
RegionDB::get_dim
unsigned int get_dim(unsigned int idx) const
Definition: region.cc:219
FieldSet::set_mesh
void set_mesh(const Mesh &mesh)
Definition: field_set.hh:297
WarningOut
#define WarningOut()
Macro defining 'warning' record of log.
Definition: logger.hh:278
DarcyFlowMHOutput::l2_difference_assembly_
GenericAssembly< L2DifferenceAssembly > * l2_difference_assembly_
general assembly objects, hold assembly objects of appropriate dimension
Definition: darcy_flow_mh_output.hh:185
DarcyFlowMHOutput::set_ref_solution
void set_ref_solution(const Input::Record &rec, Field< 3, FieldType > &output_field, std::vector< std::string > reg)
Definition: darcy_flow_mh_output.cc:290
DarcyFlowMHOutput::compute_errors_
bool compute_errors_
Specific experimental error computing.
Definition: darcy_flow_mh_output.hh:155
DarcyLMH
Mixed-hybrid model of linear Darcy flow, possibly unsteady.
Definition: darcy_flow_lmh.hh:132
spec_fields_input
string spec_fields_input
Definition: darcy_flow_mh_output.cc:246
IntersectionLocal< 1, 2 >
EquationOutput::make_output_type_from_record
const Input::Type::Instance & make_output_type_from_record(Input::Type::Record &in_rec, const string &equation_name, const string &aditional_description="")
Definition: equation_output.cc:128
MPI_COMM_WORLD
#define MPI_COMM_WORLD
Definition: mpi.h:123
FieldCommon::n_comp
unsigned int n_comp() const
Definition: field_common.hh:269
Input::format_YAML
@ format_YAML
Definition: reader_to_storage.hh:61
DarcyFlowMHOutput::OutputFields::subdomain
Field< 3, FieldValue< 3 >::Scalar > subdomain
Definition: darcy_flow_mh_output.hh:82
FieldCommon::input_name
const std::string & input_name() const
Definition: field_common.hh:243
DarcyFlowMHOutput::~DarcyFlowMHOutput
virtual ~DarcyFlowMHOutput()
Definition: darcy_flow_mh_output.cc:305
MeshBase::n_elements
unsigned int n_elements() const
Definition: mesh.h:111
FieldCommon::limits
std::pair< double, double > limits() const
Definition: field_common.hh:261
FieldCommon::description
FieldCommon & description(const string &description)
Definition: field_common.hh:128
Field
Class template representing a field with values dependent on: point, element, and region.
Definition: field.hh:92
DarcyFlowMHOutput::flow_eq_fields_
std::shared_ptr< DarcyLMH::EqFields > flow_eq_fields_
Definition: darcy_flow_mh_output.hh:178
Mesh::mixed_intersections
MixedMeshIntersections & mixed_intersections()
Definition: mesh.cc:849
ASSERT_PTR
#define ASSERT_PTR(ptr)
Definition of assert macro checking non-null pointer (PTR) only for debug mode.
Definition: asserts.hh:341
DarcyLMH::eq_fields_
std::shared_ptr< EqFields > eq_fields_
Definition: darcy_flow_lmh.hh:421
Input::Type::Default::optional
static Default optional()
The factory function to make an empty default value which is optional.
Definition: type_record.hh:124
START_TIMER
#define START_TIMER(tag)
Starts a timer with specified tag.
Definition: sys_profiler.hh:115
GenericAssembly< OutputInternalFlowAssembly >
DarcyFlowMHOutput::darcy_flow
DarcyLMH * darcy_flow
Definition: darcy_flow_mh_output.hh:151
Input::Array::copy_to
void copy_to(Container &out) const
Definition: accessors_impl.hh:170
FieldCommon::name
FieldCommon & name(const string &name)
Definition: field_common.hh:121
FieldValue
Definition: field_values.hh:567
range_wrapper.hh
Implementation of range helper class.
MessageOut
#define MessageOut()
Macro defining 'message' record of log.
Definition: logger.hh:275
intersection_local.hh
Classes with algorithms for computation of intersections of meshes.
node_accessor.hh
TimeGovernor::t
double t() const
Definition: time_governor.hh:535