Flow123d  release_3.0.0-1105-g32a483d
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
OutputMSH Class Reference

This class is used for output data to VTK file format. More...

#include <output_msh.hh>

Inheritance diagram for OutputMSH:
Inheritance graph
[legend]
Collaboration diagram for OutputMSH:
Collaboration graph
[legend]

Public Types

typedef OutputTime FactoryBaseType
 
- Public Types inherited from OutputTime
enum  DiscreteSpace {
  NODE_DATA = 0, CORNER_DATA = 1, ELEM_DATA = 2, NATIVE_DATA = 3,
  MESH_DEFINITION = 9, UNDEFINED = 10
}
 
typedef unsigned int DiscreteSpaceFlags
 
typedef std::shared_ptr< ElementDataCacheBaseOutputDataPtr
 
typedef std::vector< OutputDataPtrOutputDataFieldVec
 
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

 OutputMSH ()
 The constructor of this class. We open the output file in first call of write_data. More...
 
 ~OutputMSH ()
 The destructor of this class. More...
 
int write_head (void)
 This method writes head of GMSH (.msh) file format. More...
 
int write_data (void)
 This method writes data to GMSH (.msh) file format for current time. More...
 
int write_tail (void)
 This method should write tail of GMSH (.msh) file format. More...
 
void add_dummy_fields () override
 Complete information about dummy fields that are not in output_data_list_. More...
 
void set_output_data_caches (std::shared_ptr< OutputMeshBase > mesh_ptr) override
 
- Public Member Functions inherited from OutputTime
 OutputTime ()
 Default constructor. Only for testing. More...
 
virtual void init_from_input (const std::string &equation_name, const Input::Record &in_rec, std::string unit_str)
 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::Arrayget_time_set_array ()
 
Input::Iterator< Input::Recordget_output_mesh_record ()
 
void write_time_frame ()
 
