40 using namespace Input::Type;
43 =
Record(
"OutputStream",
"Parameters of output.")
46 "File path to the connected output file.")
49 "Format of output stream and possible parameters.")
51 "Time interval between outputs.\n"
52 "Regular grid of output time points starts at the initial time of the equation and ends at the end time which must be specified.\n"
53 "The start time and the end time are always added. ")
55 Default::read_time(
"List containing the initial time of the equation. \n You can prescribe an empty list to override this behavior."),
56 "Explicit array of output time points (can be combined with 'time_step'.")
58 "Add all input time points of the equation, mentioned in the 'input_fields' list, also as the output points.");
63 "Format of output stream and possible parameters.");
75 : input_record_(in_rec)
112 if(this->
_base_filename.compare(this->_base_filename.size()-extension.size(), extension.size(), extension) != 0) {
153 xprintf(
Warn,
"Unsupported file format, using default VTK\n");
170 for (
auto field_full_enum: field_ids) {
205 for(
auto it = tg.
marks().
begin(input_mark_type); it != tg.
marks().
end(input_mark_type); ++it)
206 mark_times.push_back(it->time());
207 for(
double time : mark_times)
219 if (this->
rank == 0) {
223 xprintf(
MsgLog,
"Write output to output stream: %s for time: %f\n",
244 #define INSTANCE_register_field(spacedim, value) \
245 template void OutputTime::register_data<spacedim, value> \
246 (const DiscreteSpace ref_type, Field<spacedim, value> &field);
248 #define INSTANCE_register_multifield(spacedim, value) \
249 template void OutputTime::register_data<spacedim, value> \
250 (const DiscreteSpace ref_type, MultiField<spacedim, value> &field);
253 #define INSTANCE_OutputData(spacedim, value) \
254 template class OutputData<value>;
257 #define INSTANCE_DIM_DEP_VALUES( MACRO, dim_from, dim_to) \
258 MACRO(dim_from, FieldValue<dim_to>::VectorFixed ) \
259 MACRO(dim_from, FieldValue<dim_to>::TensorFixed )
261 #define INSTANCE_TO_ALL( MACRO, dim_from) \
262 MACRO(dim_from, FieldValue<0>::Enum ) \
263 MACRO(dim_from, FieldValue<0>::EnumVector) \
264 MACRO(dim_from, FieldValue<0>::Integer) \
265 MACRO(dim_from, FieldValue<0>::Scalar) \
266 MACRO(dim_from, FieldValue<0>::Vector) \
267 INSTANCE_DIM_DEP_VALUES(MACRO, dim_from, 2) \
268 INSTANCE_DIM_DEP_VALUES(MACRO, dim_from, 3) \
270 #define INSTANCE_ALL(MACRO) \
271 INSTANCE_TO_ALL( MACRO, 3) \
272 INSTANCE_TO_ALL( MACRO, 2)
static Input::Type::AbstractRecord input_format_type
The specification of output file format.
Input::Record input_record_
#define INSTANCE_register_multifield(spacedim, value)
void fix_main_file_extension(std::string extension)
TimeMarks::iterator begin(TimeMark::Type mask=TimeMark::every_type) const
Iterator for the begin mimics container-like of TimeMarks.
static Input::Type::Record input_type
The specification of output stream.
void add_admissible_field_names(const Input::Array &in_array)
Registers names of output fields that can be written using this stream.
#define INSTANCE_ALL(MACRO)
static Input::Type::Record input_type
The definition of input record for gmsh file format.
TimeMark::Type type_output()
OutputTime()
Default constructor. Only for testing.
Basic time management functionality for unsteady (and steady) solvers (class Equation).
static TimeMarks & marks()
static Input::Type::Record input_type
The definition of input record for vtk file format.
std::map< std::string, DiscreteSpaceFlags > output_names
unsigned int DiscreteSpaceFlags
void add(const TimeMark &mark)
static OutputTime * create_output_stream(const Input::Record &in_rec)
This method delete all object instances of class OutputTime stored in output_streams vector...
void add_time_marks_grid(double step, TimeMark::Type mark_type=TimeMark::none_type) const
TimeMark::Type equation_fixed_mark_type() const
TimeMark::Type equation_mark_type() const
#define START_TIMER(tag)
Starts a timer with specified tag.
This class is used for output data to VTK file format.
Input::AbstractRecord format_record_
virtual ~OutputTime()
Destructor of OutputTime. It doesn't do anything, because all necessary destructors will be called in...
void clear_data(void)
Clear data for output computed by method compute_field_data.
The class for outputting data during time.
void mark_output_times(const TimeGovernor &tg)
Dedicated class for storing path to input and output files.
TimeMark::Type type_input()
virtual int write_data(void)=0
Virtual method for writing data to output file.
#define INSTANCE_register_field(spacedim, value)
OutputDataFieldVec output_data_vec_[N_DISCRETE_SPACES]
Class used for marking specified times at which some events occur.
TimeMarks::iterator end(TimeMark::Type mask=TimeMark::every_type) const
Iterator for the end mimics container-like of TimeMarks.
This class is used for output data to VTK file format.