ViennaGrid - The Vienna Grid Library  2.1.0
Namespaces | Data Structures | Typedefs | Functions
viennagrid::detail Namespace Reference

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

Namespaces

namespace  result_of
 

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


Data Structures

struct  add_functor
 For internal use only. More...
struct  ascending_topological_order
struct  ascending_topological_order< T, U, false >
struct  boundary_element_generator
 Worker class that generates the boundary elements of a host element. More...
struct  boundary_element_generator< ElementTag, vertex_tag, BoundaryElementType >
struct  boundary_element_generator< hypercube_tag< 2 >, simplex_tag< 1 >, BoundaryElementType >
struct  boundary_element_generator< hypercube_tag< 3 >, hypercube_tag< 2 >, BoundaryElementType >
struct  boundary_element_generator< hypercube_tag< 3 >, simplex_tag< 1 >, BoundaryElementType >
struct  boundary_element_generator< plc_tag, line_tag, BoundaryElementType >
struct  boundary_element_generator< plc_tag, simplex_tag< 0 >, BoundaryElementType >
struct  boundary_element_generator< polygon_tag, simplex_tag< 1 >, BoundaryElementType >
struct  boundary_element_generator< simplex_tag< 1 >, simplex_tag< 0 >, BoundaryElementType >
 Topological description of the 0-cells of a line. More...
struct  boundary_element_generator< simplex_tag< n >, simplex_tag< 1 >, BoundaryElementType >
struct  boundary_element_generator< simplex_tag< n >, simplex_tag< 2 >, BoundaryElementType >
struct  boundary_information_wrapper
 For internal use only. More...
struct  boundary_quantity_transfer_tag
 Indicates a transfer from higher to lower topological dimension (boundary operation) More...
class  boundary_setter_functor
 For internal use only. More...
struct  clear_all_functor
struct  coboundary_container_wrapper
 For internal use only. More...
struct  coboundary_quantity_transfer_tag
 Indicates a transfer from lower to higher topological dimension (coboundary operation) More...
class  coboundary_range_wrapper
class  coboundary_range_wrapper< ElementTypeOrTagT, CoboundaryTypeOrTagT, const ContainerT >
class  collection_layer< viennagrid::null_type >
class  collection_layer< viennagrid::typelist< viennagrid::static_pair< key_, value_ >, tail > >
class  const_iterator< base_iterator, base_const_iterator, id_handle_tag >
class  const_iterator< base_iterator, base_const_iterator, iterator_handle_tag >
class  const_iterator< base_iterator, base_const_iterator, no_handle_tag >
class  const_iterator< base_iterator, base_const_iterator, pointer_handle_tag >
class  container
class  container_base
class  container_base< hidden_key_map< KeyT, ElementT >, handle_tag >
class  container_base< std::set< key, compare, allocator >, handle_tag >
class  container_output_functor
class  container_range_wrapper
class  container_range_wrapper< const container_type >
class  continuous_id_generator_layer< viennagrid::null_type >
class  continuous_id_generator_layer< viennagrid::typelist< viennagrid::static_pair< value_type, id_tag >, tail > >
struct  copy_element_setters
 For internal use only. More...
struct  copy_elements_impl
struct  copy_elements_impl< plc_tag >
class  copy_functor
struct  copy_segmentation_functor
 Functor for copying a segmentation. For internal use only. More...
struct  cross_prod_impl< PointT, 1 >
 Implementation of the cross product calculation in 1d for compatibility. Returns the zero-vector. More...
struct  cross_prod_impl< PointT, 2 >
 Implementation of the cross product calculation in 2d for compatibility. Returns the zero-vector. More...
struct  cross_prod_impl< PointT, 3 >
 Implementation of the cross product calculation in 3d. More...
class  decorated_mesh_view_config
 For internal use only. More...
class  decorated_mesh_view_config< decorated_mesh_view_config< WrappedConfigType, E, C >, ElementTypeList, ContainerConfig >
 For internal use only. More...
class  dereference_handle_comparator
 For internal use only. More...
struct  dereference_handle_helper
struct  dereference_handle_helper< id_handle_tag >
struct  detect_interface_impl< false >
struct  detect_interface_impl< true >
class  dual_for_each_functor
struct  element_refinement< tetrahedron_tag >
 Class specialization for the refinement of a tetrahedron: A LOT of spaghetti-code to follow. More...
struct  element_refinement< triangle_tag >
 Specialization of the refinement class for a triangle. More...
struct  element_segment_mapping
 For internal use only. More...
struct  EQUAL
struct  EQUAL< type, type >
struct  erase_from_view_functor
struct  erase_functor
 For internal use only. More...
struct  fix_handle_helper< null_type >
struct  fix_handle_helper< typelist< SourceElementT, TailT > >
struct  for_each_boundary_element_functor
 Helper functor which iterates over the respective boundary elements and applied the user-provided functor to each boundary element. More...
struct  for_each_element_functor
 For internal use only. More...
struct  for_each_functor
struct  for_each_impl
struct  for_each_impl< viennagrid::null_type >
struct  for_each_impl< viennagrid::typelist< head, tail > >
class  forward_iterator_range
class  handle_functor
struct  handle_helper< container_type, value_type, id_handle_tag >
struct  handle_helper< container_type, value_type, iterator_handle_tag >
struct  handle_helper< container_type, value_type, no_handle_tag >
struct  handle_helper< container_type, value_type, pointer_handle_tag >
class  handle_mesh_functor
 For internal use only. More...
struct  handle_or_ignore_helper
struct  handle_or_ignore_helper< container_collection_type, handle_type, viennagrid::not_found >
class  handled_container
class  id_compare
class  id_handler
struct  IDCompare
struct  IDCompare< smart_id< ValueT, BaseIDType > >
struct  IDENTITY
struct  IF
struct  IF< false, type1, type2 >
struct  inner_prod_impl< PointT, 1 >
 Implementation of the inner product in one dimension. More...
struct  inner_prod_impl< PointT, 2 >
 Implementation of the inner product in two dimensions. More...
struct  inner_prod_impl< PointT, 3 >
 Implementation of the inner product in three dimensions. More...
struct  insert_or_ignore_helper
struct  insert_or_ignore_helper< container_collection_type, element_type, viennagrid::not_found >
struct  interface_information_wrapper
 For internal use only. More...
class  interface_setter_functor
 For internal use only. More...
struct  is_const_iterator
struct  is_const_pointer
struct  is_const_pointer< const T * >
class  iterator< base_iterator, base_const_iterator, id_handle_tag >
class  iterator< base_iterator, base_const_iterator, iterator_handle_tag >
class  iterator< base_iterator, base_const_iterator, no_handle_tag >
class  iterator< base_iterator, base_const_iterator, pointer_handle_tag >
struct  mark_referencing_elements_impl< MeshT, ToEraseViewT, HandleT, viennagrid::null_type >
 For internal use only. More...
struct  mark_referencing_elements_impl< MeshT, ToEraseViewT, HandleT, viennagrid::typelist< CoboundaryElementT, TailT > >
struct  n_over_k
struct  n_over_k< 0, 0 >
struct  n_over_k< 0, k >
struct  n_over_k< n, 0 >
struct  neighbor_container_wrapper
 For internal use only. More...
class  neighbor_range_wrapper
class  neighbor_range_wrapper< ElementTypeOrTagT, ConnectorElementTypeOrTagT, const ContainerT >
struct  non_recursive_erase_functor
struct  norm_impl
struct  norm_impl< viennagrid::inf_norm_tag >
 Implementation of the inf-norm. More...
struct  norm_impl< viennagrid::one_norm_tag >
 Implementation of the 1-norm. More...
struct  norm_impl< viennagrid::two_norm_tag >
 Implementation of the 2-norm. More...
struct  NOT_EQUAL
struct  quantity_transfer_dispatcher
struct  quantity_transfer_dispatcher< SourceTag, DestinationTag, false, true >
struct  quantity_transfer_dispatcher< SourceTag, DestinationTag, true, false >
struct  remove_const
struct  remove_const< const some_type >
struct  segment_info_t
 Information container providing iteration over segments of a segmentation. More...
struct  segment_interface_information_wrapper
 For internal use only. More...
struct  signed_spanned_volume_impl< PointT, 1 >
 Implementation of the volume spanned by two points in one dimension. More...
struct  signed_spanned_volume_impl< PointT, 2 >
 Implementation of the volume of simplices spanned by points in two geometrical dimension. More...
struct  signed_spanned_volume_impl< PointT, 3 >
 Implementation of the volume of simplices spanned by points in three geometrical dimension. More...
class  smart_id
class  smart_id< const value_type_, base_id_type_ >
struct  STATIC_ASSERT
struct  STATIC_ASSERT< false >
struct  switch_handle_functor
 For internal use only. More...
class  tag
struct  topological_id
struct  topological_id< segment_handle< SegmentationT > >
struct  topological_id< spatial_point< CoordT, CoordinateSystemT > >
struct  topological_id< viennagrid::element< hypercube_tag< dim >, WrappedConfigT > >
struct  topological_id< viennagrid::element< simplex_tag< dim >, WrappedConfigT > >
struct  topological_id< viennagrid::mesh< WrappedConfigT > >
struct  topologically_sorted
struct  TRANSFORM< functor, viennagrid::null_type >
struct  TRANSFORM< functor, viennagrid::typelist< head, tail > >
struct  true_predicate
struct  unchecked_add_functor
 For internal use only. More...
class  view_mesh_setter
 For internal use only. More...

Typedefs

typedef
viennagrid::make_typemap
< viennagrid::default_tag,
viennagrid::handled_container_tag
< viennagrid::std_deque_tag,
viennagrid::pointer_handle_tag >
>::type 
default_container_config

Functions

template<typename OuterNumericT , typename NumericConfigT >
result_of::numeric_type
< NumericConfigT,
OuterNumericT >::type 
absolute_tolerance (NumericConfigT config)
template<typename OuterNumericT >
result_of::numeric_type
< double, OuterNumericT >
::type 
absolute_tolerance (double eps)
template<typename segment_handle_type , typename element_segment_mapping_type , typename container_tag >
void add (segment_handle_type &segment, segment_info_t< element_segment_mapping_type, container_tag > &segment_info)
 For internal use only.
template<typename segment_handle_type , typename accessor_type , typename element_type >
void add (segment_handle_type &segment, accessor_type accessor, element_type &element)
 For internal use only.