std::shared_ptr< Observeobserve (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...
 
std::shared_ptr< OutputMeshBaseget_output_mesh_ptr ()
 
void update_time (double field_time)
 
template<typename T >
ElementDataCache< T > & prepare_compute_data (std::string field_name, DiscreteSpace space_type, unsigned int n_rows, unsigned int n_cols)
 
bool is_parallel () const
 
int rank () const
 
int n_proc () const
 

Static Public Member Functions

static const Input::Type::Recordget_input_type ()
 The definition of input record for gmsh file format. More...
 
- Static Public Member Functions inherited from OutputTime
static const Input::Type::Recordget_input_type ()
 The specification of output stream. More...
 
static Input::Type::Abstractget_input_format_type ()
 The specification of output file format. More...
 
static std::shared_ptr< OutputTimecreate_output_stream (const std::string &equation_name, const Input::Record &in_rec, std::string unit_str)
 This method delete all object instances of class OutputTime stored in output_streams vector. More...
 

Private Member Functions

void write_msh_header (void)
 This function write header of GMSH (.msh) file format. More...
 
void write_msh_geometry (void)
 This function writes geometry (position of nodes) to GMSH (.msh) file format. More...
 
void write_msh_topology (void)
 This function writes topology (connection of nodes) to the GMSH (.msh) file format. More...
 
void write_msh_ascii_data (std::shared_ptr< ElementDataCache< unsigned int >> id_cache, OutputDataPtr output_data, bool discont=false)
 This function writes ascii data to GMSH (.msh) output file. More...
 
void write_node_data (OutputDataPtr output_data)
 This function write all data on nodes to output file. This function is used for static and dynamic data. More...
 
void write_corner_data (OutputDataPtr output_data)
 writes ElementNode data ascii GMSH (.msh) output file. More...
 
void write_elem_data (OutputDataPtr output_data)
 This function write all data on elements to output file. This function is used for static and dynamic data. More...
 
void fix_base_file_name (void)
 This method add right suffix to .msh GMSH file. More...
 

Private Attributes

bool header_written
 
std::vector< std::vector< OutputDataPtr > > dummy_data_list_
 
std::shared_ptr< ElementDataCache< unsigned int > > node_ids_
 Vector gets ids of nodes. More...
 
std::shared_ptr< ElementDataCache< unsigned int > > elem_ids_
 Vector gets ids of elements. More...
 
std::shared_ptr< ElementDataCache< unsigned int > > region_ids_
 Vector gets ids of regions. More...
 
std::shared_ptr< ElementDataCache< int > > partitions_
 Vector gets partitions of elements. More...
 

Static Private Attributes

static const int registrar
 Registrar of class to factory. More...
 

Additional Inherited Members

- Static Public Attributes inherited from OutputTime
static const unsigned int N_DISCRETE_SPACES = 4
 
- Protected Member Functions inherited from OutputTime
void fix_main_file_extension (std::string extension)
 
int get_parallel_current_step ()
 Return unique value current step for parallel or serial output. More...
 
void gather_output_data (void)
 Collect data of individual processes to serial data on master (0th) process. More...
 
- Protected Attributes inherited from OutputTime
int rank_
 
int n_proc_
 
OutputDataFieldVec output_data_vec_ [N_DISCRETE_SPACES]
 
int current_step
 
double time
 
double write_time
 
Input::Record input_record_
 
ofstream _base_file
 
FilePath _base_filename
 
std::string equation_name_
 
int precision_
 
std::shared_ptr< OutputMeshBaseoutput_mesh_
 Output mesh. More...
 
std::shared_ptr< Observeobserve_
 
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...
 
string unit_string_
 String representation of time unit. 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...
 

Detailed Description

This class is used for output data to VTK file format.

Definition at line 30 of file output_msh.hh.

Member Typedef Documentation

Definition at line 32 of file output_msh.hh.

Constructor & Destructor Documentation

OutputMSH::OutputMSH ( )

The constructor of this class. We open the output file in first call of write_data.

Definition at line 117 of file output_msh.cc.

OutputMSH::~OutputMSH ( )

The destructor of this class.

Definition at line 127 of file output_msh.cc.

Member Function Documentation

void OutputMSH::add_dummy_fields ( )
overridevirtual

Complete information about dummy fields that are not in output_data_list_.

Reimplemented from OutputTime.

Definition at line 359 of file output_msh.cc.

void OutputMSH::fix_base_file_name ( void  )
private

This method add right suffix to .msh GMSH file.

const Record & OutputMSH::get_input_type ( )
static

The definition of input record for gmsh file format.

Definition at line 106 of file output_msh.cc.

void OutputMSH::set_output_data_caches ( std::shared_ptr< OutputMeshBase mesh_ptr)
overridevirtual

Set shared pointers of output data caches.

Reimplemented from OutputTime.

Definition at line 386 of file output_msh.cc.

void OutputMSH::write_corner_data ( OutputDataPtr  output_data)
private

writes ElementNode data ascii GMSH (.msh) output file.

Definition at line 246 of file output_msh.cc.

Here is the caller graph for this function:

int OutputMSH::write_data ( void  )
virtual

This method writes data to GMSH (.msh) file format for current time.

Returns
This function returns 1

Implements OutputTime.

Definition at line 307 of file output_msh.cc.

void OutputMSH::write_elem_data ( OutputDataPtr  output_data)
private

This function write all data on elements to output file. This function is used for static and dynamic data.

Parameters
[in]timeThe time from start
[in]stepThe number of steps from start

Definition at line 269 of file output_msh.cc.

Here is the caller graph for this function:

int OutputMSH::write_head ( void  )

This method writes head of GMSH (.msh) file format.

Returns
This function returns 1

Definition at line 292 of file output_msh.cc.

Here is the caller graph for this function:

void OutputMSH::write_msh_ascii_data ( std::shared_ptr< ElementDataCache< unsigned int >>  id_cache,
OutputDataPtr  output_data,
bool  discont = false 
)
private

This function writes ascii data to GMSH (.msh) output file.

Parameters
[in]id_cacheData cache of node or element ids.
[in]output_dataThe pointer at structure storing pointer at own data.
[in]discontFlag determines continuous or discontinuous mesh.

Definition at line 195 of file output_msh.cc.

Here is the caller graph for this function:

void OutputMSH::write_msh_geometry ( void  )
private

This function writes geometry (position of nodes) to GMSH (.msh) file format.

Definition at line 145 of file output_msh.cc.

Here is the caller graph for this function:

void OutputMSH::write_msh_header ( void  )
private

This function write header of GMSH (.msh) file format.

/**

Definition at line 135 of file output_msh.cc.

Here is the caller graph for this function:

void OutputMSH::write_msh_topology ( void  )
private

This function writes topology (connection of nodes) to the GMSH (.msh) file format.

Definition at line 162 of file output_msh.cc.

Here is the caller graph for this function:

void OutputMSH::write_node_data ( OutputDataPtr  output_data)
private

This function write all data on nodes to output file. This function is used for static and dynamic data.

Parameters
[in]timeThe time from start
[in]stepThe number of steps from start

Definition at line 221 of file output_msh.cc.

Here is the caller graph for this function:

int OutputMSH::write_tail ( void  )

This method should write tail of GMSH (.msh) file format.

It is stupid file format. It doesn't write anything special at the end of the file

Returns
This function returns 1

Definition at line 352 of file output_msh.cc.

Here is the caller graph for this function:

Member Data Documentation

std::vector< std::vector< OutputDataPtr > > OutputMSH::dummy_data_list_
private

EquationOutput force output of all output fields at the time zero. We keep this list to perform single elemnent/node output in order to have correct behavior in GMSH.

Definition at line 93 of file output_msh.hh.

std::shared_ptr<ElementDataCache<unsigned int> > OutputMSH::elem_ids_
private

Vector gets ids of elements.

Definition at line 154 of file output_msh.hh.

bool OutputMSH::header_written
private

Definition at line 87 of file output_msh.hh.

std::shared_ptr<ElementDataCache<unsigned int> > OutputMSH::node_ids_
private

Vector gets ids of nodes.

Definition at line 152 of file output_msh.hh.

std::shared_ptr<ElementDataCache<int> > OutputMSH::partitions_
private

Vector gets partitions of elements.

Definition at line 158 of file output_msh.hh.

std::shared_ptr<ElementDataCache<unsigned int> > OutputMSH::region_ids_
private

Vector gets ids of regions.

Definition at line 156 of file output_msh.hh.

const int OutputMSH::registrar
staticprivate
Initial value:
= Input::register_class< OutputMSH >("gmsh") +

Registrar of class to factory.

Definition at line 85 of file output_msh.hh.


The documentation for this class was generated from the following files: