Data Structures | Namespaces | Functions

/export/development/ViennaGrid/release/ViennaGrid-1.0.0/viennagrid/detail/element_iterators.hpp File Reference

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.

Detailed Description

Provides the iterators and ranges for n-cells.