Flow123d
master-130ae5c
|
The class for outputting data during time. More...
#include <output_time.hh>
Public Types | |
enum | DiscreteSpace { NODE_DATA = 0 , CORNER_DATA = 1 , ELEM_DATA = 2 , NATIVE_DATA = 3 , MESH_DEFINITION = 9 , UNDEFINED = 10 } |
typedef std::array< bool, 4 > | DiscreteSpaceFlags |
typedef std::shared_ptr< ElementDataCacheBase > | OutputDataPtr |
typedef std::vector< OutputDataPtr > | OutputDataFieldVec |
typedef std::pair< std::string, unsigned int > | FieldInterpolationData |
pair of field name and shape (= Scalar 1, Vector 3, Tensor 9) More... | |
typedef std::map< DiscreteSpace, std::vector< FieldInterpolationData > > | InterpolationMap |
Public Member Functions | |
OutputTime () | |
Default constructor. Only for testing. More... | |
virtual void | init_from_input (const std::string &equation_name, const Input::Record &in_rec, const std::shared_ptr< TimeUnitConversion > &time_unit_conv) |
Constructor of OutputTime object. It opens base file for writing. More... | |
void | set_stream_precision (std::ofstream &stream) |
virtual | ~OutputTime () |
Destructor of OutputTime. It doesn't do anything, because all necessary destructors will be called in destructor of Output. More... | |
Input::Iterator< Input::Array > | get_time_set_array () |
Input::Iterator< Input::Record > | get_output_mesh_record () |
void | write_time_frame () |
std::shared_ptr< Observe > | observe (Mesh *mesh) |
void | clear_data (void) |
Clear data for output computed by method compute_field_data . More... | |
bool | is_output_data_caches_init () |
bool | enable_refinement () |
Return auxiliary flag enable_refinement_. More... | |
virtual void | set_output_data_caches (std::shared_ptr< OutputMeshBase > mesh_ptr) |
std::shared_ptr< OutputMeshBase > | get_output_mesh_ptr () |
void | update_time (double field_time) |
template<typename T > | |
OutputDataPtr | prepare_compute_data (std::string field_name, DiscreteSpace space_type, unsigned int n_rows, unsigned int n_cols, std::string fe_type="", unsigned int n_dofs_per_element=1) |
bool | is_parallel () const |
int | rank () const |
int | n_proc () const |
double | registered_time () const |
Getter to registered time. More... | |
Static Public Member Functions | |
static const Input::Type::Record & | get_input_type () |
The specification of output stream. More... | |
static Input::Type::Abstract & | get_input_format_type () |
The specification of output file format. More... | |
static bool | discrete_flags_defined (DiscreteSpaceFlags &dsf) |
Check if at least one of discrete space flag is set to true. More... | |
static DiscreteSpaceFlags | empty_discrete_flags () |
Check if at least one of discrete space flag is set to true. More... | |
static void | set_discrete_flag (DiscreteSpaceFlags &dsf, DiscreteSpace d_space) |
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. More... | |
Static Public Attributes | |
static const unsigned int | N_DISCRETE_SPACES = 4 |
Protected Member Functions | |
void | fix_main_file_extension (std::string extension) |
int | get_parallel_current_step () |
Return unique value current step for parallel or serial output. More... | |
virtual int | write_data (void)=0 |
Virtual method for writing data to output file. More... | |
void | gather_output_data (void) |
Collect data of individual processes to serial data on master (0th) process. More... | |
Protected Attributes | |
int | rank_ |
int | n_proc_ |
OutputDataFieldVec | output_data_vec_ [N_DISCRETE_SPACES] |
int | current_step |
double | registered_time_ |
double | write_time |
Input::Record | input_record_ |
ofstream | _base_file |
FilePath | _base_filename |
std::string | equation_name_ |
int | precision_ |
std::shared_ptr< OutputMeshBase > | output_mesh_ |
Output mesh. More... | |
std::shared_ptr< Observe > | observe_ |
bool | enable_refinement_ |
Auxiliary flag for refinement enabling, due to gmsh format. More... | |
bool | parallel_ |
Parallel or serial version of file format (parallel has effect only for VTK) More... | |
std::shared_ptr< TimeUnitConversion > | time_unit_converter |
Time unit conversion object from the equation time governor. More... | |
std::shared_ptr< ElementDataCache< double > > | nodes_ |
Vector of node coordinates. [spacedim x n_nodes]. More... | |
std::shared_ptr< ElementDataCache< unsigned int > > | connectivity_ |
Vector maps the nodes to their coordinates in vector nodes_ . More... | |
std::shared_ptr< ElementDataCache< unsigned int > > | offsets_ |
Vector of offsets of node indices of elements. Maps elements to their nodes in connectivity_. More... | |
The class for outputting data during time.
This class is descendant of Output class. This class is used for outputting data varying in time. Own output to specific file formats is done at other places to. See output_vtk.cc and output_msh.cc.
Definition at line 51 of file output_time.hh.
typedef std::array<bool,4> OutputTime::DiscreteSpaceFlags |
Holds flags if different output types are switched on / switched off.
Output types are in order: NODE_DATA=0, CORNER_DATA=1, ELEM_DATA=2, NATIVE_DATA=3
Definition at line 122 of file output_time.hh.
typedef std::pair< std::string, unsigned int > OutputTime::FieldInterpolationData |
pair of field name and shape (= Scalar 1, Vector 3, Tensor 9)
Definition at line 148 of file output_time.hh.
Definition at line 149 of file output_time.hh.
Definition at line 145 of file output_time.hh.
typedef std::shared_ptr<ElementDataCacheBase> OutputTime::OutputDataPtr |
Map field name to its OutputData object.
Definition at line 144 of file output_time.hh.
Enumerator | |
---|---|
NODE_DATA | |
CORNER_DATA | |
ELEM_DATA | |
NATIVE_DATA | |
MESH_DEFINITION | |
UNDEFINED |
Definition at line 108 of file output_time.hh.
OutputTime::OutputTime | ( | ) |
Default constructor. Only for testing.
Definition at line 72 of file output_time.cc.
|
virtual |
Destructor of OutputTime. It doesn't do anything, because all necessary destructors will be called in destructor of Output.
Definition at line 109 of file output_time.cc.
void OutputTime::clear_data | ( | void | ) |
Clear data for output computed by method compute_field_data
.
Definition at line 249 of file output_time.cc.
|
static |
This method delete all object instances of class OutputTime stored in output_streams vector.
This method tries to create new instance of OutputTime according record in configuration file.
Definition at line 187 of file output_time.cc.
|
inlinestatic |
Check if at least one of discrete space flag is set to true.
Definition at line 125 of file output_time.hh.
|
inlinestatic |
Check if at least one of discrete space flag is set to true.
Definition at line 130 of file output_time.hh.
|
inline |
Return auxiliary flag enable_refinement_.
Definition at line 188 of file output_time.hh.
|
protected |
Change main filename to have prescribed extension.
Definition at line 153 of file output_time.cc.
|
protected |
Collect data of individual processes to serial data on master (0th) process.
Definition at line 265 of file output_time.cc.
|
static |
The specification of output file format.
Definition at line 65 of file output_time.cc.
|
static |
The specification of output stream.
Definition at line 38 of file output_time.cc.
std::shared_ptr< OutputMeshBase > OutputTime::get_output_mesh_ptr | ( | ) |
Get shared pointer of output_mesh_
.
Definition at line 141 of file output_time.cc.
Input::Iterator< Input::Record > OutputTime::get_output_mesh_record | ( | ) |
Return the input record for the output mesh of the output stream.
Definition at line 128 of file output_time.cc.
|
protected |
Return unique value current step for parallel or serial output.
Respect value of parallel_
flag:
current_step
Definition at line 258 of file output_time.cc.
Input::Iterator< Input::Array > OutputTime::get_time_set_array | ( | ) |
Return the input array for the output time set of the output stream.
Definition at line 123 of file output_time.cc.
|
virtual |
Constructor of OutputTime object. It opens base file for writing.
[in] | equation_name | The name of equation, used for forming output file name. |
[in] | in_rec | The reference on the input record. |
[in] | time_unit_conv | Time unit convertor (converts time unit of the output data). |
Reimplemented in OutputVTK.
Definition at line 84 of file output_time.cc.
|
inline |
Return if shared pointer to output data caches are created.
Definition at line 183 of file output_time.hh.
|
inline |
Return if output is serial or parallel
Definition at line 231 of file output_time.hh.
|
inline |
Return number of processes
Definition at line 245 of file output_time.hh.
Getter of the observe object.
Definition at line 234 of file output_time.cc.
OutputTime::OutputDataPtr OutputTime::prepare_compute_data | ( | std::string | field_name, |
DiscreteSpace | space_type, | ||
unsigned int | n_rows, | ||
unsigned int | n_cols, | ||
std::string | fe_type = "" , |
||
unsigned int | n_dofs_per_element = 1 |
||
) |
Prepare data for computing field values.
Method:
field_name | Quantity name of founding ElementDataCache |
space_type | Output discrete space |
n_rows | Count of rows of data cache (used only if new cache is created) |
n_cols | Count of columns of data cache (used only if new cache is created) |
size | Size of data cache (used only if new cache is created and only for native data) |
fe_type | Finite element type (used only for native data) |
n_dofs_per_element | Number of DOFs per element (used only for native data) |
supposing that everything is output at the first step !
Definition at line 78 of file output_time.impl.hh.
|
inline |
Return rank of actual process
Definition at line 238 of file output_time.hh.
|
inline |
Getter to registered time.
Definition at line 250 of file output_time.hh.
|
inlinestatic |
|
virtual |
Set shared pointers of output data caches.
Set shared pointer of output_mesh_
(temporary solution).
Reimplemented in OutputMSH.
Definition at line 133 of file output_time.cc.
void OutputTime::set_stream_precision | ( | std::ofstream & | stream | ) |
Common method to set scientific format and precision for output of floating point values to ASCII streams.
Definition at line 102 of file output_time.cc.
void OutputTime::update_time | ( | double | field_time | ) |
Update the last time is actual time
is less than field_time
Definition at line 146 of file output_time.cc.
|
protectedpure virtual |
void OutputTime::write_time_frame | ( | ) |
Write all data registered as a new time frame.
Definition at line 203 of file output_time.cc.
|
protected |
Base output stream
Definition at line 322 of file output_time.hh.
|
protected |
Name of base output file
Definition at line 327 of file output_time.hh.
|
protected |
Vector maps the nodes to their coordinates in vector nodes_
.
Definition at line 357 of file output_time.hh.
|
protected |
Current step
Definition at line 302 of file output_time.hh.
|
protected |
Auxiliary flag for refinement enabling, due to gmsh format.
Definition at line 346 of file output_time.hh.
|
protected |
Name of the equation owning the output stream. Usually the balance equation. Used for forming default output file name and the name of observe output file.
Definition at line 333 of file output_time.hh.
|
protected |
Record for current output stream
Definition at line 317 of file output_time.hh.
|
static |
Types of reference data
NATIVE_DATA represents output of FieldFE in our own format, Paraview ignores this format.
Definition at line 107 of file output_time.hh.
|
protected |
Cached MPI number of processes (is tested in methods)
Definition at line 291 of file output_time.hh.
|
protected |
Vector of node coordinates. [spacedim x n_nodes].
Definition at line 355 of file output_time.hh.
|
protected |
Definition at line 343 of file output_time.hh.
|
protected |
Vector of offsets of node indices of elements. Maps elements to their nodes in connectivity_.
Definition at line 359 of file output_time.hh.
|
protected |
Registered output data. Single map for every value of DiscreteSpace corresponding to nodes, elements and corners.
Definition at line 297 of file output_time.hh.
|
protected |
Output mesh.
Definition at line 341 of file output_time.hh.
|
protected |
Parallel or serial version of file format (parallel has effect only for VTK)
Definition at line 349 of file output_time.hh.
|
protected |
Number of decimal digits used for output of double values.
Definition at line 338 of file output_time.hh.
|
protected |
Cached MPI rank of process (is tested in methods)
Definition at line 286 of file output_time.hh.
|
protected |
The newest time of registered data
Definition at line 307 of file output_time.hh.
|
protected |
Time unit conversion object from the equation time governor.
Definition at line 352 of file output_time.hh.
|
protected |
The last time, when data was wrote to this stream
Definition at line 312 of file output_time.hh.