template<typename ElementsVerticesHandleContainerT , typename VertexHandleContainer >
void add_refinement_element (ElementsVerticesHandleContainerT &elements_vertices, VertexHandleContainer vertex_handle_container, unsigned int i0, unsigned int i1, unsigned int i2)
template<typename ElementsVerticesHandleContainerT , typename VertexHandleContainerT >
void add_refinement_element (ElementsVerticesHandleContainerT &elements_vertices, VertexHandleContainerT vertex_handle_container, unsigned int i0, unsigned int i1, unsigned int i2, unsigned int i3)
template<typename PointT1 , typename PointT2 >
viennagrid::result_of::coord
< PointT1 >::type 
boundary_distance_impl (PointT1 const &p1, PointT2 const &p2)
template<typename PointT1 , typename PointT2 >
viennagrid::result_of::coord
< PointT1 >::type 
boundary_distance_impl (std::pair< PointT1, PointT2 > const &pts)
template<typename PointAccessorT , typename CoordT1 , typename CoordinateSystemT1 , typename CoordT2 , typename CoordinateSystemT2 >
CoordT1 boundary_distance_impl (PointAccessorT const, spatial_point< CoordT1, CoordinateSystemT1 > const &p1, spatial_point< CoordT2, CoordinateSystemT2 > const &p2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
viennagrid::result_of::coord
< PointT >::type 
boundary_distance_impl (PointAccessorT const accessor, PointT const &p1, viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &v2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
boundary_distance_impl (PointAccessorT const accessor, viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &v1, PointT const &p2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT1 , typename WrappedConfigT2 >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
boundary_distance_impl (PointAccessorT const accessor, viennagrid::element< viennagrid::vertex_tag, WrappedConfigT1 > const &v1, viennagrid::element< viennagrid::vertex_tag, WrappedConfigT2 > const &v2)
template<typename PointAccessorT , typename SomethingT1 , typename SomethingT2 >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
boundary_distance_impl (PointAccessorT const accessor, SomethingT1 const &el1, SomethingT2 const &el2)
template<typename element_tag , typename mesh_type >
viennagrid::detail::result_of::lookup
< typename
viennagrid::detail::result_of::lookup
< typename
mesh_type::appendix_type,
boundary_information_collection_tag >
::type, element_tag >::type & 
boundary_information_collection (mesh_type &mesh_obj)
 For internal use only.
template<typename element_tag , typename mesh_type >
viennagrid::detail::result_of::lookup
< typename
viennagrid::detail::result_of::lookup
< typename
mesh_type::appendix_type,
boundary_information_collection_tag >
::type, element_tag >::type
const & 
boundary_information_collection (mesh_type const &mesh_obj)
 For internal use only.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type centroid (PointAccessorT const accessor, ElementT const &cell, viennagrid::triangle_tag)
 Implementation of the calculation of a centroid for a triangle.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type centroid (PointAccessorT const accessor, ElementT const &cell, viennagrid::quadrilateral_tag)
 Implementation of the calculation of a centroid for a quadrilateral.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type centroid (PointAccessorT const accessor, ElementT const &cell, viennagrid::hexahedron_tag)
 Implementation of the calculation of a centroid for a hexahedron.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type centroid (PointAccessorT const accessor, ElementT const &cell, viennagrid::simplex_tag< 1 >)
 Implementation of the calculation of a centroid for a line (1-simplex)
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type centroid (PointAccessorT const accessor, ElementT const &cell, viennagrid::hypercube_tag< 1 >)
 Implementation of the calculation of a centroid for a line (1-hypercube)
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type centroid (PointAccessorT const accessor, ElementT const &cell, viennagrid::vertex_tag)
 Implementation of the calculation of a centroid for a point.
template<typename ElementTOrTag , typename MeshSegmentHandleType , typename PointAccessorT >
viennagrid::result_of::point
< MeshSegmentHandleType >
::type 
centroid_mesh (MeshSegmentHandleType const &mesh_obj, PointAccessorT const point_accessor)
 Implementation of the calculation of a centroid for a mesh/segment.
template<typename ElementT , typename GeometricContainerT , typename ElementTag , typename DimensionTag >
viennagrid::result_of::point
< GeometricContainerT >::type 
circumcenter (ElementT const &, GeometricContainerT const &, ElementTag const &, DimensionTag const &)
 Throws a compile time error if the n-cell type is not supported.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type circumcenter (PointAccessorT const accessor, ElementT const &cell, viennagrid::vertex_tag)
 Implementation of the calculation of a circumcenter for a point (degenerate case)
template<typename PointAccessorT , typename ElementT , typename DimensionTag >
PointAccessorT::value_type circumcenter (PointAccessorT const accessor, ElementT const &cell, viennagrid::simplex_tag< 1 >, DimensionTag)
 Implementation of the calculation of a circumcenter for a line (1-simplex)
template<typename PointAccessorT , typename ElementT , typename DimensionTag >
PointAccessorT::value_type circumcenter (PointAccessorT const accessor, ElementT const &cell, viennagrid::hypercube_tag< 1 >, DimensionTag)
 Implementation of the calculation of a circumcenter for a line (1-hypercube)
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type circumcenter (PointAccessorT const accessor, ElementT const &cell, viennagrid::triangle_tag, viennagrid::dimension_tag< 2 >)
 Implementation of the calculation of a circumcenter for a triangle in two dimensions.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type circumcenter (PointAccessorT const accessor, ElementT const &cell, viennagrid::quadrilateral_tag, viennagrid::dimension_tag< 2 >)
 Implementation of the calculation of a circumcenter for a quadrilateral in two dimensions. Mind that the user has to ensure that the quadrilateral actually has a circumcenter!
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type circumcenter (PointAccessorT const accessor, ElementT const &cell, viennagrid::triangle_tag, viennagrid::dimension_tag< 3 >)
 Implementation of the calculation of a circumcenter for a triangle in three dimensions.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type circumcenter (PointAccessorT const accessor, ElementT const &cell, viennagrid::quadrilateral_tag, viennagrid::dimension_tag< 3 >)
 Implementation of the calculation of a circumcenter for a quadrilateral in three dimensions. Mind that the user has to ensure that the quadrilateral actually has a circumcenter!
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type circumcenter (PointAccessorT const accessor, ElementT const &cell, viennagrid::hexahedron_tag, viennagrid::dimension_tag< 3 >)
 Implementation of the calculation of a circumcenter for a hexahedron in three dimensions. Mind that the user has to ensure that the quadrilateral actually has a circumcenter!
template<typename container_collection_typemap >
void clear_all (viennagrid::collection< container_collection_typemap > &container_collection)
template<typename PointT >
std::pair< PointT, PointT > closest_points_impl (PointT const &p1, PointT const &p2)
template<typename PointAccessorT , typename CoordT1 , typename CoordinateSystemT1 , typename CoordT2 , typename CoordinateSystemT2 >
std::pair< spatial_point
< CoordT1, CoordinateSystemT1 >
, spatial_point< CoordT2,
CoordinateSystemT2 > > 
closest_points_impl (PointAccessorT const, spatial_point< CoordT1, CoordinateSystemT1 > const &p1, spatial_point< CoordT2, CoordinateSystemT2 > const &p2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
std::pair< PointT, typename
viennagrid::result_of::point
< viennagrid::element
< vertex_tag, WrappedConfigT >
>::type > 
closest_points_impl (PointAccessorT const accessor, PointT const &p1, viennagrid::element< vertex_tag, WrappedConfigT > const &v2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
std::pair< typename
viennagrid::result_of::point
< viennagrid::element
< vertex_tag, WrappedConfigT >
>::type, PointT > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT > const &v1, PointT const &p2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
std::pair< typename
viennagrid::result_of::point
< viennagrid::element
< vertex_tag, WrappedConfigT >
>::type, typename
viennagrid::result_of::point
< viennagrid::element
< vertex_tag, WrappedConfigT >
>::type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT > const &v1, viennagrid::element< vertex_tag, WrappedConfigT > const &v2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
std::pair< PointT, typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, PointT const &p, viennagrid::element< simplex_tag< 1 >, WrappedConfigT > const &el)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
std::pair< PointT, typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, PointT const &p, viennagrid::element< hypercube_tag< 1 >, WrappedConfigT > const &el)
template<typename PointAccessorT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT1 > const &v, viennagrid::element< simplex_tag< 1 >, WrappedConfigT2 > const &el)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT1 > const &v, viennagrid::element< simplex_tag< 1 >, WrappedConfigT2 > const &el)
template<typename PointAccessorT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< simplex_tag< 1 >, WrappedConfigT1 > const &line0, viennagrid::element< simplex_tag< 1 >, WrappedConfigT2 > const &line1)
template<typename PointAccessorT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< hypercube_tag< 1 >, WrappedConfigT1 > const &line0, viennagrid::element< simplex_tag< 1 >, WrappedConfigT2 > const &line1)
template<typename PointAccessorT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< simplex_tag< 1 >, WrappedConfigT1 > const &line0, viennagrid::element< hypercube_tag< 1 >, WrappedConfigT2 > const &line1)
template<typename PointAccessorT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< hypercube_tag< 1 >, WrappedConfigT1 > const &line0, viennagrid::element< hypercube_tag< 1 >, WrappedConfigT2 > const &line1)
template<typename PointAccessorT , typename CoordT , typename CoordinateSystemT , typename WrappedConfigT >
std::pair< spatial_point
< CoordT, CoordinateSystemT >
, typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, spatial_point< CoordT, CoordinateSystemT > const &p, viennagrid::element< simplex_tag< 2 >, WrappedConfigT > const &el)
template<typename PointAccessorT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT1 > const &v, viennagrid::element< simplex_tag< 2 >, WrappedConfigT2 > const &el)
template<typename PointAccessorT , typename CoordT , typename CoordinateSystemT , typename WrappedConfigT >
std::pair< spatial_point
< CoordT, CoordinateSystemT >
, typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, spatial_point< CoordT, CoordinateSystemT > const &p, viennagrid::element< hypercube_tag< 2 >, WrappedConfigT > const &el)
template<typename PointAccessorT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT1 > const &v, viennagrid::element< hypercube_tag< 2 >, WrappedConfigT2 > const &el)
template<typename PointAccessorT , typename CoordT , typename CoordinateSystemT , typename WrappedConfigT >
std::pair< spatial_point
< CoordT, CoordinateSystemT >
, typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, spatial_point< CoordT, CoordinateSystemT > const &p, viennagrid::element< simplex_tag< 3 >, WrappedConfigT > const &el)
template<typename PointAccessorT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT1 > const &v, viennagrid::element< simplex_tag< 3 >, WrappedConfigT2 > const &el)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
std::pair< PointT, typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, PointT const &p, viennagrid::element< hypercube_tag< 3 >, WrappedConfigT > const &el)
template<typename PointAccessorT , typename WrappedConfigT1 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT1 > const &v, viennagrid::element< hypercube_tag< 3 >, WrappedConfigT2 > const &el)
template<typename PointT >
std::pair< PointT, PointT > closest_points_line_line (PointT const &v0, PointT const &v1, PointT const &w0, PointT const &w1)
template<typename PointAccessorT , typename SomethingT1 , typename SomethingT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_on_boundary_generic (PointAccessorT const accessor, SomethingT1 const &el1, SomethingT2 const &el2)
template<typename PointT >
std::pair< PointT, PointT > closest_points_on_boundary_impl (PointT const &p1, PointT const &p2)
template<typename PointAccessorT , typename CoordT1 , typename CoordinateSystemT1 , typename CoordT2 , typename CoordinateSystemT2 >
std::pair< spatial_point
< CoordT1, CoordinateSystemT1 >
, spatial_point< CoordT1,
CoordinateSystemT1 > > 
closest_points_on_boundary_impl (PointAccessorT const, spatial_point< CoordT1, CoordinateSystemT1 > const &p1, spatial_point< CoordT2, CoordinateSystemT2 > const &p2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
std::pair< PointT, typename
viennagrid::result_of::point
< viennagrid::element
< vertex_tag, WrappedConfigT >
>::type > 
closest_points_on_boundary_impl (PointAccessorT const accessor, PointT const &p1, viennagrid::element< vertex_tag, WrappedConfigT > const &v2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
std::pair< typename
viennagrid::result_of::point
< viennagrid::element
< vertex_tag, WrappedConfigT >
>::type, typename
viennagrid::result_of::point
< viennagrid::element
< vertex_tag, WrappedConfigT >
>::type > 
closest_points_on_boundary_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT > const &v1, viennagrid::element< vertex_tag, WrappedConfigT > const &v2)
template<typename PointAccessorT , typename PointT , typename ElementTag , typename WrappedConfigT >
std::pair< PointT, typename
PointAccessorT::value_type > 
closest_points_on_boundary_impl (PointAccessorT const &mesh_obj, PointT const &v, viennagrid::element< ElementTag, WrappedConfigT > const &el)
template<typename PointAccessorT , typename WrappedConfigT , typename PointT >
std::pair< PointT, typename
viennagrid::result_of::point
< viennagrid::mesh
< WrappedConfigT > >::type > 
closest_points_on_boundary_impl (PointAccessorT const point_accessor, PointT const &p, mesh< WrappedConfigT > const &mesh_obj)
template<typename PointAccessorT , typename SegmentationT , typename PointT >
std::pair< PointT, typename
viennagrid::result_of::point
< segment_handle
< SegmentationT > >::type > 
closest_points_on_boundary_impl (PointAccessorT const point_accessor, PointT const &p, segment_handle< SegmentationT > const &segment)
template<typename PointAccessorT , typename WrappedConfigT1 , typename EA2 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_on_boundary_impl (PointAccessorT const accessor, viennagrid::element< vertex_tag, WrappedConfigT1 > const &v, viennagrid::element< EA2, WrappedConfigT2 > const &el)
template<typename WrappedMeshConfigType , typename WrappedConfigT >
std::pair< typename
viennagrid::result_of::point
< mesh< WrappedMeshConfigType >
>::type, typename
viennagrid::result_of::point
< mesh< WrappedMeshConfigType >
>::type > 
closest_points_on_boundary_impl (viennagrid::element< vertex_tag, WrappedConfigT > const &v, mesh< WrappedMeshConfigType > const &mesh_obj)
template<typename PointAccessorT , typename ElementTag1 , typename WrappedConfigT1 , typename ElementTag2 , typename WrappedConfigT2 >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_on_boundary_impl (PointAccessorT const accessor, viennagrid::element< ElementTag1, WrappedConfigT1 > const &el1, viennagrid::element< ElementTag2, WrappedConfigT2 > const &el2)
template<typename PointAccessorT , typename WrappedMeshConfigType , typename ElementTag , typename WrappedConfigT >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_on_boundary_impl (PointAccessorT const accessor, viennagrid::element< ElementTag, WrappedConfigT > const &el1, mesh< WrappedMeshConfigType > const &mesh_obj)
template<typename PointAccessorT , typename SegmentationT , typename ElementTag , typename WrappedConfigT >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_on_boundary_impl (PointAccessorT const accessor, viennagrid::element< ElementTag, WrappedConfigT > const &el1, segment_handle< SegmentationT > const &segment)
template<typename PointAccessorT , typename Segmentation1T , typename Segmentation2T >
std::pair< typename
PointAccessorT::value_type,
typename
PointAccessorT::value_type > 
closest_points_on_boundary_impl (PointAccessorT const accessor, segment_handle< Segmentation1T > const &segment1, segment_handle< Segmentation2T > const &segment2)
template<typename FacetTypeOrTag , typename PointAccessorT , typename PointT , typename SomethingT >
std::pair< PointT, typename
PointAccessorT::value_type > 
closest_points_on_boundary_point_to_any (PointAccessorT const accessor, PointT const &p, SomethingT const &cont)
template<typename PointT , typename LinePointT >
std::pair< PointT, LinePointT > closest_points_point_line (PointT const &p, LinePointT const &line_p1, LinePointT const &line_p2)
template<typename PointT >
std::pair< PointT, PointT > closest_points_point_tetrahedron (PointT const &p, PointT const &v0, PointT const &v1, PointT const &v2, PointT const &v3)
template<typename PointT >
std::pair< PointT, PointT > closest_points_point_triangle (PointT const &p, PointT const &v0, PointT const &v1, PointT const &v2)
template<typename element_tag , typename coboundary_tag , typename mesh_type >
viennagrid::detail::result_of::lookup
< typename
viennagrid::detail::result_of::lookup
< typename
mesh_type::appendix_type,
coboundary_collection_tag >
::type,
viennagrid::static_pair
< element_tag, coboundary_tag >
>::type & 
coboundary_collection (mesh_type &mesh_obj)
 For internal use only.
template<typename element_tag , typename coboundary_tag , typename mesh_type >
viennagrid::detail::result_of::lookup
< typename
viennagrid::detail::result_of::lookup
< typename
mesh_type::appendix_type,
coboundary_collection_tag >
::type,
viennagrid::static_pair
< element_tag, coboundary_tag >
>::type const & 
coboundary_collection (mesh_type const &mesh_obj)
 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
< 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 src_container_typelist , typename dst_container_typelist >
void copy (const collection< src_container_typelist > &src, collection< dst_container_typelist > &dst)
template<typename src_container_typelist , typename dst_container_typelist , typename predicate >
void copy_if (const collection< src_container_typelist > &src, collection< dst_container_typelist > &dst, predicate pred)
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.
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename mesh_type , typename neigbour_accessor_type >
void create_neighbor_information (mesh_type &mesh_obj, neigbour_accessor_type accessor)
 For internal use only.
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename mesh_type >
void create_neighbor_information (mesh_type &mesh_obj)
 For internal use only.
template<typename ContainerT , typename HandleT >
result_of::value_type< HandleT >
::type & 
dereference_handle (ContainerT &container, HandleT handle)
template<typename ContainerT , typename HandleT >
result_of::value_type< HandleT >
::type const & 
dereference_handle (ContainerT const &container, HandleT handle)
template<typename ContainerT , typename HandleT >
result_of::value_type< HandleT >
::type const & 
dereference_handle_const (ContainerT const &container, HandleT handle)
template<typename MeshT , typename AccessorT >
void detect_boundary (MeshT &mesh_obj, AccessorT boundary_info_accessor)
 For internal use only.
template<typename WrappedConfigT >
void detect_boundary (mesh< WrappedConfigT > &mesh_obj)
 For internal use only.
template<typename SegmentationT >
void detect_boundary (segment_handle< SegmentationT > &segment)
 For internal use only.
template<typename SegmentationT , typename AccessorT >
void detect_interface (segment_handle< SegmentationT > &seg0, segment_handle< SegmentationT > &seg1, AccessorT accessor)
 For internal use only.
template<typename PointT1 , typename PointT2 >
viennagrid::result_of::coord
< PointT1 >::type 
distance_impl (PointT1 const &p1, PointT2 const &p2)
template<typename PointT1 , typename PointT2 >
viennagrid::result_of::coord
< PointT1 >::type 
distance_impl (std::pair< PointT1, PointT2 > const &pts)
template<typename PointAccessorT , typename CoordT1 , typename CoordinateSystemT1 , typename CoordT2 , typename CoordinateSystemT2 >
CoordT1 distance_impl (PointAccessorT const, spatial_point< CoordT1, CoordinateSystemT1 > const &p1, spatial_point< CoordT2, CoordinateSystemT2 > const &p2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
viennagrid::result_of::coord
< PointT >::type 
distance_impl (PointAccessorT const accessor, PointT const &p1, viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &v2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
distance_impl (PointAccessorT const accessor, viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &v1, PointT const &p2)
template<typename PointAccessorT , typename PointT , typename WrappedConfigT1 , typename WrappedConfigT2 >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
distance_impl (PointAccessorT const accessor, viennagrid::element< viennagrid::vertex_tag, WrappedConfigT1 > const &v1, viennagrid::element< viennagrid::vertex_tag, WrappedConfigT2 > const &v2)
template<typename PointAccessorT , typename SomethingT1 , typename SomethingT2 >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
distance_impl (PointAccessorT const accessor, SomethingT1 const &el1, SomethingT2 const &el2)
template<typename SegmentationType >
viennagrid::segment_handle
< SegmentationType >
::view_type::element_collection_type & 
element_collection (segment_handle< SegmentationType > &segment)
 For internal use only.
template<typename SegmentationType >
viennagrid::segment_handle
< SegmentationType >
::view_type::element_collection_type
const & 
element_collection (segment_handle< SegmentationType > const &segment)
 For internal use only.
template<typename ConfigType >
viennagrid::mesh< ConfigType >
::element_collection_type & 
element_collection (viennagrid::mesh< ConfigType > &mesh_obj)
 For internal use only.
template<typename ConfigType >
viennagrid::mesh< ConfigType >
::element_collection_type
const & 
element_collection (viennagrid::mesh< ConfigType > const &mesh_obj)
 For internal use only.
template<typename WrappedConfigT >
viennagrid::segmentation
< WrappedConfigT >
::view_type::element_collection_type & 
element_collection (viennagrid::segmentation< WrappedConfigT > &segmentation)
 For internal use only.
template<typename WrappedConfigT >
viennagrid::segmentation
< WrappedConfigT >
::view_type::element_collection_type
const & 
element_collection (viennagrid::segmentation< WrappedConfigT > const &segmentation)
 For internal use only.
template<typename SegmentationT >
viennagrid::detail::result_of::lookup
< typename
SegmentationT::appendix_type,
element_segment_mapping_tag >
::type & 
element_segment_mapping_collection (SegmentationT &segmentation)
template<typename SegmentationT >
viennagrid::detail::result_of::lookup
< typename
SegmentationT::appendix_type,
element_segment_mapping_tag >
::type const & 
element_segment_mapping_collection (SegmentationT const &segmentation)
template<typename segment_handle_type >
viennagrid::detail::result_of::lookup
< typename
segment_handle_type::segmentation_type::appendix_type,
element_segment_mapping_tag >
::type & 
element_segment_mapping_collection (segment_handle_type &segment)
template<typename segment_handle_type >
viennagrid::detail::result_of::lookup
< typename
segment_handle_type::segmentation_type::appendix_type,
element_segment_mapping_tag >
::type const & 
element_segment_mapping_collection (segment_handle_type const &segment)
template<typename SegmentHandleT , typename ElementSegmentMappingT , typename ContainerTagT >
void erase (SegmentHandleT &segment, segment_info_t< ElementSegmentMappingT, ContainerTagT > &segment_info)
 For internal use only.
template<typename SegmentHandleT , typename AccessorT , typename ElementT >
void erase (SegmentHandleT &segment, AccessorT accessor, ElementT const &element)
 For internal use only.
template<typename ContainerT >
ContainerT::iterator find (ContainerT &container, typename ContainerT::value_type::id_type id)
template<typename ContainerT >
ContainerT::const_iterator find (ContainerT const &container, typename ContainerT::value_type::id_type id)
template<typename ContainerT >
ContainerT::iterator find (ContainerT &container, typename ContainerT::value_type const &element)
template<typename ContainerT >
ContainerT::const_iterator find (ContainerT const &container, typename ContainerT::value_type const &element)
template<typename BaseContainerT >
view< BaseContainerT,
std_set_tag< id_compare_tag >
>::iterator 
find (view< BaseContainerT, std_set_tag< id_compare_tag > > &container, typename view< BaseContainerT, std_set_tag< id_compare_tag > >::value_type const &element)
template<typename BaseContainerT >
view< BaseContainerT,
std_set_tag< id_compare_tag >
>::const_iterator 
find (view< BaseContainerT, std_set_tag< id_compare_tag > > const &container, typename view< BaseContainerT, std_set_tag< id_compare_tag > >::value_type const &element)
template<typename SourceWrappedConfigT , typename DestinationWrappedConfigT >
void fix_handles (viennagrid::mesh< SourceWrappedConfigT > const &source_mesh_obj, viennagrid::mesh< DestinationWrappedConfigT > &destination_mesh)
 For internal use only.
template<typename collection_type , typename functor >
void for_each (collection_type &collection, functor f)
template<typename typelist , typename functor >
void for_each (functor &f)
template<typename typelist , typename functor >
void for_each (const functor &f)
template<typename typelist , typename collection_type , typename functor >
void for_each_typelist (collection_type &collection, functor &f)
template<typename src_container_typelist , typename dst_container_typelist >
void handle (collection< src_container_typelist > &src, collection< dst_container_typelist > &dst)
template<typename container_type , typename value_type , typename handle_tag >
result_of::handle_type
< container_type, handle_tag >
::type 
handle (container_type &container, value_type &value, handle_tag)
template<typename container_type , typename value_type , typename handle_tag >
result_of::const_handle_type
< container_type, handle_tag >
::type 
handle (container_type const &container, value_type const &value, handle_tag)
template<typename base_container_type , typename view_base_container_type , typename view_container_tag >
void handle (base_container_type &src_container, viennagrid::view< view_base_container_type, view_container_tag > &dst_view)
template<typename src_container_typelist , typename dst_container_typelist , typename predicate >
void handle_if (collection< src_container_typelist > &src, collection< dst_container_typelist > &dst, predicate pred)
template<typename base_container_type , typename view_base_container_type , typename handle_container_tag , typename predicate >
void handle_if (base_container_type &src_container, viennagrid::view< view_base_container_type, handle_container_tag > &dst_view, predicate pred)
template<typename container_collection_type , typename handle_type , typename element_type >
void handle_or_ignore (container_collection_type &collection, const handle_type &handle, viennagrid::detail::tag< element_type >)
template<typename container_collection_type , typename handle_type , typename element_type >
void handle_or_ignore (container_collection_type &collection, handle_type &handle, viennagrid::detail::tag< element_type >)
template<typename SegmentationType >
viennagrid::segment_handle
< SegmentationType >
::view_type::inserter_type::id_generator_type & 
id_generator (segment_handle< SegmentationType > &segment)
 For internal use only.
template<typename SegmentationType >
viennagrid::segment_handle
< SegmentationType >
::view_type::inserter_type::id_generator_type
const & 
id_generator (segment_handle< SegmentationType > const &segment)
 For internal use only.
template<typename ConfigType >
viennagrid::mesh< ConfigType >
::inserter_type::id_generator_type & 
id_generator (viennagrid::mesh< ConfigType > &mesh_obj)
 For internal use only.
template<typename ConfigType >
viennagrid::mesh< ConfigType >
::inserter_type::id_generator_type
const & 
id_generator (viennagrid::mesh< ConfigType > const &mesh_obj)
 For internal use only.
template<typename SegmentationType >
void increment_change_counter (segment_handle< SegmentationType > &segment)
 For internal use only.
template<typename WrappedConfigType >
void increment_change_counter (viennagrid::mesh< WrappedConfigType > &mesh_obj)
 For internal use only.
template<typename container_type >
void insert (container_type &container, const typename container_type::value_type &value)
template<typename type , typename compare , typename allocator >
void insert (std::set< type, compare, allocator > &container, const typename std::set< type, compare, allocator >::value_type &value)
template<typename KeyT , typename ValueT >
std::pair< typename
hidden_key_map< KeyT, ValueT >
::iterator, bool > 
insert (hidden_key_map< KeyT, ValueT > &container, const ValueT &element)
template<typename container_collection_element_type , typename inserter_type >
void insert_callback (container_collection_element_type &element, bool insert_result, inserter_type &inserter)
template<typename container_collection_element_type , typename inserter_type >
void insert_callback (container_collection_element_type const &element, bool insert_result, inserter_type &inserter)
template<typename inserter_type >
void insert_callback (bool &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (char &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (unsigned char &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (short &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (unsigned short &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (int &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (unsigned int &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (long &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (unsigned long &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (float &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (double &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const bool &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const char &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const unsigned char &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const short &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const unsigned short &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const int &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const unsigned int &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const long &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const unsigned long &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const float &, bool, inserter_type &)
template<typename inserter_type >
void insert_callback (const double &, bool, inserter_type &)
template<typename container_collection_type , typename element_type >
void insert_or_ignore (container_collection_type &collection, const element_type &element)
template<typename container_collection_type , typename element_type >
void insert_or_ignore (container_collection_type &collection, element_type &element)
template<typename ConfigType >
viennagrid::mesh< ConfigType >
::inserter_type & 
inserter (viennagrid::mesh< ConfigType > &mesh_obj)
 For internal use only.
template<typename ConfigType >
viennagrid::mesh< ConfigType >
::inserter_type const & 
inserter (viennagrid::mesh< ConfigType > const &mesh_obj)
 For internal use only.
template<typename SegmentationType >
viennagrid::segment_handle
< SegmentationType >
::view_type::inserter_type & 
inserter (segment_handle< SegmentationType > &segment)
 For internal use only.
template<typename SegmentationType >
viennagrid::segment_handle
< SegmentationType >
::view_type::inserter_type
const & 
inserter (segment_handle< SegmentationType > const &segment)
 For internal use only.
template<typename element_tag , typename segment_handle_type >
viennagrid::detail::result_of::lookup
< typename
viennagrid::detail::result_of::lookup
< typename
segment_handle_type::segmentation_type::appendix_type,
interface_information_collection_tag >
::type, element_tag >
::type::segment_interface_information_wrapper_type & 
interface_information_collection (segment_handle_type &seg0, segment_handle_type &seg1)
template<typename element_tag , typename segment_handle_type >
viennagrid::detail::result_of::lookup
< typename
viennagrid::detail::result_of::lookup
< typename
segment_handle_type::segmentation_type::appendix_type,
interface_information_collection_tag >
::type, element_tag >
::type::segment_interface_information_wrapper_type
const & 
interface_information_collection (segment_handle_type const &seg0, segment_handle_type const &seg1)
template<typename ElementT , typename AccessorT >
bool is_boundary (AccessorT const boundary_info_accessor, ElementT const &element)
 For internal use only.
template<typename NumericConfigT , typename NumericT >
bool is_equal (NumericConfigT nc, NumericT first, NumericT second)
template<typename container_type , typename handle_type >
bool is_handle_invalid (container_type const &container, handle_type handle)
template<typename container_type , typename handle_type >
bool is_handle_invalid (container_type &container, handle_type handle)
template<typename segment_handle_type , typename element_segment_mapping_type , typename container_tag >
bool is_in_segment (segment_handle_type const &segment, segment_info_t< element_segment_mapping_type, container_tag > const &segment_info)
 For internal use only.
template<typename segment_handle_type , typename accessor_type , typename element_type >
bool is_in_segment (segment_handle_type const &segment, accessor_type const accessor, element_type const &element)
 For internal use only.
template<typename PointAccessorT , typename ElementT , typename CoordType , typename CoordinateSystem , typename NumericConfigT >
bool is_inside_impl (PointAccessorT const accessor, ElementT const &element, viennagrid::triangle_tag, spatial_point< CoordType, CoordinateSystem > const &p, NumericConfigT numeric_config)
 Is inside implementation for triangle in arbitrary dimensions.
template<typename ElementT , typename AccessorT >
bool is_interface (AccessorT const accessor, ElementT const &el)
 For internal use only.
template<typename NumericConfigT , typename NumericT >
bool is_not_equal (NumericConfigT nc, NumericT first, NumericT second)
template<typename SegmentationType >
bool is_obsolete (segment_handle< SegmentationType > const &segment, typename segment_handle< SegmentationType >::view_type::change_counter_type change_counter_to_check)
 For internal use only.
template<typename WrappedConfigType >
bool is_obsolete (viennagrid::mesh< WrappedConfigType > const &mesh_obj, typename viennagrid::mesh< WrappedConfigType >::change_counter_type change_counter_to_check)
 For internal use only.
template<typename PointType >
PointType line_intersection (PointType const &a, PointType const &b, PointType const &c, PointType const &d)
 Computes the intersection of the two lines [a,b] and [c,d].
template<typename element_tag , typename connector_element_tag , typename mesh_type >
viennagrid::detail::result_of::lookup
< typename
viennagrid::detail::result_of::lookup
< typename
mesh_type::appendix_type,
neighbor_collection_tag >
::type,
viennagrid::static_pair
< element_tag,
connector_element_tag >
>::type & 
neighbor_collection (mesh_type &mesh_obj)
 For internal use only.
template<typename element_tag , typename connector_element_tag , typename mesh_type >
viennagrid::detail::result_of::lookup
< typename
viennagrid::detail::result_of::lookup
< typename
mesh_type::appendix_type,
neighbor_collection_tag >
::type,
viennagrid::static_pair
< element_tag,
connector_element_tag >
>::type const & 
neighbor_collection (mesh_type const &mesh_obj)
 For internal use only.
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename neigbour_accessor_type , typename ElementTag , typename WrappedConfigT >
viennagrid::detail::container_range_wrapper
< typename
neigbour_accessor_type::value_type > 
neighbor_elements (neigbour_accessor_type accessor, viennagrid::element< ElementTag, WrappedConfigT > &element)
 For internal use only.
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename neigbour_accessor_type , typename ElementTag , typename WrappedConfigT >
viennagrid::detail::container_range_wrapper
< const typename
neigbour_accessor_type::value_type > 
neighbor_elements (neigbour_accessor_type const accessor, viennagrid::element< ElementTag, WrappedConfigT > const &element)
 For internal use only.
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename neigbour_accessor_type , typename WrappedConfigT , typename ElementOrHandleT >
viennagrid::detail::container_range_wrapper
< typename
neigbour_accessor_type::value_type > 
neighbor_elements (viennagrid::mesh< WrappedConfigT > &mesh_obj, neigbour_accessor_type accessor, ElementOrHandleT &element_or_handle)
 For internal use only.
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename neigbour_accessor_type , typename WrappedConfigT , typename ElementOrHandleT >
viennagrid::detail::container_range_wrapper
< const typename
neigbour_accessor_type::value_type > 
neighbor_elements (viennagrid::mesh< WrappedConfigT > const &mesh_obj, neigbour_accessor_type const accessor, ElementOrHandleT const &element_or_handle)
 For internal use only.
template<typename MeshT , typename UnvisitedCellMapT >
void neighbor_mark (MeshT const &mesh, UnvisitedCellMapT &unvisitied_cells)
 For internal use only.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type normal_vector_impl (PointAccessorT const point_accessor, ElementT const &element, viennagrid::vertex_tag, viennagrid::dimension_tag< 1 >)
 Implementation for calculating a normal vector of a vertex in 1D.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type normal_vector_impl (PointAccessorT const point_accessor, ElementT const &element, viennagrid::line_tag, viennagrid::dimension_tag< 2 >)
 Implementation for calculating a normal vector of a line in 2D.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type normal_vector_impl (PointAccessorT const point_accessor, ElementT const &element, viennagrid::triangle_tag, viennagrid::dimension_tag< 3 >)
 Implementation for calculating a normal vector of a triangle in 3D.
template<typename PointAccessorT , typename ElementT >
PointAccessorT::value_type normal_vector_impl (PointAccessorT const point_accessor, ElementT const &element, viennagrid::quadrilateral_tag, viennagrid::dimension_tag< 3 >)
 Implementation for calculating a normal vector of a quadrilateral in 3D.
template<typename value_type , typename base_id_type >
bool operator< (smart_id< value_type, base_id_type > const &lhs, smart_id< value_type, base_id_type > const &rhs)
template<typename value_type , typename base_id_type >
bool operator< (smart_id< const value_type, base_id_type > const &lhs, smart_id< value_type, base_id_type > const &rhs)
template<typename value_type , typename base_id_type >
bool operator< (smart_id< value_type, base_id_type > const &lhs, smart_id< const value_type, base_id_type > const &rhs)
template<typename value_type , typename base_id_type >
bool operator< (smart_id< const value_type, base_id_type > const &lhs, smart_id< const value_type, base_id_type > const &rhs)
template<typename container_typemap >
std::ostream & operator<< (std::ostream &os, const viennagrid::collection< container_typemap > &container_collection)
template<typename value_type_ , typename base_id_type >
std::ostream & operator<< (std::ostream &os, smart_id< value_type_, base_id_type > id)
template<typename CoordT , typename CoordinateSystemT >
std::pair< spatial_point
< CoordT, CoordinateSystemT >
, spatial_point< CoordT,
CoordinateSystemT > > const & 
point_pair_with_shortest_distance (std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_1, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_2)
template<typename CoordT , typename CoordinateSystemT >
std::pair< spatial_point
< CoordT, CoordinateSystemT >
, spatial_point< CoordT,
CoordinateSystemT > > const & 
point_pair_with_shortest_distance (std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_1, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_2, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_3)
template<typename CoordT , typename CoordinateSystemT >
std::pair< spatial_point
< CoordT, CoordinateSystemT >
, spatial_point< CoordT,
CoordinateSystemT > > const & 
point_pair_with_shortest_distance (std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_1, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_2, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_3, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_4)
template<typename CoordT , typename CoordinateSystemT >
std::pair< spatial_point
< CoordT, CoordinateSystemT >
, spatial_point< CoordT,
CoordinateSystemT > > const & 
point_pair_with_shortest_distance (std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_1, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_2, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_3, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_4, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_5)
template<typename CoordT , typename CoordinateSystemT >
std::pair< spatial_point
< CoordT, CoordinateSystemT >
, spatial_point< CoordT,
CoordinateSystemT > > const & 
point_pair_with_shortest_distance (std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_1, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_2, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_3, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_4, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_5, std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &pair_6)
template<typename TriangleType >
viennagrid::result_of::point
< TriangleType >::type 
point_to_local_coordinates (typename viennagrid::result_of::point< TriangleType >::type const &p, const TriangleType &triangle)
 Converts a point to local (barycentric) coordinates (lambda_1, lambda_2). lambda_3 = 1 - lambda_1 - lambda_2 is not stored explicitly.
template<bool generate_id, bool call_callback, typename mesh_type , typename ElementTag , typename WrappedConfigType >
std::pair< typename
viennagrid::result_of::container_of
< typename
viennagrid::result_of::element_collection
< mesh_type >::type,
viennagrid::element
< ElementTag,
WrappedConfigType >
>::type::handle_type, bool > 
push_element (mesh_type &mesh_obj, viennagrid::element< ElementTag, WrappedConfigType > const &element)
 For internal use only.
template<bool generate_id, bool call_callback, typename SegmentationType , typename ElementTag , typename WrappedConfigType >
std::pair< typename
viennagrid::result_of::container_of
< typename
viennagrid::result_of::element_collection
< viennagrid::segment_handle
< SegmentationType > >::type,
viennagrid::element
< ElementTag,
WrappedConfigType >
>::type::handle_type, bool > 
push_element (viennagrid::segment_handle< SegmentationType > &segment, viennagrid::element< ElementTag, WrappedConfigType > const &element)
 For internal use only.
template<typename SourceTag , typename DestinationTag , typename MeshOrSegmentT , typename SourceAccessorT , typename DestinationSetterT , typename AveragerT , typename SourceFilterT , typename DestinationFilterT >
void quantity_transfer (MeshOrSegmentT const &mesh_or_segment, SourceAccessorT const &accessor_src, DestinationSetterT &setter_dest, AveragerT const &averager, SourceFilterT const &filter_src, DestinationFilterT const &filter_dest, boundary_quantity_transfer_tag)
template<typename SourceTag , typename DestinationTag , typename MeshOrSegmentT , typename SourceAccessorT , typename DestinationSetterT , typename AveragerT , typename SourceFilterT , typename DestinationFilterT >
void quantity_transfer (MeshOrSegmentT const &mesh_or_segment, SourceAccessorT const &accessor_src, DestinationSetterT &setter_dest, AveragerT const &averager, SourceFilterT const &filter_src, DestinationFilterT const &filter_dest, coboundary_quantity_transfer_tag)
template<typename CellTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename PointAccessorT , typename VertexCopyMapT , typename EdgeRefinementFlagAccessorT , typename RefinementVertexAccessorT >
void refine_impl (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, PointAccessorT const point_accessor_in, VertexCopyMapT &vertex_copy_map_, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor, RefinementVertexAccessorT &edge_to_vertex_handle_accessor)
 For internal use only.
template<typename CellTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename PointAccessorT , typename VertexCopyMapT , typename EdgeRefinementFlagAccessorT , typename RefinementVertexAccessorT >
void refine_impl (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, PointAccessorT const point_accessor_in, VertexCopyMapT &vertex_copy_map_, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor, RefinementVertexAccessorT &edge_to_vertex_handle_accessor)
 For internal use only.
template<typename OuterNumericT , typename NumericConfigT >
result_of::numeric_type
< NumericConfigT,
OuterNumericT >::type 
relative_tolerance (NumericConfigT config, OuterNumericT base)
template<typename OuterNumericT >
result_of::numeric_type
< double, OuterNumericT >
::type 
relative_tolerance (double eps, OuterNumericT base)
template<typename segment_handle_type , typename element_segment_mapping_type , typename container_tag >
element_segment_mapping_type::segment_element_info_type * segment_element_info (segment_handle_type const &segment, segment_info_t< element_segment_mapping_type, container_tag > &segment_info)
 For internal use only.
template<typename segment_handle_type , typename element_segment_mapping_type , typename container_tag >
element_segment_mapping_type::segment_element_info_type
const * 
segment_element_info (segment_handle_type const &segment, segment_info_t< element_segment_mapping_type, container_tag > const &segment_info)
 For internal use only.
template<typename segment_handle_type , typename accessor_type , typename element_type >
accessor_type::value_type::segment_element_info_type * segment_element_info (segment_handle_type &segment, accessor_type accessor, element_type const &element)
 For internal use only.
template<typename segment_handle_type , typename accessor_type , typename element_type >
accessor_type::value_type::segment_element_info_type
const * 
segment_element_info (segment_handle_type const &segment, const accessor_type accessor, element_type const &element)
 For internal use only.
template<typename container_type , typename handle_type >
void set_handle_invalid (container_type const &, handle_type &handle, pointer_handle_tag)
template<typename container_type , typename handle_type >
void set_handle_invalid (container_type &container, handle_type &handle, iterator_handle_tag)
template<typename container_type , typename handle_type >
void set_handle_invalid (container_type const &container, handle_type &handle, iterator_handle_tag)
template<typename container_type , typename handle_type >
void set_handle_invalid (container_type &, handle_type &handle, id_handle_tag)
template<typename container_type , typename handle_type >
void set_handle_invalid (container_type const &, handle_type &handle, id_handle_tag)
template<typename container_type , typename handle_type >
void set_handle_invalid (container_type const &container, handle_type &handle)
template<typename container_type , typename handle_type >
void set_handle_invalid (container_type &container, handle_type &handle)
template<typename element_type , typename id_type >
void set_id (element_type &element, id_type id)
template<typename id_type >
void set_id (bool &, id_type)
template<typename id_type >
void set_id (char &, id_type)
template<typename id_type >
void set_id (unsigned char &, id_type)
template<typename id_type >
void set_id (short &, id_type)
template<typename id_type >
void set_id (unsigned short &, id_type)
template<typename id_type >
void set_id (int &, id_type)
template<typename id_type >
void set_id (unsigned int &, id_type)
template<typename id_type >
void set_id (long &, id_type)
template<typename id_type >
void set_id (unsigned long &, id_type)
template<typename id_type >
void set_id (float &, id_type)
template<typename id_type >
void set_id (double &, id_type)
template<typename SegmentHandleT , typename ElementTagT , typename WrappedConfigT >
void simple_add (SegmentHandleT &segment, viennagrid::element< ElementTagT, WrappedConfigT > &element)
 For internal use only.
template<typename SegmentHandleT , typename ElementTagT , typename WrappedConfigT >
void simple_unchecked_add (SegmentHandleT &segment, viennagrid::element< ElementTagT, WrappedConfigT > &element)
 For internal use only.
template<typename MeshT , typename VertexHandleT >
bool stable_line_is_longer (MeshT const &mesh, VertexHandleT vh1_1, VertexHandleT vh1_2, VertexHandleT vh2_1, VertexHandleT vh2_2)
 Compares the lines (v1_1, v1_2) and (v2_1, v2_2) and returns true if the first is longer.
template<typename MeshT , typename VertexHandleContainer >
bool stable_line_is_longer (MeshT const &mesh, VertexHandleContainer vertices, unsigned int i0, unsigned int i1, unsigned int i2, unsigned int i3)
template<typename ElementTypeOrTag , typename MeshT >
viennagrid::result_of::coord
< MeshT >::type 
surface_meshsegment (MeshT const &mesh_obj)
 Implementation for the calculation of the surface of a mesh or segment.
template<typename MeshT , typename HandleT >
void switch_handle (MeshT &mesh_obj, HandleT old_handle, HandleT new_handle)
 For internal use only.
template<typename MeshT , typename SourceAccessorT , typename DestinationAccessorT >
void transfer_boundary_information (MeshT const &mesh_obj, SourceAccessorT const source_boundary_info_accessor, DestinationAccessorT destination_boundary_info_accessor)
 For internal use only.
template<typename WrappedConfigT >
void transfer_boundary_information (mesh< WrappedConfigT > &mesh_obj)
 For internal use only.
template<typename SegmentationT >
void transfer_boundary_information (segment_handle< SegmentationT > &segment)
 For internal use only.
template<typename SegmentationT >
void transfer_interface_information (segment_handle< SegmentationT > &seg0, segment_handle< SegmentationT > &seg1)
 For internal use only.
template<typename SegmentationType >
void update_change_counter (segment_handle< SegmentationType > &segment, typename segment_handle< SegmentationType >::view_type::change_counter_type &change_counter_to_update)
 For internal use only.
template<typename WrappedConfigType >
void update_change_counter (viennagrid::mesh< WrappedConfigType > &mesh_obj, typename viennagrid::mesh< WrappedConfigType >::change_counter_type &change_counter_to_update)
 For internal use only.
template<typename PointAccessorT , typename ElementT >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
volume_impl (PointAccessorT const, ElementT const &, viennagrid::vertex_tag)
 Computes the volume of topologically zero-dimensional elements (vertices). Degenerate case, returns 1.
template<typename PointAccessorT , typename ElementT >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
volume_impl (PointAccessorT const accessor, ElementT const &cell, viennagrid::simplex_tag< 1 >)
 Computes the volume of topologically one-dimensional elements (lines, 1-simplex).
template<typename PointAccessorT , typename ElementT >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
volume_impl (PointAccessorT const accessor, ElementT const &cell, viennagrid::hypercube_tag< 1 >)
 Computes the volume of topologically one-dimensional elements (lines, 1-hypercube).
template<typename PointAccessorT , typename ElementT >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
volume_impl (PointAccessorT const accessor, ElementT const &cell, viennagrid::triangle_tag)
 Computes the two-dimensional volume of a triangle.
template<typename PointAccessorT , typename ElementT >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
volume_impl (PointAccessorT const accessor, ElementT const &cell, viennagrid::quadrilateral_tag)
 Computes the two-dimensional volume of a quadrilateral.
template<typename PointAccessorT , typename ElementT >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
volume_impl (PointAccessorT const accessor, ElementT const &cell, viennagrid::polygon_tag)
 Computes the two-dimensional volume of a polygon.
template<typename PointAccessorT , typename ElementT >
viennagrid::result_of::coord
< typename
PointAccessorT::value_type >
::type 
volume_impl (PointAccessorT const accessor, ElementT const &cell, viennagrid::hexahedron_tag)
 Computes the three-dimensional volume of a hexahedron.
template<typename ElementTOrTag , typename MeshSegmentHandleType >
viennagrid::result_of::coord
< MeshSegmentHandleType >
::type 
volume_mesh (MeshSegmentHandleType const &mesh_obj)
 Dispatched function for computing the volume of a mesh or segment.
template<typename ContainerT , typename PairT >
void voronoi_unique_quantity_update (ContainerT &container, PairT const &update_pair)
 Adds a pair [CellPtr, contribution] to the Voronoi quantities stored in the container. If data for the particular Cell are already stored, no new element is inserted, but existing 'contribution' is updated.
template<typename CellTag , typename MeshT , typename InterfaceAreaAccessorT , typename InterfaceAreaCellContributionAccessorT , typename VertexBoxVolumeAccessorT , typename VertexBoxVolumeCellContributionAccessorT , typename EdgeBoxVolumeAccessorT , typename EdgeBoxVolumeCellContributionAccessorT >
void write_voronoi_info (MeshT const &mesh_obj, InterfaceAreaAccessorT interface_area_accessor, InterfaceAreaCellContributionAccessorT interface_area_cell_contribution_accessor, VertexBoxVolumeAccessorT vertex_box_volume_accessor, VertexBoxVolumeCellContributionAccessorT vertex_box_volume_cell_contribution_accessor, EdgeBoxVolumeAccessorT edge_box_volume_accessor, EdgeBoxVolumeCellContributionAccessorT edge_box_volume_cell_contribution_accessor, viennagrid::simplex_tag< 1 >)
 Implementation of the computation of Voronoi quantities for a one-dimensional mesh (line, 1-simplex)
template<typename CellTag , typename MeshT , typename InterfaceAreaAccessorT , typename InterfaceAreaCellContributionAccessorT , typename VertexBoxVolumeAccessorT , typename VertexBoxVolumeCellContributionAccessorT , typename EdgeBoxVolumeAccessorT , typename EdgeBoxVolumeCellContributionAccessorT >
void write_voronoi_info (MeshT const &mesh_obj, InterfaceAreaAccessorT interface_area_accessor, InterfaceAreaCellContributionAccessorT interface_area_cell_contribution_accessor, VertexBoxVolumeAccessorT vertex_box_volume_accessor, VertexBoxVolumeCellContributionAccessorT vertex_box_volume_cell_contribution_accessor, EdgeBoxVolumeAccessorT edge_box_volume_accessor, EdgeBoxVolumeCellContributionAccessorT edge_box_volume_cell_contribution_accessor, viennagrid::hypercube_tag< 1 >)
 Implementation of the computation of Voronoi quantities for a one-dimensional mesh (line, 1-hypercube)
template<typename CellTag , typename MeshT , typename InterfaceAreaAccessorT , typename InterfaceAreaCellContributionAccessorT , typename VertexBoxVolumeAccessorT , typename VertexBoxVolumeCellContributionAccessorT , typename EdgeBoxVolumeAccessorT , typename EdgeBoxVolumeCellContributionAccessorT >
void write_voronoi_info (MeshT const &mesh_obj, InterfaceAreaAccessorT interface_area_accessor, InterfaceAreaCellContributionAccessorT interface_area_cell_contribution_accessor, VertexBoxVolumeAccessorT vertex_box_volume_accessor, VertexBoxVolumeCellContributionAccessorT vertex_box_volume_cell_contribution_accessor, EdgeBoxVolumeAccessorT edge_box_volume_accessor, EdgeBoxVolumeCellContributionAccessorT edge_box_volume_cell_contribution_accessor, viennagrid::quadrilateral_tag)
 Implementation of the computation of Voronoi quantities for a quadrilateral mesh.
template<typename CellTag , typename MeshT , typename InterfaceAreaAccessorT , typename InterfaceAreaCellContributionAccessorT , typename VertexBoxVolumeAccessorT , typename VertexBoxVolumeCellContributionAccessorT , typename EdgeBoxVolumeAccessorT , typename EdgeBoxVolumeCellContributionAccessorT >
void write_voronoi_info (MeshT const &mesh_obj, InterfaceAreaAccessorT interface_area_accessor, InterfaceAreaCellContributionAccessorT interface_area_cell_contribution_accessor, VertexBoxVolumeAccessorT vertex_box_volume_accessor, VertexBoxVolumeCellContributionAccessorT vertex_box_volume_cell_contribution_accessor, EdgeBoxVolumeAccessorT edge_box_volume_accessor, EdgeBoxVolumeCellContributionAccessorT edge_box_volume_cell_contribution_accessor, viennagrid::triangle_tag)
 Implementation of the computation of Voronoi quantities for a triangular mesh.
template<typename CellTag , typename MeshT , typename InterfaceAreaAccessorT , typename InterfaceAreaCellContributionAccessorT , typename VertexBoxVolumeAccessorT , typename VertexBoxVolumeCellContributionAccessorT , typename EdgeBoxVolumeAccessorT , typename EdgeBoxVolumeCellContributionAccessorT >
void write_voronoi_info (MeshT const &mesh_obj, InterfaceAreaAccessorT interface_area_accessor, InterfaceAreaCellContributionAccessorT interface_area_cell_contribution_accessor, VertexBoxVolumeAccessorT vertex_box_volume_accessor, VertexBoxVolumeCellContributionAccessorT vertex_box_volume_cell_contribution_accessor, EdgeBoxVolumeAccessorT edge_box_volume_accessor, EdgeBoxVolumeCellContributionAccessorT edge_box_volume_cell_contribution_accessor, viennagrid::hexahedron_tag)
 Implementation of the computation of Voronoi quantities for a hexahedral mesh.

Detailed Description

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


Typedef Documentation

typedef viennagrid::make_typemap< viennagrid::default_tag, viennagrid::handled_container_tag<viennagrid::std_deque_tag, viennagrid::pointer_handle_tag> >::type default_container_config

Function Documentation

result_of::numeric_type<NumericConfigT, OuterNumericT>::type viennagrid::detail::absolute_tolerance ( NumericConfigT  config)
result_of::numeric_type<double, OuterNumericT>::type viennagrid::detail::absolute_tolerance ( double  eps)
void viennagrid::detail::add ( segment_handle_type &  segment,
segment_info_t< element_segment_mapping_type, container_tag > &  segment_info 
)

For internal use only.

void viennagrid::detail::add ( segment_handle_type &  segment,
accessor_type  accessor,
element_type &  element 
)

For internal use only.

void viennagrid::detail::add_refinement_element ( ElementsVerticesHandleContainerT &  elements_vertices,
VertexHandleContainer  vertex_handle_container,
unsigned int  i0,
unsigned int  i1,
unsigned int  i2 
)
void viennagrid::detail::add_refinement_element ( ElementsVerticesHandleContainerT &  elements_vertices,
VertexHandleContainerT  vertex_handle_container,
unsigned int  i0,
unsigned int  i1,
unsigned int  i2,
unsigned int  i3 
)
viennagrid::result_of::coord<PointT1>::type viennagrid::detail::boundary_distance_impl ( PointT1 const &  p1,
PointT2 const &  p2 
)
viennagrid::result_of::coord<PointT1>::type viennagrid::detail::boundary_distance_impl ( std::pair< PointT1, PointT2 > const &  pts)
CoordT1 viennagrid::detail::boundary_distance_impl ( PointAccessorT  const,
spatial_point< CoordT1, CoordinateSystemT1 > const &  p1,
spatial_point< CoordT2, CoordinateSystemT2 > const &  p2 
)
viennagrid::result_of::coord<PointT>::type viennagrid::detail::boundary_distance_impl ( PointAccessorT const  accessor,
PointT const &  p1,
viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &  v2 
)
viennagrid::result_of::coord<typename PointAccessorT::value_type>::type viennagrid::detail::boundary_distance_impl ( PointAccessorT const  accessor,
viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &  v1,
PointT const &  p2 
)
viennagrid::result_of::coord<typename PointAccessorT::value_type>::type viennagrid::detail::boundary_distance_impl ( PointAccessorT const  accessor,
viennagrid::element< viennagrid::vertex_tag, WrappedConfigT1 > const &  v1,
viennagrid::element< viennagrid::vertex_tag, WrappedConfigT2 > const &  v2 
)
viennagrid::result_of::coord<typename PointAccessorT::value_type>::type viennagrid::detail::boundary_distance_impl ( PointAccessorT const  accessor,
SomethingT1 const &  el1,
SomethingT2 const &  el2 
)
viennagrid::detail::result_of::lookup< typename viennagrid::detail::result_of::lookup< typename mesh_type::appendix_type, boundary_information_collection_tag >::type, element_tag >::type& viennagrid::detail::boundary_information_collection ( mesh_type &  mesh_obj)

For internal use only.

viennagrid::detail::result_of::lookup< typename viennagrid::detail::result_of::lookup< typename mesh_type::appendix_type, boundary_information_collection_tag >::type, element_tag >::type const& viennagrid::detail::boundary_information_collection ( mesh_type const &  mesh_obj)

For internal use only.

PointAccessorT::value_type centroid ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::triangle_tag   
)

Implementation of the calculation of a centroid for a triangle.

Implementation of the calculation of a centroid for a tetrahedron.

PointAccessorT::value_type viennagrid::detail::centroid ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::quadrilateral_tag   
)

Implementation of the calculation of a centroid for a quadrilateral.

PointAccessorT::value_type viennagrid::detail::centroid ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::hexahedron_tag   
)

Implementation of the calculation of a centroid for a hexahedron.

PointAccessorT::value_type viennagrid::detail::centroid ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::simplex_tag< 1 >   
)

Implementation of the calculation of a centroid for a line (1-simplex)

PointAccessorT::value_type viennagrid::detail::centroid ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::hypercube_tag< 1 >   
)

Implementation of the calculation of a centroid for a line (1-hypercube)

PointAccessorT::value_type viennagrid::detail::centroid ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::vertex_tag   
)

Implementation of the calculation of a centroid for a point.

viennagrid::result_of::point<MeshSegmentHandleType>::type viennagrid::detail::centroid_mesh ( MeshSegmentHandleType const &  mesh_obj,
PointAccessorT const  point_accessor 
)

Implementation of the calculation of a centroid for a mesh/segment.

viennagrid::result_of::point<GeometricContainerT>::type viennagrid::detail::circumcenter ( ElementT const &  ,
GeometricContainerT const &  ,
ElementTag const &  ,
DimensionTag const &   
)

Throws a compile time error if the n-cell type is not supported.

PointAccessorT::value_type viennagrid::detail::circumcenter ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::vertex_tag   
)

Implementation of the calculation of a circumcenter for a point (degenerate case)

PointAccessorT::value_type viennagrid::detail::circumcenter ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::simplex_tag< 1 >  ,
DimensionTag   
)

Implementation of the calculation of a circumcenter for a line (1-simplex)

PointAccessorT::value_type viennagrid::detail::circumcenter ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::hypercube_tag< 1 >  ,
DimensionTag   
)

Implementation of the calculation of a circumcenter for a line (1-hypercube)

PointAccessorT::value_type viennagrid::detail::circumcenter ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::triangle_tag  ,
viennagrid::dimension_tag< 2 >   
)

Implementation of the calculation of a circumcenter for a triangle in two dimensions.

PointAccessorT::value_type viennagrid::detail::circumcenter ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::quadrilateral_tag  ,
viennagrid::dimension_tag< 2 >   
)

Implementation of the calculation of a circumcenter for a quadrilateral in two dimensions. Mind that the user has to ensure that the quadrilateral actually has a circumcenter!

PointAccessorT::value_type circumcenter ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::triangle_tag  ,
viennagrid::dimension_tag< 3 >   
)

Implementation of the calculation of a circumcenter for a triangle in three dimensions.

Implementation of the calculation of a circumcenter for a tetrahedron in three dimensions.

PointAccessorT::value_type viennagrid::detail::circumcenter ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::quadrilateral_tag  ,
viennagrid::dimension_tag< 3 >   
)

