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

#include <MeshPartitioner.hpp>

Inherits MeshTransformer.

Inherited by Partitioner, and Partitioner.

Public Member Functions

 MeshPartitioner (const std::string &name)
 type of pointer to Component More...
 
virtual ~MeshPartitioner ()
 Virtual destructor. More...
 
virtual void execute ()
 execute the action More...
 
void initialize (Mesh &mesh)
 
virtual void build_graph ()=0
 Partitioning functions. More...
 
virtual void partition_graph ()=0
 
void show_changes ()
 
void migrate ()
 Migrate the elements and nodes to corresponding processors. More...
 
void load_balance (common::SignalArgs &args)
 
void load_balance_signature (common::SignalArgs &node)
 
void build_global_to_local_index (Mesh &mesh)
 location finding functions More...
 
Uint nb_objects_owned_by_part (const Uint part) const
 Graph building functions. More...
 
template<typename VectorT >
void list_of_objects_owned_by_part (const Uint part, VectorT &obj_list) const
 
template<typename VectorT >
Uint nb_connected_objects_in_part (const Uint part, VectorT &nb_connections_per_obj) const
 
template<typename VectorT , typename WeightsT >
void list_of_connected_objects_in_part (const Uint part, VectorT &connections_per_obj, WeightsT &edge_weights) const
 
template<typename VectorT >
void list_of_connected_procs_in_part (const Uint part, VectorT &proc_per_neighbor) const
 
const std::vector< std::vector< Uint > > & exported_nodes ()
 
const std::vector< std::vector< std::vector< Uint > > > & exported_elements ()
 
- Public Member Functions inherited from MeshTransformer
 MeshTransformer (const std::string &name)
 
virtual ~MeshTransformer ()
 Virtual destructor. More...
 
virtual void transform (Handle< Mesh > mesh)
 
virtual void transform (Mesh &mesh)
 
virtual std::string help () const
 extended help that user can query More...
 
void set_mesh (Handle< Mesh > mesh)
 
void set_mesh (Mesh &mesh)
 
Meshmesh ()
 
const Meshmesh () const
 
- 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)
 

Static Public Member Functions

static std::string type_name ()
 Get the class name. More...
 
- Static Public Member Functions inherited from MeshTransformer
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...
 

Protected Member Functions

bool is_node (const Uint glb_obj) const
 
bool is_elem (const Uint glb_obj) const
 
boost::tuple< Uint, Uintlocation_idx (const Uint glb_obj) const
 
boost::tuple< Handle< common::Component >, Uintlocation (const Uint glb_obj) const
 
Uint part_of_obj (const Uint obj) const
 
Uint periodic_target_node (Uint node) const
 
- 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

std::vector< std::vector< Uint > > m_nodes_to_export
 nodes_to_export[part][loc_node_idx] More...
 
std::vector< std::vector< std::vector< Uint > > > m_elements_to_export
 elements_to_export[part][elements_comp_idx][loc_elem_idx] More...
 
- Protected Attributes inherited from MeshTransformer
Handle< Meshm_mesh
 

Private Attributes

Uint m_base
 
Uint m_nb_parts
 
Uint m_nb_owned_obj
 
Handle< common::Map< Uint, Uint > > m_global_to_local
 
std::vector< Uintm_start_id_per_part
 
std::vector< Uintm_end_id_per_part
 
std::vector< Uintm_start_node_per_part
 
std::vector< Uintm_end_node_per_part
 
std::vector< Uintm_start_elem_per_part
 
std::vector< Uintm_end_elem_per_part
 
Handle< UnifiedDatam_lookup
 
std::vector< std::pair< bool, Uint > > m_periodic_links
 
std::vector< std::vector< Uint > > m_inverse_periodic_links
 

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...
 

Detailed Description

MeshPartitioner component class This class serves as a component that that will partition the mesh

Author
Willem Deconinck

Definition at line 44 of file MeshPartitioner.hpp.

Constructor & Destructor Documentation

MeshPartitioner ( const std::string &  name)

type of pointer to Component

type of pointer to constant Component Contructor

Parameters
nameof the component

Definition at line 43 of file MeshPartitioner.cpp.

virtual ~MeshPartitioner ( )
inlinevirtual

Virtual destructor.

Definition at line 60 of file MeshPartitioner.hpp.

Member Function Documentation

void build_global_to_local_index ( Mesh mesh)

location finding functions

Definition at line 204 of file MeshPartitioner.cpp.

virtual void build_graph ( )
pure virtual

Partitioning functions.

Implemented in Partitioner, and Partitioner.

void execute ( )
virtual

execute the action

Reimplemented from MeshTransformer.

Definition at line 66 of file MeshPartitioner.cpp.

