COOLFluiD  Release kernel
COOLFluiD is a Collaborative Simulation Environment (CSE) focused on complex MultiPhysics simulations.
Classes | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Reader Class Reference

#include <Reader.hpp>

Inherits MeshReader, and Shared.

Classes

struct  Field
 
struct  RegionData
 

Public Member Functions

 Reader (const std::string &name)
 constructor More...
 
virtual std::string get_format ()
 
virtual std::vector< std::string > get_extensions ()
 
- Public Member Functions inherited from MeshReader
 MeshReader (const std::string &name)
 
virtual ~MeshReader ()
 Virtual destructor. More...
 
void read_mesh_into (const common::URI &path, Mesh &mesh)
 
virtual void execute ()
 execute the action More...
 
void signal_read (common::SignalArgs &node)
 
void signature_read (common::SignalArgs &node)
 
- Public Member Functions inherited from Action
 Action (const std::string &name)
 
virtual Actioncreate_action (const std::string &action_provider, const std::string &name)
 
void signal_execute (common::SignalArgs &node)
 signal to execute this action More...
 
- Public Member Functions inherited from IAction
virtual ~IAction ()
 
- Public Member Functions inherited from Component
 Component (const std::string &name)
 
virtual ~Component ()
 Virtual destructor. More...
 
const std::string & name () const
 Access the name of the component. More...
 
void rename (const std::string &name)
 Rename the component. More...
 
URI uri () const
 Construct the full path. More...
 
void complete_path (URI &path) const
 
Handle< Componentaccess_component (const URI &path) const
 
Handle< Componentaccess_component_checked (const URI &path)
 
Handle< Component const > access_component_checked (const URI &path) const
 
Handle< Componenthandle ()
 Get a handle to the component. More...
 
Handle< Component const > handle () const
 
template<typename ComponentT >
Handle< ComponentT > handle ()
 
template<typename ComponentT >
Handle< ComponentT const > handle () const
 
Handle< Componentparent () const
 
Handle< Component const > root () const
 
Handle< Componentroot ()
 
Handle< Componentget_child (const std::string &name)
 
Handle< Component const > get_child (const std::string &name) const
 
Handle< Componentget_child_checked (const std::string &name)
 
Handle< Component const > get_child_checked (const std::string &name) const
 
Handle< Componentcreate_component (const std::string &name, const std::string &builder)
 Build a (sub)component of this component using the extended type_name of the component. More...
 
template<typename T >
Handle< T > create_component (const std::string &name)
 Create a (sub)component of this component automatically cast to the specified type. More...
 
template<typename T >
Handle< T > create_static_component (const std::string &name)
 Create a static "always there" subcomponent. More...
 
Componentadd_component (const boost::shared_ptr< Component > &subcomp)
 Add the passed component as a subcomponent. More...
 
void add_link (Component &linked_component)
 
boost::shared_ptr< Componentremove_component (const std::string &name)
 Remove a (sub)component of this component. More...
 
boost::shared_ptr< Componentremove_component (Component &subcomp)
 Remove a (sub)component of this component. More...
 
void clear ()
 Remove all sub-components of this component, except for the static ones. More...
 
void move_to (Component &to_parent)
 
std::string tree (bool basic_mode=false, Uint depth=0, Uint recursion_level=0) const
 
std::string info (const std::string &what=std::string("cospt")) const
 
size_t count_children () const
 
virtual std::string derived_type_name () const =0
 
PropertyListproperties ()
 
const PropertyListproperties () const
 
OptionListoptions ()
 
const OptionListoptions () const
 
void reset_options ()
 Reset all options to their default value. More...
 
void configure_option_recursively (const std::string &optname, const boost::any &val)
 
Componentmark_basic ()
 marks this component as basic. More...
 
template<typename ComponentT >
void put_components (std::vector< boost::shared_ptr< ComponentT > > &vec, const bool recurse)
 
template<typename ComponentT >
void put_components (std::vector< boost::shared_ptr< ComponentT const > > &vec, const bool recurse) const
 
template<>
void put_components (std::vector< boost::shared_ptr< Component > > &vec, const bool recurse)
 
template<>
void put_components (std::vector< boost::shared_ptr< Component const > > &vec, const bool recurse) const
 
Component::iterator begin ()
 The begin iterator for a range containing Components. More...
 
Component::iterator end ()
 The end iterator for a range containing Components. More...
 
Component::const_iterator begin () const
 The begin iterator for a range containing Components (const version) More...
 
Component::const_iterator end () const
 The end iterator for a range containing Components (const version) More...
 
Component::iterator recursive_begin ()
 The begin iterator for a recursive range containing Components. More...
 
Component::iterator recursive_end ()
 The end iterator for a recursive range containing Components. More...
 