Implementation of the calculation of a circumcenter for a quadrilateral in three dimensions. Mind that the user has to ensure that the quadrilateral actually has a circumcenter!

PointAccessorT::value_type viennagrid::detail::circumcenter ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::hexahedron_tag  ,
viennagrid::dimension_tag< 3 >   
)

Implementation of the calculation of a circumcenter for a hexahedron in three dimensions. Mind that the user has to ensure that the quadrilateral actually has a circumcenter!

void viennagrid::detail::clear_all ( viennagrid::collection< container_collection_typemap > &  container_collection)
std::pair<PointT, PointT> viennagrid::detail::closest_points_impl ( PointT const &  p1,
PointT const &  p2 
)
std::pair< spatial_point<CoordT1, CoordinateSystemT1>, spatial_point<CoordT2, CoordinateSystemT2> > viennagrid::detail::closest_points_impl ( PointAccessorT  const,
spatial_point< CoordT1, CoordinateSystemT1 > const &  p1,
spatial_point< CoordT2, CoordinateSystemT2 > const &  p2 
)
std::pair<PointT, typename viennagrid::result_of::point<viennagrid::element< vertex_tag,WrappedConfigT> >::type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
PointT const &  p1,
viennagrid::element< vertex_tag, WrappedConfigT > const &  v2 
)
std::pair<typename viennagrid::result_of::point<viennagrid::element< vertex_tag,WrappedConfigT> >::type, PointT> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT > const &  v1,
PointT const &  p2 
)
std::pair<typename viennagrid::result_of::point<viennagrid::element< vertex_tag,WrappedConfigT> >::type, typename viennagrid::result_of::point<viennagrid::element< vertex_tag,WrappedConfigT> >::type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT > const &  v1,
viennagrid::element< vertex_tag, WrappedConfigT > const &  v2 
)
std::pair< PointT, typename PointAccessorT::value_type > viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
PointT const &  p,
viennagrid::element< simplex_tag< 1 >, WrappedConfigT > const &  el 
)
std::pair< PointT, typename PointAccessorT::value_type > viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
PointT const &  p,
viennagrid::element< hypercube_tag< 1 >, WrappedConfigT > const &  el 
)
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT1 > const &  v,
viennagrid::element< simplex_tag< 1 >, WrappedConfigT2 > const &  el 
)
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT1 > const &  v,
viennagrid::element< simplex_tag< 1 >, WrappedConfigT2 > const &  el 
)
std::pair<typename PointAccessorT::value_type, typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< simplex_tag< 1 >, WrappedConfigT1 > const &  line0,
viennagrid::element< simplex_tag< 1 >, WrappedConfigT2 > const &  line1 
)
std::pair<typename PointAccessorT::value_type, typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< hypercube_tag< 1 >, WrappedConfigT1 > const &  line0,
viennagrid::element< simplex_tag< 1 >, WrappedConfigT2 > const &  line1 
)
std::pair<typename PointAccessorT::value_type, typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< simplex_tag< 1 >, WrappedConfigT1 > const &  line0,
viennagrid::element< hypercube_tag< 1 >, WrappedConfigT2 > const &  line1 
)
std::pair<typename PointAccessorT::value_type, typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< hypercube_tag< 1 >, WrappedConfigT1 > const &  line0,
viennagrid::element< hypercube_tag< 1 >, WrappedConfigT2 > const &  line1 
)
std::pair<spatial_point<CoordT, CoordinateSystemT>, typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
spatial_point< CoordT, CoordinateSystemT > const &  p,
viennagrid::element< simplex_tag< 2 >, WrappedConfigT > const &  el 
)
std::pair<typename PointAccessorT::value_type,typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT1 > const &  v,
viennagrid::element< simplex_tag< 2 >, WrappedConfigT2 > const &  el 
)
std::pair<spatial_point<CoordT, CoordinateSystemT>, typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
spatial_point< CoordT, CoordinateSystemT > const &  p,
viennagrid::element< hypercube_tag< 2 >, WrappedConfigT > const &  el 
)
std::pair<typename PointAccessorT::value_type,typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT1 > const &  v,
viennagrid::element< hypercube_tag< 2 >, WrappedConfigT2 > const &  el 
)
std::pair<spatial_point<CoordT, CoordinateSystemT>,typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
spatial_point< CoordT, CoordinateSystemT > const &  p,
viennagrid::element< simplex_tag< 3 >, WrappedConfigT > const &  el 
)
std::pair<typename PointAccessorT::value_type,typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT1 > const &  v,
viennagrid::element< simplex_tag< 3 >, WrappedConfigT2 > const &  el 
)
std::pair<PointT,typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
PointT const &  p,
viennagrid::element< hypercube_tag< 3 >, WrappedConfigT > const &  el 
)
std::pair<typename PointAccessorT::value_type,typename PointAccessorT::value_type> viennagrid::detail::closest_points_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT1 > const &  v,
viennagrid::element< hypercube_tag< 3 >, WrappedConfigT2 > const &  el 
)
std::pair<PointT, PointT> viennagrid::detail::closest_points_line_line ( PointT const &  v0,
PointT const &  v1,
PointT const &  w0,
PointT const &  w1 
)
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > viennagrid::detail::closest_points_on_boundary_generic ( PointAccessorT const  accessor,
SomethingT1 const &  el1,
SomethingT2 const &  el2 
)
std::pair<PointT, PointT> viennagrid::detail::closest_points_on_boundary_impl ( PointT const &  p1,
PointT const &  p2 
)
std::pair< spatial_point<CoordT1, CoordinateSystemT1>, spatial_point<CoordT1, CoordinateSystemT1> > viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT  const,
spatial_point< CoordT1, CoordinateSystemT1 > const &  p1,
spatial_point< CoordT2, CoordinateSystemT2 > const &  p2 
)
std::pair< typename viennagrid::result_of::point< viennagrid::element< vertex_tag, WrappedConfigT > >::type, PointT > closest_points_on_boundary_impl ( PointAccessorT const  accessor,
PointT const &  p1,
viennagrid::element< vertex_tag, WrappedConfigT > const &  v2 
)
std::pair<typename viennagrid::result_of::point<viennagrid::element< vertex_tag,WrappedConfigT> >::type, typename viennagrid::result_of::point<viennagrid::element< vertex_tag,WrappedConfigT> >::type> viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT > const &  v1,
viennagrid::element< vertex_tag, WrappedConfigT > const &  v2 
)
std::pair<PointT, typename PointAccessorT::value_type> viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT const &  mesh_obj,
PointT const &  v,
viennagrid::element< ElementTag, WrappedConfigT > const &  el 
)
std::pair<PointT, typename viennagrid::result_of::point< viennagrid::mesh<WrappedConfigT> >::type> viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT const  point_accessor,
PointT const &  p,
mesh< WrappedConfigT > const &  mesh_obj 
)
std::pair<PointT, typename viennagrid::result_of::point< segment_handle<SegmentationT> >::type> viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT const  point_accessor,
PointT const &  p,
segment_handle< SegmentationT > const &  segment 
)
std::pair<typename PointAccessorT::value_type, typename PointAccessorT::value_type> viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT const  accessor,
viennagrid::element< vertex_tag, WrappedConfigT1 > const &  v,
viennagrid::element< EA2, WrappedConfigT2 > const &  el 
)
std::pair< typename viennagrid::result_of::point< mesh<WrappedMeshConfigType> >::type, typename viennagrid::result_of::point< mesh<WrappedMeshConfigType> >::type > viennagrid::detail::closest_points_on_boundary_impl ( viennagrid::element< vertex_tag, WrappedConfigT > const &  v,
mesh< WrappedMeshConfigType > const &  mesh_obj 
)
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT const  accessor,
viennagrid::element< ElementTag1, WrappedConfigT1 > const &  el1,
viennagrid::element< ElementTag2, WrappedConfigT2 > const &  el2 
)
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT const  accessor,
viennagrid::element< ElementTag, WrappedConfigT > const &  el1,
mesh< WrappedMeshConfigType > const &  mesh_obj 
)
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT const  accessor,
viennagrid::element< ElementTag, WrappedConfigT > const &  el1,
segment_handle< SegmentationT > const &  segment 
)
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > viennagrid::detail::closest_points_on_boundary_impl ( PointAccessorT const  accessor,
segment_handle< Segmentation1T > const &  segment1,
segment_handle< Segmentation2T > const &  segment2 
)
std::pair<PointT, typename PointAccessorT::value_type> viennagrid::detail::closest_points_on_boundary_point_to_any ( PointAccessorT const  accessor,
PointT const &  p,
SomethingT const &  cont 
)
Template Parameters:
ContainerTypeAny topological object (ncell, segment, mesh)
std::pair<PointT, LinePointT> viennagrid::detail::closest_points_point_line ( PointT const &  p,
LinePointT const &  line_p1,
LinePointT const &  line_p2 
)
std::pair<PointT,PointT> viennagrid::detail::closest_points_point_tetrahedron ( PointT const &  p,
PointT const &  v0,
PointT const &  v1,
PointT const &  v2,
PointT const &  v3 
)
std::pair<PointT,PointT> viennagrid::detail::closest_points_point_triangle ( PointT const &  p,
PointT const &  v0,
PointT const &  v1,
PointT const &  v2 
)
viennagrid::detail::result_of::lookup< typename viennagrid::detail::result_of::lookup< typename mesh_type::appendix_type, coboundary_collection_tag >::type, viennagrid::static_pair<element_tag, coboundary_tag> >::type& viennagrid::detail::coboundary_collection ( mesh_type &  mesh_obj)

