Flow123d
master-f44eb46
|
#include <equation_output.hh>
Classes | |
struct | FieldOutputConfig |
Configuration of output of one field. Pair of OutputTimeSet and DiscreteSpaces. More... | |
Public Member Functions | |
DECLARE_EXCEPTION (ExcFieldNotScalar,<< "Field '"<< FieldCommon::EI_Field::qval<< "' is not scalar in spacedim 3.") | |
EquationOutput () | |
Default constructor. More... | |
~EquationOutput () | |
Destructor. More... | |
const Input::Type::Instance & | make_output_type (const string &equation_name, const string &aditional_description="") |
const Input::Type::Instance & | make_output_type_from_record (Input::Type::Record &in_rec, const string &equation_name, const string &aditional_description="") |
void | initialize (std::shared_ptr< OutputTime > stream, Mesh *mesh, Input::Record in_rec, const TimeGovernor &tg) |
bool | is_field_output_time (const FieldCommon &field, TimeStep step) const |
void | output (TimeStep step) |
OutputMeshBase::ErrorControlFieldFunc | select_error_control_field () |
Selects the error control field out of output field set according to input record. More... | |
Public Member Functions inherited from FieldSet | |
TYPEDEF_ERR_INFO (EI_FieldType, std::string) | |
DECLARE_INPUT_EXCEPTION (ExcUnknownField,<< "Unknown field "<< FieldCommon::EI_Field::qval<< " in the "<< EI_FieldType::val<< ": \n") | |
DECLARE_INPUT_EXCEPTION (ExcFieldExists,<< "Field "<< FieldCommon::EI_Field::qval<< " exists in equation. You cannot set user field of same name.\n") | |
FieldSet () | |
Default constructor. More... | |
Input::Type::Record | make_field_descriptor_type (const std::string &equation_name) const |
void | set_field (const std::string &dest_field_name, FieldCommon &source) |
FieldCommon * | field (const std::string &field_name) const |
FieldCommon & | operator[] (const std::string &field_name) const |
void | set_components (const std::vector< string > &names) |
void | set_mesh (const Mesh &mesh) |
void | set_input_list (Input::Array input_list, const TimeGovernor &tg) |
void | flags_add (FieldFlag::Flags::Mask mask) |
bool | set_time (const TimeStep &time, LimitSide limit_side) |
void | output_type (OutputTime::DiscreteSpace rt) |
void | mark_input_times (const TimeGovernor &tg) |
bool | changed () const |
bool | is_constant (Region reg) const |
bool | is_jump_time () const |
void | cache_reallocate (const ElementCacheMap &cache_map, FieldSet &used_fieldset) |
void | cache_update (ElementCacheMap &cache_map) |
void | set_dependency (FieldSet &used_fieldset) |
void | add_coords_field () |
void | set_surface_depth (std::shared_ptr< SurfaceDepth > surface_depth) |
Set surface depth object to "d" field. More... | |
Range< FieldListAccessor > | fields_range () const |
Returns range of Fields held in field_list. More... | |
const Mesh * | mesh () const |
Returns pointer to mesh. More... | |
std::string | print_dependency () const |
Return order of evaluated fields by dependency and region_idx. More... | |
void | set_default_fieldset () |
Static Public Member Functions | |
static Input::Type::Record & | get_input_type () |
Static Public Member Functions inherited from FieldSet | |
static const Input::Type::Selection & | get_user_field_shape_selection () |
Input selection of user field shape. More... | |
static const Input::Type::Record & | make_user_field_type (const std::string &equation_name) |
Declare input record type of field defined by user. More... | |
Private Member Functions | |
const Input::Type::Selection & | create_output_field_selection (const string &equation_name, const string &additional_description) |
void | read_from_input (Input::Record in_rec, const TimeGovernor &tg) |
void | add_output_times (double begin, double step, double end) |
void | make_output_mesh (bool parallel) |
void | init_field_item (Input::Iterator< Input::Record > it, const TimeGovernor &tg) |
Initialize data of Field given by passed Input::Record. More... | |
Private Attributes | |
std::shared_ptr< OutputTime > | stream_ |
output stream (may be shared by more equation) More... | |
TimeMark::Type | equation_type_ |
The time mark type of the equation. More... | |
TimeMark::Type | equation_fixed_type_ |
The fixed time mark type of the equation. More... | |
OutputTimeSet | common_output_times_ |
The time set used for the fields without explicit time set. More... | |
std::unordered_map< string, FieldOutputConfig > | field_output_times_ |
Time sets of individual fields. More... | |
std::unordered_set< string > | observe_fields_ |
Set of observed fields. The observe points are given within the observe stream. More... | |
std::set< OutputTime::DiscreteSpace > | used_interpolations_ |
Mesh * | mesh_ |
std::shared_ptr< OutputMeshBase > | output_mesh_ |
Output mesh. More... | |
std::shared_ptr< DOFHandlerMultiDim > | dh_ |
Objects for distribution of dofs. More... | |
std::shared_ptr< DOFHandlerMultiDim > | dh_node_ |
GenericAssembly< AssemblyOutputElemData > * | output_elem_data_assembly_ |
general assembly objects, hold assembly objects of appropriate dimension More... | |
GenericAssembly< AssemblyOutputNodeData > * | output_node_data_assembly_ |
GenericAssembly< AssemblyOutputNodeData > * | output_corner_data_assembly_ |
GenericAssemblyObserve< AssemblyObserveOutput > * | observe_output_assembly_ |
Additional Inherited Members | |
Public Types inherited from FieldSet | |
enum | UserFieldShape { scalar , vector , tensor } |
Public Types inherited from FieldFlag | |
typedef FlagArray< FieldFlag > | Flags |
typedef Flags::Mask | Mask |
Static Public Attributes inherited from FieldFlag | |
static constexpr unsigned int | flags_size_ = 3 |
Number of bits used by Field itself. More... | |
static constexpr Mask | equation_input {1 << 0} |
The field is data parameter of the owning equation. (default on) More... | |
static constexpr Mask | declare_input {1 << 1} |
The field can be set from input. The key in input field descriptor is declared. (default on) More... | |
static constexpr Mask | allow_output {1 << 2} |
The field can output. Is part of generated output selection. (default on) More... | |
static constexpr Mask | input_copy = ~declare_input & equation_input |
static constexpr Mask | in_time_term {1 << 8} |
A field is part of time term of the equation. More... | |
static constexpr Mask | in_main_matrix {1 << 9} |
A field is part of main "stiffness matrix" of the equation. More... | |
static constexpr Mask | in_rhs {1 << 10} |
A field is part of the right hand side of the equation. More... | |
static constexpr Mask | equation_result = allow_output & ~declare_input & ~equation_input |
Match result fields. These are never given by input or copy of input. More... | |
static constexpr Mask | equation_external_output = allow_output & input_copy |
Match an output field, that can be also copy of other field. More... | |
Protected Member Functions inherited from FieldSet | |
void | topological_sort (const FieldCommon *f, unsigned int i_reg, std::unordered_set< const FieldCommon * > &used_fields) |
Helper method sort used fields by dependency. More... | |
Protected Attributes inherited from FieldSet | |
std::vector< FieldCommon * > | field_list |
List of all fields. More... | |
const Mesh * | mesh_ |
Pointer to the mesh. More... | |
std::map< unsigned int, std::vector< const FieldCommon * > > | region_field_update_order_ |
FieldCoords | X_ |
Field holds coordinates for computing of FieldFormulas. More... | |
FieldDepth | depth_ |
Field holds surface depth for computing of FieldFormulas. More... | |
A class responsible for check for output times of individual fields and store their values into the connected output stream.
Definition at line 46 of file equation_output.hh.
EquationOutput::EquationOutput | ( | ) |
Default constructor.
Definition at line 82 of file equation_output.cc.
EquationOutput::~EquationOutput | ( | ) |
Destructor.
Definition at line 88 of file equation_output.cc.
|
private |
Add a time grid to the common_output_times.
Definition at line 355 of file equation_output.cc.
|
private |
Creates output selection from the field set.
Definition at line 97 of file equation_output.cc.
EquationOutput::DECLARE_EXCEPTION | ( | ExcFieldNotScalar | , |
<< "Field '"<< FieldCommon::EI_Field::qval<< "' is not scalar in spacedim 3." | |||
) |
|
static |
Input type of the configuration record.
Definition at line 28 of file equation_output.cc.
|
private |
Initialize data of Field given by passed Input::Record.
Definition at line 208 of file equation_output.cc.
void EquationOutput::initialize | ( | std::shared_ptr< OutputTime > | stream, |
Mesh * | mesh, | ||
Input::Record | in_rec, | ||
const TimeGovernor & | tg | ||
) |
Setup the object. Set output stream for field and observe output, input record for configuration of the object and TimeGovernor. The time governor is used to get the equation time mark type, the initial and the end time of the equation.
Definition at line 140 of file equation_output.cc.
bool EquationOutput::is_field_output_time | ( | const FieldCommon & | field, |
TimeStep | step | ||
) | const |
Returns true if
field | is marked for output in the given time |
step. |
Definition at line 248 of file equation_output.cc.
|
private |
Create the output mesh of stream_
OutputTime object. The field set passed in is used to select the field used for adaptivity of the output mesh.
Definition at line 361 of file equation_output.cc.
const IT::Instance & EquationOutput::make_output_type | ( | const string & | equation_name, |
const string & | aditional_description = "" |
||
) |
Make Input::Type for the output record. Particular selection of output fields is created from the contents of *this FieldSet using provided equation name and additional description.
Definition at line 123 of file equation_output.cc.
const IT::Instance & EquationOutput::make_output_type_from_record | ( | Input::Type::Record & | in_rec, |
const string & | equation_name, | ||
const string & | aditional_description = "" |
||
) |
Make Input::Type for the output record. This function enables creating output record for a field set record with additional keys provided in in_rec
.
Definition at line 128 of file equation_output.cc.
void EquationOutput::output | ( | TimeStep | step | ) |
Performs output of the fields marked for output in the time
step. |
Definition at line 261 of file equation_output.cc.
|
private |
Read from the input, set output times and time marks. Must be called after set_stream. TODO: add output_stream times. Optional or always?
Definition at line 170 of file equation_output.cc.
OutputMeshBase::ErrorControlFieldFunc EquationOutput::select_error_control_field | ( | ) |
Selects the error control field out of output field set according to input record.
Definition at line 410 of file equation_output.cc.
|
private |
The time set used for the fields without explicit time set.
Definition at line 136 of file equation_output.hh.
|
private |
Objects for distribution of dofs.
Definition at line 160 of file equation_output.hh.
|
private |
Definition at line 161 of file equation_output.hh.
|
private |
The fixed time mark type of the equation.
Definition at line 134 of file equation_output.hh.
|
private |
The time mark type of the equation.
Definition at line 132 of file equation_output.hh.
|
private |
Time sets of individual fields.
Definition at line 139 of file equation_output.hh.
|
private |
Cached pointer at computational mesh.
Definition at line 154 of file equation_output.hh.
|
private |
Set of observed fields. The observe points are given within the observe stream.
Definition at line 142 of file equation_output.hh.
|
private |
Definition at line 167 of file equation_output.hh.
|
private |
Definition at line 166 of file equation_output.hh.
|
private |
general assembly objects, hold assembly objects of appropriate dimension
Definition at line 164 of file equation_output.hh.
|
private |
Output mesh.
Definition at line 157 of file equation_output.hh.
|
private |
Definition at line 165 of file equation_output.hh.
|
private |
output stream (may be shared by more equation)
Definition at line 130 of file equation_output.hh.
|
private |
Set of interpolations which are used in performed fields.
Allow determine type of output mesh.
Definition at line 149 of file equation_output.hh.