Component::const_iterator recursive_begin () const
 The begin iterator for a recursive range containing Components (const version) More...
 
Component::const_iterator recursive_end () const
 The end iterator for a recursive range containing Components (const version) More...
 
template<typename T >
Handle< T > create_component (const std::string &name, const std::string &builder)
 Create a component using the reduced builder name. More...
 
void signal_configure (SignalArgs &args)
 configures all the options on this class More...
 
void signal_create_component (SignalArgs &args)
 creates a component from this component More...
 
void signal_delete_component (SignalArgs &args)
 delete this component More...
 
void signal_move_component (SignalArgs &args)
 moves a component from this component to another More...
 
void signal_list_tree (SignalArgs &args) const
 lists the sub components and puts them on the xml_tree More...
 
void signal_list_tree_recursive (SignalArgs &args) const
 prints tree recursively More...
 
void signal_list_properties (SignalArgs &args) const
 lists the properties of this component More...
 
void signal_list_options (SignalArgs &args) const
 lists the properties of this component More...
 
void signal_list_options_recursive (SignalArgs &args) const
 prints all options recursive More...
 
void signal_list_signals (SignalArgs &args) const
 lists the signals of this component More...
 
void signal_list_signals_recursive (SignalArgs &args) const
 prints all signals recursive More...
 
void signal_print_info (SignalArgs &args) const
 gets info on this component More...
 
void signal_print_tree (SignalArgs &args) const
 signal to print the tree More...
 
void signature_print_tree (SignalArgs &args) const
 signature to signal_print_tree More...
 
void signal_rename_component (SignalArgs &args)
 renames this component More...
 
void signal_save_tree (SignalArgs &args)
 dumps the tree to a file More...
 
void signal_list_content (SignalArgs &args)
 gives information about this component such as options, signals, ... More...
 
void signal_signature (SignalArgs &args)
 Gives a signal signature, if any. More...
 
void signature_create_component (SignalArgs &args)
 
void signature_rename_component (SignalArgs &args)
 
void signature_move_component (SignalArgs &args)
 
void signal_store_timings (SignalArgs &args)
 Signal to store the timings (if enabled) into properties, i.e. for readout from python or the GUI. More...
 
void signal_clear (SignalArgs &args)
 Signal to remove all sub-components. More...
 
void signal_reset_options (SignalArgs &args)
 Signal to set all options to their default value. More...
 
void signal_add_tag (SignalArgs &args)
 Signal to add a tag. More...
 
void signature_add_tag (SignalArgs &args)
 
- Public Member Functions inherited from SignalHandler
 ~SignalHandler ()
 
const storage_tsignal_list () const
 
SignalPtr signal (const SignalID &sname)
 
SignalCPtr signal (const SignalID &sname) const
 
SignalRet call_signal (const SignalID &sname, SignalArgs &sinput)
 Calls the signal by providing its name and input. More...
 
SignalRet call_signal (const SignalID &sname, std::vector< std::string > &sinput)
 Calls the signal by providing its name and input. More...
 
bool signal_exists (const SignalID &sname) const
 Checks if a signal exists or not. More...
 
Signalregist_signal (const SignalID &sname)
 Regist signal. More...
 
void unregist_signal (const SignalID &sname)
 Unregist signal. More...
 
- Public Member Functions inherited from ConnectionManager
 ~ConnectionManager ()
 destructor closes all connections More...
 
Connectionconnection (const std::string &name)
 
Connectionmanage_connection (const std::string &name)
 manages a connection (creates if necessary) More...
 
- Public Member Functions inherited from TaggedObject
 TaggedObject ()
 Constructor. More...
 
bool has_tag (const std::string &tag) const
 
void add_tag (const std::string &tag)
 
std::vector< std::string > get_tags () const
 
void remove_tag (const std::string &tag)
 
- Public Member Functions inherited from Shared
 Shared ()
 constructor More...
 
std::vector< std::string > & get_supported_element_types ()
 

Static Public Member Functions

static std::string type_name ()
 Gets the Class name. More...
 
- Static Public Member Functions inherited from MeshReader
static std::string type_name ()
 Get the class name. More...
 
- Static Public Member Functions inherited from Action
static std::string type_name ()
 Get the class name. More...
 
- Static Public Member Functions inherited from Component
static std::string type_name ()
 Get the class name. More...
 
- Static Public Member Functions inherited from Shared
static std::string type_name ()
 Gets the Class name. More...
 
static std::string gmsh_name_to_cf_name (const Uint dim, const Uint gmsh_type)
 

Private Types

enum  HashType { NODES =0, ELEMS =1 }
 

Private Member Functions

void get_file_positions ()
 
Handle< Regioncreate_region (std::string const &relative_path)
 
void find_used_nodes ()
 