For internal use only.

viennagrid::detail::result_of::lookup< typename viennagrid::detail::result_of::lookup< typename mesh_type::appendix_type, coboundary_collection_tag >::type, viennagrid::static_pair<element_tag, coboundary_tag> >::type const& viennagrid::detail::coboundary_collection ( mesh_type const &  mesh_obj)

For internal use only.

viennagrid::detail::container_range_wrapper<typename coboundary_accessor_type::value_type> viennagrid::detail::coboundary_elements ( coboundary_accessor_type  accessor,
viennagrid::element< ElementTag, WrappedConfigType > &  element 
)

For internal use only.

viennagrid::detail::container_range_wrapper<const typename coboundary_accessor_type::value_type> viennagrid::detail::coboundary_elements ( coboundary_accessor_type const  accessor,
viennagrid::element< ElementTag, WrappedConfigType > const &  element 
)

For internal use only.

viennagrid::detail::container_range_wrapper<typename coboundary_accessor_type::value_type> viennagrid::detail::coboundary_elements ( viennagrid::mesh< WrappedConfigType > &  mesh_obj,
coboundary_accessor_type  accessor,
element_or_handle_type &  hendl 
)

For internal use only.

viennagrid::detail::container_range_wrapper<const typename coboundary_accessor_type::value_type> viennagrid::detail::coboundary_elements ( viennagrid::mesh< WrappedConfigType > const &  mesh_obj,
coboundary_accessor_type const  accessor,
element_or_handle_type const &  hendl 
)

