Provides the iterators and ranges for n-cells. More...
#include <vector>
#include <list>
#include <map>
#include <stack>
#include <assert.h>
#include "viennagrid/forwards.h"
#include "viennagrid/detail/domain_iterators.hpp"
#include "viennadata/api.hpp"
Go to the source code of this file.
Data Structures | |
class | on_element_iterator< ElementType > |
Iterator class for iterating over a range of elements given by a container of pointers. More... | |
class | const_on_element_iterator< ElementType > |
Iterator class for const iteration over a range of elements given by a container of pointers. More... | |
struct | ElementIteratorChecker< ElementTag, level, handling_tag > |
A helper class that checks whether a certain iterator is available. More... | |
struct | ElementIteratorChecker< ElementTag, level, full_handling_tag > |
Specialization for an available iterator. More... | |
struct | IteratorChecker< ElementType, level > |
Class that checks the validity of the requested iterator. More... | |
struct | IteratorChecker< element_t< Config, ElementTag >, level > |
Class that checks the validity of the requested iterator. More... | |
class | ncell_range< element_t< config_type, tag >, dim, false > |
The main non-const range object for iteration or direct access of boundary k-cells of a n-cell. More... | |
class | const_ncell_range< element_t< config_type, tag >, dim, false > |
The main const range object for iteration or direct access of boundary k-cells of a n-cell. More... | |
class | cobnd_proxy< T, U > |
A proxy object for cheaper setup of range objects using the ncells<>() function. More... | |
class | ncell_range< element_t< config_type, tag >, dim, true > |
The range class for non-const iteration and access of coboundary k-cells of a n-cell, k>n. More... | |
class | const_cobnd_proxy< T, U > |
A proxy object for cheaper setup of range objects using the ncells<>() function. More... | |
class | const_ncell_range< element_t< config_type, tag >, dim, true > |
The range class for const iteration and access of coboundary k-cells of a n-cell, k>n. More... | |
struct | is_smaller< a, b > |
Helper function for less-than comparison at compile time. More... | |
struct | ncell_range< element_t< Config, ElementTag >, dim > |
Range type retrieval for boundary and coboundary iteration. More... | |
struct | const_ncell_range< element_t< Config, ElementTag >, dim > |
Const Range type retrieval for boundary and coboundary iteration. More... | |
struct | element_container< element_t< Config, ElementTag >, dim, cell_level > |
Returns the internal storage type of ranges for boundary k-cells. More... | |
struct | iterator< element_t< config_type, tag >, dim > |
Returns the iterator for iteration over a range. More... | |
Namespaces | |
namespace | viennagrid |
The main ViennaGrid namespace. Most functionality resides in this namespace. | |
namespace | viennagrid::result_of |
The metafunction layer. Provides type generators that derive the respective type from the domain configuration. | |
Functions | |
template<long dim, typename Config , typename ElementTag > | |
result_of::ncell_range < element_t< Config, ElementTag >, dim >::type | ncells (element_t< Config, ElementTag > &d) |
Main function for range retrieval. Specialization for iteration over k-cells of a n-cell. | |
template<typename Config , typename ElementTag > | |
ncell_proxy< element_t< Config, ElementTag > > | ncells (element_t< Config, ElementTag > &d) |
Main function for range retrieval. Specialization for iteration over k-cells of a n-cell. Returns only a proxy that must be assigned to a range object. | |
template<long dim, typename Config , typename ElementTag > | |
result_of::const_ncell_range < element_t< Config, ElementTag >, dim >::type | ncells (element_t< Config, ElementTag > const &d) |
Main function for const range retrieval. Specialization for iteration over k-cells of a n-cell. | |
template<typename Config , typename ElementTag > | |
const_ncell_proxy< element_t < Config, ElementTag > > | ncells (element_t< Config, ElementTag > const &d) |
Main function for const range retrieval. Specialization for iteration over k-cells of a n-cell. Returns only a proxy that must be assigned to a range object. | |
template<long dim_start, long dim_iter, typename RangeType , typename KeyType , typename EnclosingType > | |
void | init_coboundary (KeyType const &key, EnclosingType const &domain) |
A helper function that sets up the co-boundary information. | |
template<long dim, typename Config , typename ElementTag > | |
ncell_range< element_t< Config, ElementTag >, dim, true > | ncells (element_t< Config, ElementTag > &e, domain_t< Config > &d) |
Returns the co-boundary range of topological dimension k for a n-cell, k>n. | |
template<typename Config , typename ElementTag > | |
cobnd_proxy< element_t< Config, ElementTag >, domain_t< Config > > | ncells (element_t< Config, ElementTag > &e, domain_t< Config > &d) |
Returns a proxy object for the iteration over the neighbor elements within a domain. Non-const version. | |
template<long dim, typename Config , typename ElementTag > | |
ncell_range< element_t< Config, ElementTag >, dim, true > | ncells (element_t< Config, ElementTag > &e, segment_t< Config > &seg) |
Returns a proxy object for the iteration over the neighbor elements within a segment. Non-const version. | |
template<typename Config , typename ElementTag > | |
cobnd_proxy< element_t< Config, ElementTag >, segment_t < Config > > | ncells (element_t< Config, ElementTag > &e, segment_t< Config > &seg) |
Returns a proxy object for the iteration over the neighbor elements within a segment. Non-const version. | |
template<long dim, typename Config , typename ElementTag > | |
const_ncell_range< element_t < Config, ElementTag >, dim, true > | ncells (element_t< Config, ElementTag > const &e, domain_t< Config > const &d) |
Returns a proxy object for the iteration over the neighbor elements within a domain. Non-const version. | |
template<typename Config , typename ElementTag > | |
const_cobnd_proxy< element_t < Config, ElementTag > , domain_t< Config > > | ncells (element_t< Config, ElementTag > const &e, domain_t< Config > const &d) |
Returns a proxy object for the iteration over the neighbor elements within a domain. Const version. | |
template<long dim, typename Config , typename ElementTag > | |
const_ncell_range< element_t < Config, ElementTag >, dim, true > | ncells (element_t< Config, ElementTag > const &e, segment_t< Config > const &seg) |
Returns a proxy object for the iteration over the neighbor elements within a segment. Non-const version. | |
template<typename Config , typename ElementTag > | |
const_cobnd_proxy< element_t < Config, ElementTag > , segment_t< Config > > | ncells (element_t< Config, ElementTag > const &e, segment_t< Config > const &seg) |
Returns a proxy object for the iteration over the neighbor elements within a segment. Const version. | |
template<typename ConfigType , typename Tag1 , typename Tag2 > | |
result_of::ncell< ConfigType, 0 > ::type | local_vertex (element_t< ConfigType, Tag1 > const &host_ncell, element_t< ConfigType, Tag2 > const &bnd_kcell, std::size_t index) |
Returns the index-th vertices of a boundary k-cell in the orientation induced by the hosting n-cell. |
Provides the iterators and ranges for n-cells.