void read_coordinates ()
 
void read_connectivity ()
 
void read_element_node_data ()
 
void read_element_data ()
 
void read_node_data ()
 
virtual void do_read_mesh_into (const common::URI &fp, Mesh &mesh)
 
void fix_negative_volumes (Mesh &mesh)
 
void read_variable_header (std::map< std::string, Field > &fields)
 

Private Attributes

Handle< MergedParallelDistributionm_hash
 
std::map< Uint, std::pair< Handle< Elements >, Uint > > m_elem_idx_gmsh_to_cf
 
std::map< Uint, Uintm_node_idx_gmsh_to_cf
 
boost::filesystem::fstream m_file
 
Handle< Meshm_mesh
 
Handle< Regionm_region
 
std::string m_file_basename
 
Uint m_nb_regions
 
Uint m_mesh_dimension
 
std::vector< RegionDatam_region_list
 
std::set< Uintm_ghost_nodes
 
std::set< Uintm_used_nodes
 
std::vector< std::set< Uint > > m_node_to_glb_elements
 
std::streampos m_region_names_position
 
std::streampos m_coordinates_position
 
std::streampos m_elements_position
 
std::vector< std::streampos > m_element_data_positions
 
std::vector< std::streampos > m_node_data_positions
 
std::vector< std::streampos > m_element_node_data_positions
 
std::vector< std::vector< Uint > > m_nb_gmsh_elem_in_region
 
Uint m_total_nb_elements
 
Uint m_total_nb_nodes
 
Uint IO_rank
 

Additional Inherited Members

- Public Types inherited from Component
typedef ComponentIterator< Componentiterator
 type of the iterator to Component More...
 
typedef ComponentIterator< Component const > const_iterator
 type of the iterator to constant Component More...
 
- Public Types inherited from SignalHandler
typedef std::vector< SignalPtrstorage_t
 storage type for signals More...
 
- Public Attributes inherited from SignalHandler
storage_t m_signals
 storage of the signals More...
 
- Protected Types inherited from MeshReader
typedef std::map< std::string, boost::shared_ptr< common::ArrayBufferT< Uint > > > BufferMap
 Map type from string to a common::Table<Uint>::Buffer. More...
 
- Protected Types inherited from Shared
enum  gmshElement {
  P1LINE =1, P1TRIAG =2, P1QUAD =3, P1TETRA =4,
  P1HEXA =5, P1PRISM =6, P2LINE =8, P2TRIAG =9,
  P2QUAD =10, P2TETRA =11, P2HEXA =12, P0POINT =15,
  P3TRIAG =21, P3LINE =26, P3QUAD = 36
}
 
- Protected Member Functions inherited from MeshReader
std::map< std::string, Handle< Elements > > create_cells_in_region (Region &parent_region, Dictionary &nodes, const std::vector< std::string > &etypes)
 
std::map< std::string, Handle< Elements > > create_faces_in_region (Region &parent_region, Dictionary &nodes, const std::vector< std::string > &etypes)
 
std::map< std::string, boost::shared_ptr< common::Table< Uint >::Buffer > > create_connectivity_buffermap (std::map< std::string, Handle< Elements > > &elems_map)
 
void remove_empty_element_regions (Region &parent_region)
 
- Protected Member Functions inherited from Component
Componentadd_static_component (const boost::shared_ptr< Component > &subcomp)
 Add a static (sub)component of this component. More...
 
void raise_tree_updated_event ()
 raise event that the path has changed More...
 
- Protected Attributes inherited from MeshReader
Handle< Meshm_mesh
 
common::URI m_file_path
 
- Protected Attributes inherited from Shared
std::map< GeoShape::Type, Uintm_CFelement_to_GmshElement
 
std::vector< std::string > m_supported_types
 
std::vector< std::vector< Uint > > m_nodes_cf_to_gmsh
 Faces are not defined in gmsh format. More...
 
std::vector< std::vector< Uint > > m_nodes_gmsh_to_cf
 
- Static Protected Attributes inherited from Shared
static const Uint nb_gmsh_types = 37
 
static const Uint m_nodes_in_gmsh_elem [nb_gmsh_types]
 
static const Uint m_gmsh_elem_dim [nb_gmsh_types]
 
static const Uint m_gmsh_elem_order [nb_gmsh_types]
 
static const std::string gmsh_elem_geo_name [nb_gmsh_types]
 
static const std::string dim_name [4] = { "0D", "1D", "2D", "3D" }
 
static const std::string order_name [10] = { "P0", "P1", "P2", "P3", "P4", "P5", "P6", "P7", "P8", "P9" }
 

Detailed Description

This class defines gmsh mesh format reader

Author
Willem Deconinck
Martin Vymazal

Definition at line 39 of file Reader.hpp.