For internal use only.

void viennagrid::detail::copy ( const collection< src_container_typelist > &  src,
collection< dst_container_typelist > &  dst 
)
void viennagrid::detail::copy_if ( const collection< src_container_typelist > &  src,
collection< dst_container_typelist > &  dst,
predicate  pred 
)
void viennagrid::detail::create_coboundary_information ( MeshT &  mesh_obj,
coboundary_accessor_type  accessor 
)

For internal use only.

void viennagrid::detail::create_coboundary_information ( viennagrid::mesh< viennagrid::detail::decorated_mesh_view_config< WrappedConfigT, ElementTypelistT, ContainerConfigT > > &  mesh_obj,
coboundary_accessor_type  accessor 
)
void viennagrid::detail::create_coboundary_information ( mesh_type &  mesh_obj)

For internal use only.

void viennagrid::detail::create_neighbor_information ( mesh_type &  mesh_obj,
neigbour_accessor_type  accessor 
)

For internal use only.

void viennagrid::detail::create_neighbor_information ( mesh_type &  mesh_obj)

For internal use only.

result_of::value_type<HandleT>::type& viennagrid::detail::dereference_handle ( ContainerT &  container,
HandleT  handle 
)
result_of::value_type<HandleT>::type const& viennagrid::detail::dereference_handle ( ContainerT const &  container,
HandleT  handle 
)
result_of::value_type<HandleT>::type const& viennagrid::detail::dereference_handle_const ( ContainerT const &  container,
HandleT  handle 
)
void viennagrid::detail::detect_boundary ( MeshT &  mesh_obj,
AccessorT  boundary_info_accessor 
)

