ViennaGrid - The Vienna Grid Library  2.1.0
Data Structures | Namespaces | Functions
viennagrid/mesh/coboundary_iteration.hpp File Reference

Contains definition and implementation of coboundary iteration. More...

#include "viennagrid/forwards.hpp"
#include "viennagrid/storage/forwards.hpp"
#include "viennagrid/mesh/mesh.hpp"
#include "viennagrid/accessor.hpp"

Go to the source code of this file.

Data Structures

struct  coboundary_range< MeshOrSegmentHandleT, ElementTypeOrTagT, CoboundaryTypeOrTagT >
 Metafunction for obtaining a coboundary range of an element type within a mesh/segment. More...
class  coboundary_range_wrapper< ElementTypeOrTagT, CoboundaryTypeOrTagT, ContainerT >
class  coboundary_range_wrapper< ElementTypeOrTagT, CoboundaryTypeOrTagT, const ContainerT >
struct  const_coboundary_range< MeshOrSegmentHandleT, ElementTypeOrTagT, CoboundaryTypeOrTagT >
 Metafunction for obtaining a const coboundary range of an element type within a mesh/segment. More...

Namespaces

namespace  viennagrid
 

The main ViennaGrid namespace. Most user functionality resides directly in this namespace rather than in sub-namespaces.


namespace  viennagrid::detail
 

Namespace for implementation details. Not intended to be used directly by a library user.


namespace  viennagrid::result_of
 

The metafunction layer. Provides type generators that derive the respective type from the mesh configuration.


Functions

template<typename ElementTypeOrTagT , typename CoboundaryTypeOrTagT , typename WrappedConfigT , typename ElementOrHandleT >
result_of::coboundary_range
< viennagrid::mesh
< WrappedConfigT >
, ElementTypeOrTagT,
CoboundaryTypeOrTagT >::type 
coboundary_elements (viennagrid::mesh< WrappedConfigT > &mesh_obj, ElementOrHandleT const &element_or_handle)
 Obtaines a coboundary range of an element within a mesh. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the mesh.
template<typename ElementTypeOrTagT , typename CoboundaryTypeOrTagT , typename WrappedConfigT , typename ElementOrHandleT >
result_of::const_coboundary_range
< viennagrid::mesh
< WrappedConfigT >
, ElementTypeOrTagT,
CoboundaryTypeOrTagT >::type 
coboundary_elements (viennagrid::mesh< WrappedConfigT > const &mesh_obj, ElementOrHandleT const &element_or_handle)
 Obtaines a const coboundary range of an element within a mesh. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the mesh.
template<typename ElementTypeOrTagT , typename CoboundaryTypeOrTagT , typename SegmentationT , typename element_or_handle_type >
result_of::coboundary_range
< segment_handle
< SegmentationT >
, ElementTypeOrTagT,
CoboundaryTypeOrTagT >::type 
coboundary_elements (segment_handle< SegmentationT > &segment, element_or_handle_type const &element_or_handle)
 Obtaines a coboundary range of an element within a segment. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the segment.
template<typename ElementTypeOrTagT , typename CoboundaryTypeOrTagT , typename SegmentationT , typename element_or_handle_type >
result_of::const_coboundary_range
< segment_handle
< SegmentationT >
, ElementTypeOrTagT,
CoboundaryTypeOrTagT >::type 
coboundary_elements (segment_handle< SegmentationT > const &segment, element_or_handle_type const &element_or_handle)
 Obtaines a const coboundary range of an element within a segment. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the segment.
template<typename ElementTypeOrTagT , typename coboundary_type_or_tag , typename coboundary_accessor_type , typename ElementTag , typename WrappedConfigType >
viennagrid::detail::container_range_wrapper
< typename
coboundary_accessor_type::value_type > 
coboundary_elements (coboundary_accessor_type accessor, viennagrid::element< ElementTag, WrappedConfigType > &element)
 For internal use only.
template<typename ElementTypeOrTagT , typename coboundary_type_or_tag , typename coboundary_accessor_type , typename ElementTag , typename WrappedConfigType >
viennagrid::detail::container_range_wrapper
< const typename
coboundary_accessor_type::value_type > 
coboundary_elements (coboundary_accessor_type const accessor, viennagrid::element< ElementTag, WrappedConfigType > const &element)
 For internal use only.
template<typename element_type_or_tag , typename coboundary_type_or_tag , typename coboundary_accessor_type , typename WrappedConfigType , typename element_or_handle_type >
viennagrid::detail::container_range_wrapper
< typename
coboundary_accessor_type::value_type > 
coboundary_elements (viennagrid::mesh< WrappedConfigType > &mesh_obj, coboundary_accessor_type accessor, element_or_handle_type &hendl)
 For internal use only.
template<typename element_type_or_tag , typename coboundary_type_or_tag , typename coboundary_accessor_type , typename WrappedConfigType , typename element_or_handle_type >
viennagrid::detail::container_range_wrapper
< const typename
coboundary_accessor_type::value_type > 
coboundary_elements (viennagrid::mesh< WrappedConfigType > const &mesh_obj, coboundary_accessor_type const accessor, element_or_handle_type const &hendl)
 For internal use only.
template<typename element_type_or_tag , typename coboundary_type_or_tag , typename MeshT , typename coboundary_accessor_type >
void create_coboundary_information (MeshT &mesh_obj, coboundary_accessor_type accessor)
 For internal use only.
template<typename element_type_or_tag , typename coboundary_type_or_tag , typename WrappedConfigT , typename ElementTypelistT , typename ContainerConfigT , typename coboundary_accessor_type >
void create_coboundary_information (viennagrid::mesh< viennagrid::detail::decorated_mesh_view_config< WrappedConfigT, ElementTypelistT, ContainerConfigT > > &mesh_obj, coboundary_accessor_type accessor)
template<typename element_type_or_tag , typename coboundary_type_or_tag , typename mesh_type >
void create_coboundary_information (mesh_type &mesh_obj)
 For internal use only.

Detailed Description

Contains definition and implementation of coboundary iteration.