const std::vector<std::vector<std::vector<Uint> > >& exported_elements ( )
inline

Definition at line 109 of file MeshPartitioner.hpp.

const std::vector<std::vector<Uint> >& exported_nodes ( )
inline

Definition at line 107 of file MeshPartitioner.hpp.

void initialize ( Mesh mesh)

Definition at line 113 of file MeshPartitioner.cpp.

bool is_elem ( const Uint  glb_obj) const
inlineprotected

Definition at line 119 of file MeshPartitioner.hpp.

bool is_node ( const Uint  glb_obj) const
inlineprotected

Definition at line 113 of file MeshPartitioner.hpp.

void list_of_connected_objects_in_part ( const Uint  part,
VectorT &  connections_per_obj,
WeightsT &  edge_weights 
) const

Definition at line 245 of file MeshPartitioner.hpp.

void list_of_connected_procs_in_part ( const Uint  part,
VectorT &  proc_per_neighbor 
) const
Todo:
should be proc of obj, not part!!!
Todo:
should be proc of obj, not part!!!
Todo:
should be proc of obj, not part!!!

Definition at line 298 of file MeshPartitioner.hpp.

void list_of_objects_owned_by_part ( const Uint  part,
VectorT &  obj_list 
) const

Definition at line 184 of file MeshPartitioner.hpp.

void load_balance ( common::SignalArgs args)

Definition at line 81 of file MeshPartitioner.cpp.

void load_balance_signature ( common::SignalArgs node)

Definition at line 103 of file MeshPartitioner.cpp.

boost::tuple< Handle< Component >, Uint > location ( const Uint  glb_obj) const
protected

Definition at line 327 of file MeshPartitioner.cpp.

boost::tuple< Uint, Uint > location_idx ( const Uint  glb_obj) const
protected

Definition at line 315 of file MeshPartitioner.cpp.

void migrate ( )

Migrate the elements and nodes to corresponding processors.

Definition at line 384 of file MeshPartitioner.cpp.

Uint nb_connected_objects_in_part ( const Uint  part,
VectorT &  nb_connections_per_obj 
) const

Definition at line 200 of file MeshPartitioner.hpp.

Uint nb_objects_owned_by_part ( const Uint  part) const
inline

Graph building functions.

Definition at line 176 of file MeshPartitioner.hpp.

Uint part_of_obj ( const Uint  obj) const
inlineprotected

Definition at line 129 of file MeshPartitioner.hpp.

virtual void partition_graph ( )
pure virtual

Implemented in Partitioner, and Partitioner.

Uint periodic_target_node ( Uint  node) const
protected

Definition at line 398 of file MeshPartitioner.cpp.

void show_changes ( )

Definition at line 273 of file MeshPartitioner.cpp.

static std::string type_name ( )
inlinestatic

Get the class name.

Definition at line 63 of file MeshPartitioner.hpp.

Member Data Documentation

Uint m_base
private

Definition at line 152 of file MeshPartitioner.hpp.

std::vector< std::vector< std::vector<Uint> > > m_elements_to_export
protected

elements_to_export[part][elements_comp_idx][loc_elem_idx]

Definition at line 148 of file MeshPartitioner.hpp.

std::vector<Uint> m_end_elem_per_part
private

Definition at line 166 of file MeshPartitioner.hpp.

std::vector<Uint> m_end_id_per_part
private

Definition at line 162 of file MeshPartitioner.hpp.

std::vector<Uint> m_end_node_per_part
private

Definition at line 164 of file MeshPartitioner.hpp.

Handle< common::Map<Uint,Uint> > m_global_to_local
private

Definition at line 159 of file MeshPartitioner.hpp.

std::vector< std::vector<Uint> > m_inverse_periodic_links
private

Definition at line 171 of file MeshPartitioner.hpp.

Handle< UnifiedData > m_lookup
private

Definition at line 168 of file MeshPartitioner.hpp.

Uint m_nb_owned_obj
private

Definition at line 156 of file MeshPartitioner.hpp.

Uint m_nb_parts
private

Definition at line 154 of file MeshPartitioner.hpp.

std::vector< std::vector<Uint> > m_nodes_to_export
protected

nodes_to_export[part][loc_node_idx]

Definition at line 145 of file MeshPartitioner.hpp.

std::vector< std::pair<bool, Uint > > m_periodic_links
private

Definition at line 170 of file MeshPartitioner.hpp.

std::vector<Uint> m_start_elem_per_part
private

Definition at line 165 of file MeshPartitioner.hpp.

std::vector<Uint> m_start_id_per_part
private

Definition at line 161 of file MeshPartitioner.hpp.

std::vector<Uint> m_start_node_per_part
private

Definition at line 163 of file MeshPartitioner.hpp.


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