For internal use only.

void viennagrid::detail::detect_boundary ( mesh< WrappedConfigT > &  mesh_obj)

For internal use only.

void viennagrid::detail::detect_boundary ( segment_handle< SegmentationT > &  segment)

For internal use only.

void viennagrid::detail::detect_interface ( segment_handle< SegmentationT > &  seg0,
segment_handle< SegmentationT > &  seg1,
AccessorT  accessor 
)

For internal use only.

viennagrid::result_of::coord<PointT1>::type viennagrid::detail::distance_impl ( PointT1 const &  p1,
PointT2 const &  p2 
)
viennagrid::result_of::coord<PointT1>::type viennagrid::detail::distance_impl ( std::pair< PointT1, PointT2 > const &  pts)
CoordT1 viennagrid::detail::distance_impl ( PointAccessorT  const,
spatial_point< CoordT1, CoordinateSystemT1 > const &  p1,
spatial_point< CoordT2, CoordinateSystemT2 > const &  p2 
)
viennagrid::result_of::coord<PointT>::type viennagrid::detail::distance_impl ( PointAccessorT const  accessor,
PointT const &  p1,
viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &  v2 
)
viennagrid::result_of::coord<typename PointAccessorT::value_type>::type viennagrid::detail::distance_impl ( PointAccessorT const  accessor,
viennagrid::element< viennagrid::vertex_tag, WrappedConfigT > const &  v1,
PointT const &  p2 
)
viennagrid::result_of::coord<typename PointAccessorT::value_type>::type viennagrid::detail::distance_impl ( PointAccessorT const  accessor,
viennagrid::element< viennagrid::vertex_tag, WrappedConfigT1 > const &  v1,
viennagrid::element< viennagrid::vertex_tag, WrappedConfigT2 > const &  v2 
)
viennagrid::result_of::coord<typename PointAccessorT::value_type>::type viennagrid::detail::distance_impl ( PointAccessorT const  accessor,
SomethingT1 const &  el1,
SomethingT2 const &  el2 
)
viennagrid::segment_handle<SegmentationType>::view_type::element_collection_type& viennagrid::detail::element_collection ( segment_handle< SegmentationType > &  segment)

For internal use only.

viennagrid::segment_handle<SegmentationType>::view_type::element_collection_type const& viennagrid::detail::element_collection ( segment_handle< SegmentationType > const &  segment)

For internal use only.

viennagrid::mesh<ConfigType>::element_collection_type& viennagrid::detail::element_collection ( viennagrid::mesh< ConfigType > &  mesh_obj)

For internal use only.

viennagrid::mesh<ConfigType>::element_collection_type const& viennagrid::detail::element_collection ( viennagrid::mesh< ConfigType > const &  mesh_obj)

For internal use only.

viennagrid::segmentation<WrappedConfigT>::view_type::element_collection_type& viennagrid::detail::element_collection ( viennagrid::segmentation< WrappedConfigT > &  segmentation)

For internal use only.

viennagrid::segmentation<WrappedConfigT>::view_type::element_collection_type const& viennagrid::detail::element_collection ( viennagrid::segmentation< WrappedConfigT > const &  segmentation)

For internal use only.

