A meta grid for dividing an existing DUNE grid into subdomains that can be accessed as a grid in their own right.
More...
|
| const SubDomainIndex | maxSubDomainIndex () const |
| | The largest allowed index for a subdomain.
|
| |
| Traits::LevelGridView | levelGridView (int level) const |
| |
| Traits::LeafGridView | leafGridView () const |
| |
| Traits::LeafIntersectionIterator | ileafbegin (const typename Traits::template Codim< 0 >::Entity &entity) const |
| |
| Traits::LeafIntersectionIterator | ileafend (const typename Traits::template Codim< 0 >::Entity &entity) const |
| |
| Traits::LevelIntersectionIterator | ilevelbegin (const typename Traits::template Codim< 0 >::Entity &entity) const |
| |
| Traits::LevelIntersectionIterator | ilevelend (const typename Traits::template Codim< 0 >::Entity &entity) const |
| |
| bool | mark (int, const typename Traits ::template Codim< 0 >::Entity &) |
| |
| bool | mark (int refCount, const typename Codim< 0 >::Entity &e) |
| |
| int | getMark (const typename Traits::template Codim< 0 >::Entity &) const |
| |
| int | getMark (const typename Codim< 0 >::Entity &e) const |
| |
| UserDataContainer & | userData () const |
| |
|
| | MultiDomainGrid (const std::shared_ptr< HostGrid > &hostGridPtr, bool supportLevelIndexSets=true) |
| | Constructs a new MultiDomainGrid from the given host grid.
|
| |
| | MultiDomainGrid (const std::shared_ptr< HostGrid > &hostGridPtr, const MDGridTraitsType &traits, bool supportLevelIndexSets=true) |
| | Constructs a new MultiDomainGrid from the given host grid.
|
| |
| | MultiDomainGrid (HostGrid &hostGrid, bool supportLevelIndexSets=true) |
| | Constructs a new MultiDomainGrid from the given host grid.
|
| |
| | MultiDomainGrid (HostGrid &hostGrid, const MDGridTraitsType &traits, bool supportLevelIndexSets=true) |
| | Constructs a new MultiDomainGrid from the given host grid.
|
| |
|
| template<typename EntitySeed > |
| Traits::template Codim< EntitySeed::codimension >::Entity | entity (const EntitySeed &entitySeed) const |
| |
| int | maxLevel () const |
| | The current maximum level of the grid.
|
| |
| template<int codim> |
| Traits::template Codim< codim >::LevelIterator | lbegin (int level) const |
| |
| template<int codim> |
| Traits::template Codim< codim >::LevelIterator | lend (int level) const |
| |
| template<int codim, PartitionIteratorType pitype> |
| Traits::template Codim< codim >::template Partition< pitype >::LevelIterator | lbegin (int level) const |
| |
| template<int codim, PartitionIteratorType pitype> |
| Traits::template Codim< codim >::template Partition< pitype >::LevelIterator | lend (int level) const |
| |
| template<int codim> |
| Traits::template Codim< codim >::LeafIterator | leafbegin () const |
| |
| template<int codim> |
| Traits::template Codim< codim >::LeafIterator | leafend () const |
| |
| template<int codim, PartitionIteratorType pitype> |
| Traits::template Codim< codim >::template Partition< pitype >::LeafIterator | leafbegin () const |
| |
| template<int codim, PartitionIteratorType pitype> |
| Traits::template Codim< codim >::template Partition< pitype >::LeafIterator | leafend () const |
| |
| int | size (int level, int codim) const |
| |
| int | size (int codim) const |
| |
| int | size (int level, GeometryType type) const |
| |
| int | size (GeometryType type) const |
| |
| const Traits::GlobalIdSet & | globalIdSet () const |
| |
| const Traits::LocalIdSet & | localIdSet () const |
| |
| const Traits::LevelIndexSet & | levelIndexSet (int level) const |
| |
| const Traits::LeafIndexSet & | leafIndexSet () const |
| |
| void | globalRefine (int refCount) |
| |
| bool | mark (int refCount, const typename Traits::template Codim< 0 >::Entity &e) |
| |
| int | getMark (const typename Traits::template Codim< 0 >::Entity &e) |
| |
| bool | preAdapt () |
| |
| bool | adapt () |
| |
| void | postAdapt () |
| |
| int | overlapSize (int level, int codim) const |
| |
| int | overlapSize (int codim) const |
| |
| int | ghostSize (int level, int codim) const |
| |
| int | ghostSize (int codim) const |
| |
| const Traits::Communication & | comm () const |
| |
| template<typename DataHandleImp , typename DataTypeImp > |
| void | communicate (CommDataHandleIF< DataHandleImp, DataTypeImp > &data, InterfaceType iftype, CommunicationDirection dir, int level) const |
| |
| template<typename DataHandleImp , typename DataTypeImp > |
| void | communicate (CommDataHandleIF< DataHandleImp, DataTypeImp > &data, InterfaceType iftype, CommunicationDirection dir) const |
| |
| template<typename DataHandle > |
| bool | loadBalance (DataHandle &dataHandle) |
| |
| bool | loadBalance () |
| |
| size_t | numBoundarySegments () const |
| |
|
| LeafSubDomainInterfaceIterator | leafSubDomainInterfaceBegin (SubDomainIndex subDomain1, SubDomainIndex subDomain2) const |
| | Returns an iterator over the leaf interface of two subdomains.
|
| |
| LeafSubDomainInterfaceIterator | leafSubDomainInterfaceEnd (SubDomainIndex subDomain1, SubDomainIndex subDomain2) const |
| | Returns the corresponding end iterator for leafSubDomainInterfaceBegin().
|
| |
| LevelSubDomainInterfaceIterator | levelSubDomainInterfaceBegin (SubDomainIndex subDomain1, SubDomainIndex subDomain2, int level) const |
| | Returns an iterator over the interface of two subdomains at the given level.
|
| |
| LevelSubDomainInterfaceIterator | levelSubDomainInterfaceEnd (SubDomainIndex subDomain1, SubDomainIndex subDomain2, int level) const |
| | Returns the corresponding end iterator for levelSubDomainInterfaceBegin().
|
| |
| LeafAllSubDomainInterfacesIterator | leafAllSubDomainInterfacesBegin () const |
| | Returns an iterator over all subdomain interfaces on the leaf view.
|
| |
| LeafAllSubDomainInterfacesIterator | leafAllSubDomainInterfacesEnd () const |
| | Returns the corresponding end iterator for leafAllSubDomainInterfacesBegin().
|
| |
| LevelAllSubDomainInterfacesIterator | levelAllSubDomainInterfacesBegin (int level) const |
| | Returns an iterator over all subdomain interfaces on the requested level view.
|
| |
| LevelAllSubDomainInterfacesIterator | levelAllSubDomainInterfacesEnd (int level) const |
| | Returns the corresponding end iterator for levelAllSubDomainInterfacesBegin().
|
| |
|
| void | startSubDomainMarking () |
| | Prepares the grid for (re-)assigning cells to subdomains.
|
| |
| void | preUpdateSubDomains () |
| | Calculates the new subdomain layout, but does not update the current subdomains yet.
|
| |
| void | updateSubDomains () |
| | Switches the subdomain layout over to the new layout.
|
| |
| void | postUpdateSubDomains () |
| | clears the saved state of the subdomain layout that was active before the last call to updateSubDomains().
|
| |
| void | addToSubDomain (SubDomainIndex subDomain, const typename Traits::template Codim< 0 >::Entity &e) |
| | Adds the given leaf entity to the specified subdomain.
|
| |
| void | removeFromSubDomain (SubDomainIndex subDomain, const typename Traits::template Codim< 0 >::Entity &e) |
| | Removes the given leaf entity from the specified subdomain.
|
| |
| void | assignToSubDomain (SubDomainIndex subDomain, const typename Traits::template Codim< 0 >::Entity &e) |
| | Assigns the given leaf entity to the specified subdomain, clearing any previous subdomain assignments.
|
| |
| void | removeFromAllSubDomains (const typename Traits::template Codim< 0 >::Entity &e) |
| | Removes the given leaf entity from all subdomains it currently belongs to.
|
| |
|
| const SubDomainGrid & | subDomain (SubDomainIndex subDomain) const |
| | Returns a reference to the SubDomainGrid associated with the given subdomain.
|
| |
| SubDomainGrid & | subDomain (SubDomainIndex subDomain) |
| | Returns a reference to the SubDomainGrid associated with the given subdomain.
|
| |
| SubDomainIndex | maxAssignedSubDomainIndex () const |
| | Returns the largest subdomain index that was ever assigned to a cell in this grid.
|
| |
| bool | supportLevelIndexSets () const |
| | Indicates whether this MultiDomainGrid instance supports level index sets on its SubDomainGrids.
|
| |
A meta grid for dividing an existing DUNE grid into subdomains that can be accessed as a grid in their own right.
- Template Parameters
-
| HostGrid | The type of the underlying grid implementation. |
| MDGridTraitsType | A traits type for customizing how the MultiDomainGrid manages the partitioning information. |
Returns an iterator over all subdomain interfaces on the leaf view.
This method returns an iterator that will visit all pairwise surface interfaces between subdomains on the leaf view. In particular, given to adjacent cells \(e_1\) and \(e_2\) and two subdomains \(s_1\) and \(s_2\), this iterator will visit the intersection between \(e_1\) and \(e_2\) iff all of the following hold:
\begin{eqnarray*} e_1 \in s_1,\ e_1 \not\in s_2,\\ e_2 \not\in s_1,\ e_1 \in s_2.\end{eqnarray*}
In essence, the two subdomains have to be locally disjoint on \(e_1\) and \(e_2\).
The iterator will only traverse the host grid once for visiting all subdomain interfaces. Incrementing the iterator might thus result in an iterator pointing to the same grid intersection, but to a different pair of subdomains. The subdomains pointed to by the iterator can be retrieved by calling LeafAllSubDomainInterfacesIterator::subDomain1() and LeafAllSubDomainInterfacesIterator::subDomain2(), respectively.
Returns an iterator over all subdomain interfaces on the requested level view.
This method returns an iterator that will visit all pairwise surface interfaces between subdomains on the requested level view. In particular, given to adjacent cells \(e_1\) and \(e_2\) and two subdomains \(s_1\) and \(s_2\), this iterator will visit the intersection between \(e_1\) and \(e_2\) iff all of the following hold:
\begin{eqnarray*} e_1 \in s_1,\ e_1 \not\in s_2,\\ e_2 \not\in s_1,\ e_1 \in s_2.\end{eqnarray*}
In essence, the two subdomains have to be locally disjoint on \(e_1\) and \(e_2\).
The iterator will only traverse the host grid once for visiting all subdomain interfaces. Incrementing the iterator might thus result in an iterator pointing to the same grid intersection, but to a different pair of subdomains. The subdomains pointed to by the iterator can be retrieved by calling LevelAllSubDomainInterfacesIterator::subDomain1() and LevelAllSubDomainInterfacesIterator::subDomain2(), respectively.
- Parameters
-
| level | the grid level to be iterated over. |