Member Enumeration Documentation

enum HashType
private
Enumerator
NODES 
ELEMS 

Definition at line 74 of file Reader.hpp.

Constructor & Destructor Documentation

Reader ( const std::string &  name)

constructor

Definition at line 54 of file Reader.cpp.

Member Function Documentation

Handle< Region > create_region ( std::string const &  relative_path)
private

Definition at line 267 of file Reader.cpp.

void do_read_mesh_into ( const common::URI path,
Mesh mesh 
)
privatevirtual

this function implements the concrete mesh reading algorithm and is called by read_mesh_into

Parameters
[in]paththe file to read in
[in,out]meshthe mesh to write to

Implements MeshReader.

Definition at line 100 of file Reader.cpp.

void find_used_nodes ( )
private

Definition at line 286 of file Reader.cpp.

void fix_negative_volumes ( Mesh mesh)
private
Note
this is now only implemented for LagrangeP2.Quad2D elements!!! others are ignored

Definition at line 1007 of file Reader.cpp.

std::vector< std::string > get_extensions ( )
virtual
Returns
the list of possible extensions of the file format

Implements MeshReader.

Definition at line 91 of file Reader.cpp.

void get_file_positions ( )
private

Definition at line 160 of file Reader.cpp.

virtual std::string get_format ( )
inlinevirtual
Returns
the name of the file format

Implements MeshReader.

Definition at line 48 of file Reader.hpp.

void read_connectivity ( )
private

Definition at line 501 of file Reader.cpp.

void read_coordinates ( )
private

Definition at line 398 of file Reader.cpp.

void read_element_data ( )
private

Definition at line 767 of file Reader.cpp.

void read_element_node_data ( )
private

Discontinuous fields section

$ElementNodeData
number-of-string-tags
< "string-tag" >
...
number-of-real-tags
< real-tag >
...
number-of-integer-tags
< integer-tag >
...
elm-number number-of-nodes-per-element value ...
...
$ElementEndNodeData

TODO: There are shapefunctions defined in this library that are otherwise not found from the buildername :-( We should find a solution for this to autoload automatically

Definition at line 656 of file Reader.cpp.

void read_node_data ( )
private

Definition at line 845 of file Reader.cpp.

void read_variable_header ( std::map< std::string, Field > &  fields)
private

Definition at line 917 of file Reader.cpp.

static std::string type_name ( )
inlinestatic

Gets the Class name.

Definition at line 46 of file Reader.hpp.

Member Data Documentation

Uint IO_rank
private

Definition at line 166 of file Reader.hpp.

std::streampos m_coordinates_position
private

Definition at line 111 of file Reader.hpp.

std::map<Uint, std::pair<Handle<Elements>,Uint> > m_elem_idx_gmsh_to_cf
private

Definition at line 78 of file Reader.hpp.

std::vector<std::streampos> m_element_data_positions
private

Definition at line 113 of file Reader.hpp.

std::vector<std::streampos> m_element_node_data_positions
private

Definition at line 115 of file Reader.hpp.

std::streampos m_elements_position
private

Definition at line 112 of file Reader.hpp.

boost::filesystem::fstream m_file
private

Definition at line 81 of file Reader.hpp.

std::string m_file_basename
private

Definition at line 85 of file Reader.hpp.

std::set<Uint> m_ghost_nodes
private

Definition at line 103 of file Reader.hpp.

Definition at line 75 of file Reader.hpp.

Handle<Mesh> m_mesh
private

Definition at line 82 of file Reader.hpp.

Uint m_mesh_dimension
private

Definition at line 98 of file Reader.hpp.

std::vector<std::vector<Uint> > m_nb_gmsh_elem_in_region
private

Definition at line 118 of file Reader.hpp.

Uint m_nb_regions
private

Definition at line 96 of file Reader.hpp.

std::vector<std::streampos> m_node_data_positions
private

Definition at line 114 of file Reader.hpp.

std::map<Uint, Uint> m_node_idx_gmsh_to_cf
private

Definition at line 79 of file Reader.hpp.

std::vector<std::set<Uint> > m_node_to_glb_elements
private

Definition at line 107 of file Reader.hpp.

Handle<Region> m_region
private

Definition at line 83 of file Reader.hpp.

std::vector<RegionData> m_region_list
private

Definition at line 101 of file Reader.hpp.

std::streampos m_region_names_position
private

Definition at line 110 of file Reader.hpp.

Uint m_total_nb_elements
private

Definition at line 119 of file Reader.hpp.

Uint m_total_nb_nodes
private

Definition at line 120 of file Reader.hpp.

std::set<Uint> m_used_nodes
private

Definition at line 105 of file Reader.hpp.


The documentation for this class was generated from the following files:
Send comments to:
COOLFluiD Web Admin