viennagrid::detail::result_of::lookup< typename SegmentationT::appendix_type, element_segment_mapping_tag >::type& viennagrid::detail::element_segment_mapping_collection ( SegmentationT &  segmentation)
viennagrid::detail::result_of::lookup< typename SegmentationT::appendix_type, element_segment_mapping_tag >::type const& viennagrid::detail::element_segment_mapping_collection ( SegmentationT const &  segmentation)
viennagrid::detail::result_of::lookup< typename segment_handle_type::segmentation_type::appendix_type, element_segment_mapping_tag >::type& viennagrid::detail::element_segment_mapping_collection ( segment_handle_type &  segment)
viennagrid::detail::result_of::lookup< typename segment_handle_type::segmentation_type::appendix_type, element_segment_mapping_tag >::type const& viennagrid::detail::element_segment_mapping_collection ( segment_handle_type const &  segment)
void viennagrid::detail::erase ( SegmentHandleT &  segment,
segment_info_t< ElementSegmentMappingT, ContainerTagT > &  segment_info 
)

For internal use only.

void viennagrid::detail::erase ( SegmentHandleT &  segment,
AccessorT  accessor,
ElementT const &  element 
)

For internal use only.

ContainerT::iterator viennagrid::detail::find ( ContainerT &  container,
typename ContainerT::value_type::id_type  id 
)
ContainerT::const_iterator viennagrid::detail::find ( ContainerT const &  container,
typename ContainerT::value_type::id_type  id 
)
ContainerT::iterator viennagrid::detail::find ( ContainerT &  container,
typename ContainerT::value_type const &  element 
)
ContainerT::const_iterator viennagrid::detail::find ( ContainerT const &  container,
typename ContainerT::value_type const &  element 
)
view< BaseContainerT, std_set_tag<id_compare_tag> >::iterator viennagrid::detail::find ( view< BaseContainerT, std_set_tag< id_compare_tag > > &  container,
typename view< BaseContainerT, std_set_tag< id_compare_tag > >::value_type const &  element 
)
view< BaseContainerT, std_set_tag<id_compare_tag> >::const_iterator viennagrid::detail::find ( view< BaseContainerT, std_set_tag< id_compare_tag > > const &  container,
typename view< BaseContainerT, std_set_tag< id_compare_tag > >::value_type const &  element 
)
void fix_handles ( viennagrid::mesh< SourceWrappedConfigT > const &  source_mesh_obj,
viennagrid::mesh< DestinationWrappedConfigT > &  destination_mesh 
)

For internal use only.

void viennagrid::detail::for_each ( collection_type &  collection,
functor  f 
)
void viennagrid::detail::for_each ( functor &  f)
void viennagrid::detail::for_each ( const functor &  f)
void viennagrid::detail::for_each_typelist ( collection_type &  collection,
functor &  f 
)
void viennagrid::detail::handle ( collection< src_container_typelist > &  src,
collection< dst_container_typelist > &  dst 
)
result_of::handle_type<container_type, handle_tag>::type viennagrid::detail::handle ( container_type &  container,
value_type &  value,
handle_tag   
)
result_of::const_handle_type<container_type, handle_tag>::type viennagrid::detail::handle ( container_type const &  container,
value_type const &  value,
handle_tag   
)
void viennagrid::detail::handle ( base_container_type &  src_container,
viennagrid::view< view_base_container_type, view_container_tag > &  dst_view 
)
void viennagrid::detail::handle_if ( collection< src_container_typelist > &  src,
collection< dst_container_typelist > &  dst,
predicate  pred 
)
void viennagrid::detail::handle_if ( base_container_type &  src_container,
viennagrid::view< view_base_container_type, handle_container_tag > &  dst_view,
predicate  pred 
)
void viennagrid::detail::handle_or_ignore ( container_collection_type &  collection,
const handle_type &  handle,
viennagrid::detail::tag< element_type >   
)
void viennagrid::detail::handle_or_ignore ( container_collection_type &  collection,
handle_type &  handle,
viennagrid::detail::tag< element_type >   
)
viennagrid::segment_handle<SegmentationType>::view_type::inserter_type::id_generator_type& viennagrid::detail::id_generator ( segment_handle< SegmentationType > &  segment)

For internal use only.

viennagrid::segment_handle<SegmentationType>::view_type::inserter_type::id_generator_type const& viennagrid::detail::id_generator ( segment_handle< SegmentationType > const &  segment)

For internal use only.

viennagrid::mesh<ConfigType>::inserter_type::id_generator_type& viennagrid::detail::id_generator ( viennagrid::mesh< ConfigType > &  mesh_obj)

For internal use only.

viennagrid::mesh<ConfigType>::inserter_type::id_generator_type const& viennagrid::detail::id_generator ( viennagrid::mesh< ConfigType > const &  mesh_obj)

For internal use only.

void viennagrid::detail::increment_change_counter ( segment_handle< SegmentationType > &  segment)

For internal use only.

void viennagrid::detail::increment_change_counter ( viennagrid::mesh< WrappedConfigType > &  mesh_obj)

For internal use only.

