ug4
|
lets you access layouts by type and key More...
#include <parallel_grid_layout.h>
Classes | |
struct | Types |
defines the types that are used by a LayoutMap for a given TType. More... | |
Public Types | |
typedef int | Key |
Public Member Functions | |
void | clear () |
template<class TType > | |
void | erase_layout (const Key &key) |
erases the specified layout if it exists More... | |
template<class TType > | |
Types< TType >::Map::iterator | erase_layout (typename Types< TType >::Map::iterator iter) |
erases the specified layout More... | |
template<class TType > | |
Types< TType >::Layout & | get_layout (const Key &key) |
creates the required layout if it doesn't exist already. More... | |
template<class TType > | |
const Types< TType >::Layout & | get_layout (const Key &key) const |
template<class TType > | |
bool | has_layout (const Key &key) const |
checks whether the layout associated with the given key exists for the given type. More... | |
void | remove_empty_interfaces () |
removes empty interfaces. More... | |
template<class TType > | |
Types< TType >::Map::iterator | layouts_begin () |
begin-iterator to the layout-map for the given type. More... | |
template<class TType > | |
Types< TType >::Map::const_iterator | layouts_begin () const |
begin-iterator to the layout-map for the given type. More... | |
template<class TType > | |
Types< TType >::Map::iterator | layouts_end () |
end-iterator to the layout-map for the given type. More... | |
template<class TType > | |
Types< TType >::Map::const_iterator | layouts_end () const |
end-iterator to the layout-map for the given type. More... | |
Private Member Functions | |
template<class TType > | |
Types< TType >::Map & | get_layout_map () |
template<class TType > | |
const Types< TType >::Map & | get_layout_map () const |
Types< Edge >::Map & | get_layout_map (Edge *) |
const Types< Edge >::Map & | get_layout_map (Edge *) const |
Types< Face >::Map & | get_layout_map (Face *) |
const Types< Face >::Map & | get_layout_map (Face *) const |
Types< Vertex >::Map & | get_layout_map (Vertex *) |
the argument is only a dummy to allow to choose the right method at compile time More... | |
const Types< Vertex >::Map & | get_layout_map (Vertex *) const |
Types< Volume >::Map & | get_layout_map (Volume *) |
const Types< Volume >::Map & | get_layout_map (Volume *) const |
Private Attributes | |
Types< Edge >::Map | m_edgeLayoutMap |
Types< Face >::Map | m_faceLayoutMap |
Types< Vertex >::Map | m_vertexLayoutMap |
Types< Volume >::Map | m_volumeLayoutMap |
lets you access layouts by type and key
The GridLayoutMap helps you to organize your layouts (e.g. master- and slave-layouts).
You may query layouts for Vertex, Edge, Face and Volume.
You may use a LayoutMap as follows:
To get associated types you may use the GridLayoutMap::Types array:
The Types struct is very useful when it comes to using a LayoutMap in template code, too.
typedef int ug::GridLayoutMap::Key |
|
inline |
void ug::GridLayoutMap::erase_layout | ( | const Key & | key | ) |
erases the specified layout if it exists
GridLayoutMap::Types< TType >::Map::iterator ug::GridLayoutMap::erase_layout | ( | typename Types< TType >::Map::iterator | iter | ) |
erases the specified layout
returns an iterator to the next layout.
GridLayoutMap::Types< TType >::Layout & ug::GridLayoutMap::get_layout | ( | const Key & | key | ) |
creates the required layout if it doesn't exist already.
Referenced by ug::DistributedGridManager::add_element_to_interface(), ug::DoFDistribution::add_indices_from_layouts(), ug::Partitioner_DynamicBisection< TElem, dim >::copy_partitions_to_children(), ug::IDomain< TGrid, TSubsetHandler >::count_ghosts(), ug::CreateIndexLayouts_DomainDecomposition(), ug::CreateLayoutsFromDistInfos(), ug::CreateLevelIndexLayout(), ug::CreateSurfaceIndexLayout(), ug::ComPol_CheckDistributedParentStates< TLayout >::exchange_data(), ug::Partitioner_DynamicBisection< TElem, dim >::gather_weights_from_level(), ug::ParallelDualGraph< TGeomBaseObj, TIndexType, TConnectingObj >::generate_graph(), ug::MightContainGhosts(), ug::PartitionMultiGridLevel_ParmetisKway(), ug::Partitioner_DynamicBisection< TElem, dim >::perform_bisection(), and ug::TestGridLayoutMap().
const GridLayoutMap::Types< TType >::Layout & ug::GridLayoutMap::get_layout | ( | const Key & | key | ) | const |
References UG_THROW.
|
inlineprivate |
Referenced by get_layout_map().
|
inlineprivate |
References get_layout_map().
|
inlineprivate |
References m_edgeLayoutMap.
|
inlineprivate |
References m_edgeLayoutMap.
|
inlineprivate |
References m_faceLayoutMap.
|
inlineprivate |
References m_faceLayoutMap.
|
inlineprivate |
the argument is only a dummy to allow to choose the right method at compile time
References m_vertexLayoutMap.
|
inlineprivate |
References m_vertexLayoutMap.
|
inlineprivate |
References m_volumeLayoutMap.
|
inlineprivate |
References m_volumeLayoutMap.
bool ug::GridLayoutMap::has_layout | ( | const Key & | key | ) | const |
checks whether the layout associated with the given key exists for the given type.
Referenced by ug::DoFDistribution::add_indices_from_layouts(), ug::Partitioner_DynamicBisection< TElem, dim >::copy_partitions_to_children(), ug::IDomain< TGrid, TSubsetHandler >::count_ghosts(), ug::CreateIndexLayouts_DomainDecomposition(), ug::CreateLayoutsFromDistInfos(), ug::CreateLevelIndexLayout(), ug::CreateSurfaceIndexLayout(), ug::ComPol_CheckDistributedParentStates< TLayout >::exchange_data(), ug::Partitioner_DynamicBisection< TElem, dim >::gather_weights_from_level(), ug::ParallelDualGraph< TGeomBaseObj, TIndexType, TConnectingObj >::generate_graph(), ug::MightContainGhosts(), ug::PartitionMultiGridLevel_ParmetisKway(), and ug::Partitioner_DynamicBisection< TElem, dim >::perform_bisection().
GridLayoutMap::Types< TType >::Map::iterator ug::GridLayoutMap::layouts_begin |
begin-iterator to the layout-map for the given type.
iter.first will return the key, iter.second the layout (of type LayoutMap::Types<TType>::Layout).
GridLayoutMap::Types< TType >::Map::const_iterator ug::GridLayoutMap::layouts_begin |
begin-iterator to the layout-map for the given type.
iter.first will return the key, iter.second the layout (of type LayoutMap::Types<TType>::Layout).
GridLayoutMap::Types< TType >::Map::iterator ug::GridLayoutMap::layouts_end |
end-iterator to the layout-map for the given type.
iter.first will return the key, iter.second the layout (of type LayoutMap::Types<TType>::Layout).
GridLayoutMap::Types< TType >::Map::const_iterator ug::GridLayoutMap::layouts_end |
end-iterator to the layout-map for the given type.
iter.first will return the key, iter.second the layout (of type LayoutMap::Types<TType>::Layout).
void ug::GridLayoutMap::remove_empty_interfaces | ( | ) |
removes empty interfaces.
References m_edgeLayoutMap, m_faceLayoutMap, m_vertexLayoutMap, and m_volumeLayoutMap.
Referenced by ug::DistributeGrid().
Referenced by clear(), get_layout_map(), and remove_empty_interfaces().
Referenced by clear(), get_layout_map(), and remove_empty_interfaces().
Referenced by clear(), get_layout_map(), and remove_empty_interfaces().
Referenced by clear(), get_layout_map(), and remove_empty_interfaces().