void viennagrid::detail::insert ( container_type &  container,
const typename container_type::value_type &  value 
)
void viennagrid::detail::insert ( std::set< type, compare, allocator > &  container,
const typename std::set< type, compare, allocator >::value_type &  value 
)
std::pair<typename hidden_key_map<KeyT, ValueT>::iterator, bool> viennagrid::detail::insert ( hidden_key_map< KeyT, ValueT > &  container,
const ValueT &  element 
)
void viennagrid::detail::insert_callback ( container_collection_element_type &  element,
bool  insert_result,
inserter_type &  inserter 
)
void viennagrid::detail::insert_callback ( container_collection_element_type const &  element,
bool  insert_result,
inserter_type &  inserter 
)
void viennagrid::detail::insert_callback ( bool &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( char &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( unsigned char &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( short &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( unsigned short &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( int &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( unsigned int &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( long &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( unsigned long &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( float &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( double &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const bool &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const char &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const unsigned char &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const short &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const unsigned short &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const int &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const unsigned int &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const long &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const unsigned long &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const float &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_callback ( const double &  ,
bool  ,
inserter_type &   
)
void viennagrid::detail::insert_or_ignore ( container_collection_type &  collection,
const element_type &  element 
)
void viennagrid::detail::insert_or_ignore ( container_collection_type &  collection,
element_type &  element 
)
viennagrid::mesh< ConfigType >::inserter_type & inserter ( viennagrid::mesh< ConfigType > &  mesh_obj)

For internal use only.

viennagrid::mesh< ConfigType >::inserter_type const & inserter ( viennagrid::mesh< ConfigType > const &  mesh_obj)

For internal use only.

viennagrid::segment_handle< SegmentationType >::view_type::inserter_type & inserter ( segment_handle< SegmentationType > &  segment)

For internal use only.

viennagrid::segment_handle< SegmentationType >::view_type::inserter_type const & inserter ( segment_handle< SegmentationType > const &  segment)

For internal use only.

viennagrid::detail::result_of::lookup< typename viennagrid::detail::result_of::lookup< typename segment_handle_type::segmentation_type::appendix_type, interface_information_collection_tag >::type, element_tag >::type::segment_interface_information_wrapper_type& viennagrid::detail::interface_information_collection ( segment_handle_type &  seg0,
segment_handle_type &  seg1 
)
viennagrid::detail::result_of::lookup< typename viennagrid::detail::result_of::lookup< typename segment_handle_type::segmentation_type::appendix_type, interface_information_collection_tag >::type, element_tag >::type::segment_interface_information_wrapper_type const& viennagrid::detail::interface_information_collection ( segment_handle_type const &  seg0,
segment_handle_type const &  seg1 
)
bool viennagrid::detail::is_boundary ( AccessorT const  boundary_info_accessor,
ElementT const &  element 
)

For internal use only.

bool viennagrid::detail::is_equal ( NumericConfigT  nc,
NumericT  first,
NumericT  second 
)
bool viennagrid::detail::is_handle_invalid ( container_type const &  container,
handle_type  handle 
)
bool viennagrid::detail::is_handle_invalid ( container_type &  container,
handle_type  handle 
)
bool viennagrid::detail::is_in_segment ( segment_handle_type const &  segment,
segment_info_t< element_segment_mapping_type, container_tag > const &  segment_info 
)

For internal use only.

bool viennagrid::detail::is_in_segment ( segment_handle_type const &  segment,
accessor_type const  accessor,
element_type const &  element 
)

For internal use only.

bool is_inside_impl ( PointAccessorT const  accessor,
ElementT const &  element,
viennagrid::triangle_tag  ,
spatial_point< CoordType, CoordinateSystem > const &  p,
NumericConfigT  numeric_config 
)

Is inside implementation for triangle in arbitrary dimensions.

Is inside implementation for tetrahedron.

bool viennagrid::detail::is_interface ( AccessorT const  accessor,
ElementT const &  el 
)

For internal use only.

bool viennagrid::detail::is_not_equal ( NumericConfigT  nc,
NumericT  first,
NumericT  second 
)
bool viennagrid::detail::is_obsolete ( segment_handle< SegmentationType > const &  segment,
typename segment_handle< SegmentationType >::view_type::change_counter_type  change_counter_to_check 
)

For internal use only.

bool viennagrid::detail::is_obsolete ( viennagrid::mesh< WrappedConfigType > const &  mesh_obj,
typename viennagrid::mesh< WrappedConfigType >::change_counter_type  change_counter_to_check 
)

For internal use only.

PointType viennagrid::detail::line_intersection ( PointType const &  a,
PointType const &  b,
PointType const &  c,
PointType const &  d 
)

Computes the intersection of the two lines [a,b] and [c,d].

viennagrid::detail::result_of::lookup< typename viennagrid::detail::result_of::lookup< typename mesh_type::appendix_type, neighbor_collection_tag >::type, viennagrid::static_pair<element_tag, connector_element_tag> >::type& viennagrid::detail::neighbor_collection ( mesh_type &  mesh_obj)

For internal use only.

viennagrid::detail::result_of::lookup< typename viennagrid::detail::result_of::lookup< typename mesh_type::appendix_type, neighbor_collection_tag >::type, viennagrid::static_pair<element_tag, connector_element_tag> >::type const& viennagrid::detail::neighbor_collection ( mesh_type const &  mesh_obj)

For internal use only.

viennagrid::detail::container_range_wrapper<typename neigbour_accessor_type::value_type> viennagrid::detail::neighbor_elements ( neigbour_accessor_type  accessor,
viennagrid::element< ElementTag, WrappedConfigT > &  element 
)

For internal use only.

viennagrid::detail::container_range_wrapper<const typename neigbour_accessor_type::value_type> viennagrid::detail::neighbor_elements ( neigbour_accessor_type const  accessor,
viennagrid::element< ElementTag, WrappedConfigT > const &  element 
)

For internal use only.

viennagrid::detail::container_range_wrapper<typename neigbour_accessor_type::value_type> viennagrid::detail::neighbor_elements ( viennagrid::mesh< WrappedConfigT > &  mesh_obj,
neigbour_accessor_type  accessor,
ElementOrHandleT &  element_or_handle 
)

For internal use only.

viennagrid::detail::container_range_wrapper<const typename neigbour_accessor_type::value_type> viennagrid::detail::neighbor_elements ( viennagrid::mesh< WrappedConfigT > const &  mesh_obj,
neigbour_accessor_type const  accessor,
ElementOrHandleT const &  element_or_handle 
)

For internal use only.

void viennagrid::detail::neighbor_mark ( MeshT const &  mesh,
UnvisitedCellMapT &  unvisitied_cells 
)

For internal use only.

PointAccessorT::value_type viennagrid::detail::normal_vector_impl ( PointAccessorT const  point_accessor,
ElementT const &  element,
viennagrid::vertex_tag  ,
viennagrid::dimension_tag< 1 >   
)

Implementation for calculating a normal vector of a vertex in 1D.

PointAccessorT::value_type viennagrid::detail::normal_vector_impl ( PointAccessorT const  point_accessor,
ElementT const &  element,
viennagrid::line_tag  ,
viennagrid::dimension_tag< 2 >   
)

Implementation for calculating a normal vector of a line in 2D.

PointAccessorT::value_type viennagrid::detail::normal_vector_impl ( PointAccessorT const  point_accessor,
ElementT const &  element,
viennagrid::triangle_tag  ,
viennagrid::dimension_tag< 3 >   
)

Implementation for calculating a normal vector of a triangle in 3D.

PointAccessorT::value_type viennagrid::detail::normal_vector_impl ( PointAccessorT const  point_accessor,
ElementT const &  element,
viennagrid::quadrilateral_tag  ,
viennagrid::dimension_tag< 3 >   
)

Implementation for calculating a normal vector of a quadrilateral in 3D.

Reuses the implementation for a triangle.

bool viennagrid::detail::operator< ( smart_id< value_type, base_id_type > const &  lhs,
smart_id< value_type, base_id_type > const &  rhs 
)
bool viennagrid::detail::operator< ( smart_id< const value_type, base_id_type > const &  lhs,
smart_id< value_type, base_id_type > const &  rhs 
)
bool viennagrid::detail::operator< ( smart_id< value_type, base_id_type > const &  lhs,
smart_id< const value_type, base_id_type > const &  rhs 
)
bool viennagrid::detail::operator< ( smart_id< const value_type, base_id_type > const &  lhs,
smart_id< const value_type, base_id_type > const &  rhs 
)
std::ostream& viennagrid::detail::operator<< ( std::ostream &  os,
const viennagrid::collection< container_typemap > &  container_collection 
)
std::ostream& viennagrid::detail::operator<< ( std::ostream &  os,
smart_id< value_type_, base_id_type >  id 
)
std::pair<spatial_point<CoordT, CoordinateSystemT>, spatial_point<CoordT, CoordinateSystemT> > const& viennagrid::detail::point_pair_with_shortest_distance ( std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_1,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_2 
)
std::pair<spatial_point<CoordT, CoordinateSystemT>, spatial_point<CoordT, CoordinateSystemT> > const& viennagrid::detail::point_pair_with_shortest_distance ( std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_1,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_2,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_3 
)
std::pair<spatial_point<CoordT, CoordinateSystemT>, spatial_point<CoordT, CoordinateSystemT> > const& viennagrid::detail::point_pair_with_shortest_distance ( std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_1,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_2,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_3,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_4 
)
std::pair<spatial_point<CoordT, CoordinateSystemT>, spatial_point<CoordT, CoordinateSystemT> > const& viennagrid::detail::point_pair_with_shortest_distance ( std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_1,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_2,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_3,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_4,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_5 
)
std::pair<spatial_point<CoordT, CoordinateSystemT>, spatial_point<CoordT, CoordinateSystemT> > const& viennagrid::detail::point_pair_with_shortest_distance ( std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_1,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_2,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_3,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_4,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_5,
std::pair< spatial_point< CoordT, CoordinateSystemT >, spatial_point< CoordT, CoordinateSystemT > > const &  pair_6 
)
viennagrid::result_of::point<TriangleType>::type viennagrid::detail::point_to_local_coordinates ( typename viennagrid::result_of::point< TriangleType >::type const &  p,
const TriangleType &  triangle 
)

Converts a point to local (barycentric) coordinates (lambda_1, lambda_2). lambda_3 = 1 - lambda_1 - lambda_2 is not stored explicitly.

std::pair< typename viennagrid::result_of::container_of< typename viennagrid::result_of::element_collection<mesh_type>::type, viennagrid::element<ElementTag, WrappedConfigType> >::type::handle_type, bool > viennagrid::detail::push_element ( mesh_type &  mesh_obj,
viennagrid::element< ElementTag, WrappedConfigType > const &  element 
)

For internal use only.

std::pair< typename viennagrid::result_of::container_of< typename viennagrid::result_of::element_collection< viennagrid::segment_handle<SegmentationType> >::type, viennagrid::element<ElementTag, WrappedConfigType> >::type::handle_type, bool > viennagrid::detail::push_element ( viennagrid::segment_handle< SegmentationType > &  segment,
viennagrid::element< ElementTag, WrappedConfigType > const &  element 
)

For internal use only.

void viennagrid::detail::quantity_transfer ( MeshOrSegmentT const &  mesh_or_segment,
SourceAccessorT const &  accessor_src,
DestinationSetterT &  setter_dest,
AveragerT const &  averager,
SourceFilterT const &  filter_src,
DestinationFilterT const &  filter_dest,
boundary_quantity_transfer_tag   
)
void viennagrid::detail::quantity_transfer ( MeshOrSegmentT const &  mesh_or_segment,
SourceAccessorT const &  accessor_src,
DestinationSetterT &  setter_dest,
AveragerT const &  averager,
SourceFilterT const &  filter_src,
DestinationFilterT const &  filter_dest,
coboundary_quantity_transfer_tag   
)
void viennagrid::detail::refine_impl ( mesh< WrappedMeshConfigInT > const &  mesh_in,
mesh< WrappedMeshConfigOutT > &  mesh_out,
PointAccessorT const  point_accessor_in,
VertexCopyMapT &  vertex_copy_map_,
EdgeRefinementFlagAccessorT const &  edge_refinement_flag_accessor,
RefinementVertexAccessorT &  edge_to_vertex_handle_accessor 
)

For internal use only.

void viennagrid::detail::refine_impl ( mesh< WrappedMeshConfigInT > const &  mesh_in,
segmentation< WrappedSegmentationConfigInT > const &  segmentation_in,
mesh< WrappedMeshConfigOutT > &  mesh_out,
segmentation< WrappedSegmentationConfigOutT > &  segmentation_out,
PointAccessorT const  point_accessor_in,
VertexCopyMapT &  vertex_copy_map_,
EdgeRefinementFlagAccessorT const &  edge_refinement_flag_accessor,
RefinementVertexAccessorT &  edge_to_vertex_handle_accessor 
)

For internal use only.

result_of::numeric_type<NumericConfigT, OuterNumericT>::type viennagrid::detail::relative_tolerance ( NumericConfigT  config,
OuterNumericT  base 
)
result_of::numeric_type<double, OuterNumericT>::type viennagrid::detail::relative_tolerance ( double  eps,
OuterNumericT  base 
)
element_segment_mapping_type::segment_element_info_type* viennagrid::detail::segment_element_info ( segment_handle_type const &  segment,
segment_info_t< element_segment_mapping_type, container_tag > &  segment_info 
)

For internal use only.

element_segment_mapping_type::segment_element_info_type const* viennagrid::detail::segment_element_info ( segment_handle_type const &  segment,
segment_info_t< element_segment_mapping_type, container_tag > const &  segment_info 
)

For internal use only.

accessor_type::value_type::segment_element_info_type* viennagrid::detail::segment_element_info ( segment_handle_type &  segment,
accessor_type  accessor,
element_type const &  element 
)

For internal use only.

accessor_type::value_type::segment_element_info_type const* viennagrid::detail::segment_element_info ( segment_handle_type const &  segment,
const accessor_type  accessor,
element_type const &  element 
)

For internal use only.

void viennagrid::detail::set_handle_invalid ( container_type const &  ,
handle_type &  handle,
pointer_handle_tag   
)
void viennagrid::detail::set_handle_invalid ( container_type &  container,
handle_type &  handle,
iterator_handle_tag   
)
void viennagrid::detail::set_handle_invalid ( container_type const &  container,
handle_type &  handle,
iterator_handle_tag   
)
void viennagrid::detail::set_handle_invalid ( container_type &  ,
handle_type &  handle,
id_handle_tag   
)
void viennagrid::detail::set_handle_invalid ( container_type const &  ,
handle_type &  handle,
id_handle_tag   
)
void viennagrid::detail::set_handle_invalid ( container_type const &  container,
handle_type &  handle 
)
void viennagrid::detail::set_handle_invalid ( container_type &  container,
handle_type &  handle 
)
void viennagrid::detail::set_id ( element_type &  element,
id_type  id 
)
void viennagrid::detail::set_id ( bool &  ,
id_type   
)
void viennagrid::detail::set_id ( char &  ,
id_type   
)
void viennagrid::detail::set_id ( unsigned char &  ,
id_type   
)
void viennagrid::detail::set_id ( short &  ,
id_type   
)
void viennagrid::detail::set_id ( unsigned short &  ,
id_type   
)
void viennagrid::detail::set_id ( int &  ,
id_type   
)
void viennagrid::detail::set_id ( unsigned int &  ,
id_type   
)
void viennagrid::detail::set_id ( long &  ,
id_type   
)
void viennagrid::detail::set_id ( unsigned long &  ,
id_type   
)
void viennagrid::detail::set_id ( float &  ,
id_type   
)
void viennagrid::detail::set_id ( double &  ,
id_type   
)
void viennagrid::detail::simple_add ( SegmentHandleT &  segment,
viennagrid::element< ElementTagT, WrappedConfigT > &  element 
)

For internal use only.

void viennagrid::detail::simple_unchecked_add ( SegmentHandleT &  segment,
viennagrid::element< ElementTagT, WrappedConfigT > &  element 
)

For internal use only.

bool viennagrid::detail::stable_line_is_longer ( MeshT const &  mesh,
VertexHandleT  vh1_1,
VertexHandleT  vh1_2,
VertexHandleT  vh2_1,
VertexHandleT  vh2_2 
)

Compares the lines (v1_1, v1_2) and (v2_1, v2_2) and returns true if the first is longer.

Ensures that the result is the same no matter in which order the parameters are passed. If the two lines have equal length, the line with the larger vertex IDs involved is considered as longer.

bool viennagrid::detail::stable_line_is_longer ( MeshT const &  mesh,
VertexHandleContainer  vertices,
unsigned int  i0,
unsigned int  i1,
unsigned int  i2,
unsigned int  i3 
)
viennagrid::result_of::coord< MeshT >::type viennagrid::detail::surface_meshsegment ( MeshT const &  mesh_obj)

Implementation for the calculation of the surface of a mesh or segment.

void viennagrid::detail::switch_handle ( MeshT &  mesh_obj,
HandleT  old_handle,
HandleT  new_handle 
)

For internal use only.

void viennagrid::detail::transfer_boundary_information ( MeshT const &  mesh_obj,
SourceAccessorT const  source_boundary_info_accessor,
DestinationAccessorT  destination_boundary_info_accessor 
)

For internal use only.

void viennagrid::detail::transfer_boundary_information ( mesh< WrappedConfigT > &  mesh_obj)

For internal use only.

void viennagrid::detail::transfer_boundary_information ( segment_handle< SegmentationT > &  segment)

For internal use only.

void viennagrid::detail::transfer_interface_information ( segment_handle< SegmentationT > &  seg0,
segment_handle< SegmentationT > &  seg1 
)

For internal use only.

void viennagrid::detail::update_change_counter ( segment_handle< SegmentationType > &  segment,
typename segment_handle< SegmentationType >::view_type::change_counter_type &  change_counter_to_update 
)

For internal use only.

void viennagrid::detail::update_change_counter ( viennagrid::mesh< WrappedConfigType > &  mesh_obj,
typename viennagrid::mesh< WrappedConfigType >::change_counter_type &  change_counter_to_update 
)

For internal use only.

viennagrid::result_of::coord< typename PointAccessorT::value_type >::type viennagrid::detail::volume_impl ( PointAccessorT  const,
ElementT const &  ,
viennagrid::vertex_tag   
)

Computes the volume of topologically zero-dimensional elements (vertices). Degenerate case, returns 1.

viennagrid::result_of::coord< typename PointAccessorT::value_type >::type viennagrid::detail::volume_impl ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::simplex_tag< 1 >   
)

Computes the volume of topologically one-dimensional elements (lines, 1-simplex).

viennagrid::result_of::coord< typename PointAccessorT::value_type >::type viennagrid::detail::volume_impl ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::hypercube_tag< 1 >   
)

Computes the volume of topologically one-dimensional elements (lines, 1-hypercube).

viennagrid::result_of::coord< typename PointAccessorT::value_type >::type volume_impl ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::triangle_tag   
)

Computes the two-dimensional volume of a triangle.

Computes the three-dimensional volume of a tetrahedron.

viennagrid::result_of::coord< typename PointAccessorT::value_type >::type viennagrid::detail::volume_impl ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::quadrilateral_tag   
)

Computes the two-dimensional volume of a quadrilateral.

viennagrid::result_of::coord< typename PointAccessorT::value_type >::type viennagrid::detail::volume_impl ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::polygon_tag   
)

Computes the two-dimensional volume of a polygon.

viennagrid::result_of::coord< typename PointAccessorT::value_type >::type viennagrid::detail::volume_impl ( PointAccessorT const  accessor,
ElementT const &  cell,
viennagrid::hexahedron_tag   
)

Computes the three-dimensional volume of a hexahedron.

viennagrid::result_of::coord< MeshSegmentHandleType >::type viennagrid::detail::volume_mesh ( MeshSegmentHandleType const &  mesh_obj)

Dispatched function for computing the volume of a mesh or segment.

void viennagrid::detail::voronoi_unique_quantity_update ( ContainerT &  container,
PairT const &  update_pair 
)

Adds a pair [CellPtr, contribution] to the Voronoi quantities stored in the container. If data for the particular Cell are already stored, no new element is inserted, but existing 'contribution' is updated.

void viennagrid::detail::write_voronoi_info ( MeshT const &  mesh_obj,
InterfaceAreaAccessorT  interface_area_accessor,
InterfaceAreaCellContributionAccessorT  interface_area_cell_contribution_accessor,
VertexBoxVolumeAccessorT  vertex_box_volume_accessor,
VertexBoxVolumeCellContributionAccessorT  vertex_box_volume_cell_contribution_accessor,
EdgeBoxVolumeAccessorT  edge_box_volume_accessor,
EdgeBoxVolumeCellContributionAccessorT  edge_box_volume_cell_contribution_accessor,
viennagrid::simplex_tag< 1 >   
)

Implementation of the computation of Voronoi quantities for a one-dimensional mesh (line, 1-simplex)

void viennagrid::detail::write_voronoi_info ( MeshT const &  mesh_obj,
InterfaceAreaAccessorT  interface_area_accessor,
InterfaceAreaCellContributionAccessorT  interface_area_cell_contribution_accessor,
VertexBoxVolumeAccessorT  vertex_box_volume_accessor,
VertexBoxVolumeCellContributionAccessorT  vertex_box_volume_cell_contribution_accessor,
EdgeBoxVolumeAccessorT  edge_box_volume_accessor,
EdgeBoxVolumeCellContributionAccessorT  edge_box_volume_cell_contribution_accessor,
viennagrid::hypercube_tag< 1 >   
)

Implementation of the computation of Voronoi quantities for a one-dimensional mesh (line, 1-hypercube)

void viennagrid::detail::write_voronoi_info ( MeshT const &  mesh_obj,
InterfaceAreaAccessorT  interface_area_accessor,
InterfaceAreaCellContributionAccessorT  interface_area_cell_contribution_accessor,
VertexBoxVolumeAccessorT  vertex_box_volume_accessor,
VertexBoxVolumeCellContributionAccessorT  vertex_box_volume_cell_contribution_accessor,
EdgeBoxVolumeAccessorT  edge_box_volume_accessor,
EdgeBoxVolumeCellContributionAccessorT  edge_box_volume_cell_contribution_accessor,
viennagrid::quadrilateral_tag   
)

Implementation of the computation of Voronoi quantities for a quadrilateral mesh.

void write_voronoi_info ( MeshT const &  mesh_obj,
InterfaceAreaAccessorT  interface_area_accessor,
InterfaceAreaCellContributionAccessorT  interface_area_cell_contribution_accessor,
VertexBoxVolumeAccessorT  vertex_box_volume_accessor,
VertexBoxVolumeCellContributionAccessorT  vertex_box_volume_cell_contribution_accessor,
EdgeBoxVolumeAccessorT  edge_box_volume_accessor,
EdgeBoxVolumeCellContributionAccessorT  edge_box_volume_cell_contribution_accessor,
viennagrid::tetrahedron_tag   
)

Implementation of the computation of Voronoi quantities for a triangular mesh.

Implementation of the computation of Voronoi quantities for a tetrahedral mesh.

Note: Interface contributions per cell are only approximate for tetrahedral meshes, while they are precise for triangular meshes. They are consistent in the sense that total_interface_volume = sum_over_cells(interface_volume_per_cell). As a consequence, the same holds true for volume contributions.

void viennagrid::detail::write_voronoi_info ( MeshT const &  mesh_obj,
InterfaceAreaAccessorT  interface_area_accessor,
InterfaceAreaCellContributionAccessorT  interface_area_cell_contribution_accessor,
VertexBoxVolumeAccessorT  vertex_box_volume_accessor,
VertexBoxVolumeCellContributionAccessorT  vertex_box_volume_cell_contribution_accessor,
EdgeBoxVolumeAccessorT  edge_box_volume_accessor,
EdgeBoxVolumeCellContributionAccessorT  edge_box_volume_cell_contribution_accessor,
viennagrid::hexahedron_tag   
)

Implementation of the computation of Voronoi quantities for a hexahedral mesh.