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

Contains functions for creating elements within a mesh or segment. More...

#include "viennagrid/mesh/mesh.hpp"
#include "viennagrid/mesh/segmentation.hpp"
#include "viennagrid/topology/plc.hpp"
#include "viennagrid/algorithm/norm.hpp"

Go to the source code of this file.

Data Structures

struct  copy_elements_impl< ElementTagT >
struct  copy_elements_impl< plc_tag >
struct  make_element_impl< ElementTagT >
struct  make_element_impl< plc_tag >

Namespaces

namespace  viennagrid
 

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


namespace  viennagrid::detail
 

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


Functions

template<typename ElementT , typename MeshOrSegmentHandleT >
viennagrid::result_of::handle
< MeshOrSegmentHandleT,
typename
viennagrid::result_of::element_tag
< ElementT >::type >::type 
copy_element (ElementT const &element, MeshOrSegmentHandleT &mesh_segment, typename viennagrid::result_of::coord< MeshOrSegmentHandleT >::type tolerance)
 Function for copying an element to a mesh or segment.
template<typename ElementT , typename MeshOrSegmentHandleT >
viennagrid::result_of::handle
< MeshOrSegmentHandleT,
typename
viennagrid::result_of::element_tag
< ElementT >::type >::type 
copy_element (ElementT const &element, MeshOrSegmentHandleT &mesh_segment)
 Function for copying an element to a mesh or segment.
template<typename ElementIteratorT , typename OutputMeshOrSegmentHandleT >
void copy_elements (ElementIteratorT const &begin, ElementIteratorT const &end, OutputMeshOrSegmentHandleT &output_mesh, typename viennagrid::result_of::coord< OutputMeshOrSegmentHandleT >::type tolerance)
 Function for copying an element iterator range to a mesh or segment.
template<typename ElementIteratorT , typename OutputMeshOrSegmentHandleT >
void copy_elements (ElementIteratorT const &begin, ElementIteratorT const &end, OutputMeshOrSegmentHandleT &output_mesh)
 Function for copying an element iterator range to a mesh or segment.
template<typename InputMeshOrSegmentHandleT , typename ElementHandleIteratorT , typename OutputMeshOrSegmentHandleT >
void copy_elements_by_handle (InputMeshOrSegmentHandleT const &input_mesh, ElementHandleIteratorT const &begin, ElementHandleIteratorT const &end, OutputMeshOrSegmentHandleT &output_mesh, typename viennagrid::result_of::coord< OutputMeshOrSegmentHandleT >::type tolerance)
template<typename InputMeshOrSegmentHandleT , typename ElementHandleIteratorT , typename OutputMeshOrSegmentHandleT >
void copy_elements_by_handle (InputMeshOrSegmentHandleT const &input_mesh, ElementHandleIteratorT const &begin, ElementHandleIteratorT const &end, OutputMeshOrSegmentHandleT &output_mesh)
template<typename MeshOrSegmentHandleTypeT , typename VertexHandleIteratorT >
result_of::cell_handle
< MeshOrSegmentHandleTypeT >
::type 
make_cell (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleIteratorT vertices_begin, VertexHandleIteratorT const &vertices_end)
 Function for creating an cell within a mesh or a segment.
template<typename MeshOrSegmentHandleTypeT , typename VertexHandleIteratorT >
result_of::cell_handle
< MeshOrSegmentHandleTypeT >
::type 
make_cell_with_id (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleIteratorT vertices_begin, VertexHandleIteratorT const &vertices_end, typename viennagrid::result_of::cell< MeshOrSegmentHandleTypeT >::type::id_type id)
 Function for creating an cell with ID within a mesh or a segment.
template<typename MeshOrSegmentHandleTypeT , typename VertexHandleT >
result_of::edge_handle
< MeshOrSegmentHandleTypeT >
::type 
make_edge (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleT v0, VertexHandleT v1)
 Function for creating an edge within a mesh or a segment (same as make_edge)
template<typename ElementTypeOrTagT , typename MeshOrSegmentHandleTypeT , typename VertexHandleIteratorT >
result_of::handle
< MeshOrSegmentHandleTypeT,
ElementTypeOrTagT >::type 
make_element (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleIteratorT array_start, VertexHandleIteratorT const &array_end)
 Function for creating an element within a mesh or a segment. For PLC use make_plc.
template<typename ElementTypeOrTagT , typename MeshOrSegmentHandleTypeT , typename VertexHandleIteratorT , typename IDT >
result_of::handle
< MeshOrSegmentHandleTypeT,
ElementTypeOrTagT >::type 
make_element_with_id (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleIteratorT array_start, VertexHandleIteratorT const &array_end, IDT id)
 Function for creating an element within a mesh or segment with a specific ID. For PLC use make_plc.
template<typename MeshOrSegmentHandleTypeT , typename VertexHandleT >
result_of::hexahedron_handle
< MeshOrSegmentHandleTypeT >
::type 
make_hexahedron (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleT v0, VertexHandleT v1, VertexHandleT v2, VertexHandleT v3, VertexHandleT v4, VertexHandleT v5, VertexHandleT v6, VertexHandleT v7)
 Function for creating a hexahedron within a mesh or a segment.
template<typename MeshOrSegmentHandleTypeT , typename VertexHandleT >
result_of::line_handle
< MeshOrSegmentHandleTypeT >
::type 
make_line (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleT v0, VertexHandleT v1)
 Function for creating a line within a mesh or a segment (same as make_edge)
template<typename MeshOrSegmentHandleTypeT , typename LineHandleIteratorT , typename VertexHandleIteratorT >
result_of::plc_handle
< MeshOrSegmentHandleTypeT >
::type 
make_plc (MeshOrSegmentHandleTypeT &mesh_obj, LineHandleIteratorT lines_begin, LineHandleIteratorT lines_end, VertexHandleIteratorT loose_vertices_begin, VertexHandleIteratorT loose_vertices_end)
template<typename MeshOrSegmentHandleTypeT , typename LineHandleIteratorT >
result_of::plc_handle
< MeshOrSegmentHandleTypeT >
::type 
make_plc (MeshOrSegmentHandleTypeT &mesh_obj, LineHandleIteratorT lines_begin, LineHandleIteratorT lines_end)
template<typename MeshOrSegmentHandleTypeT , typename LineHandleIteratorT , typename VertexHandleIteratorT , typename PointIteratorT >
result_of::plc_handle
< MeshOrSegmentHandleTypeT >
::type 
make_plc (MeshOrSegmentHandleTypeT &mesh_segment, LineHandleIteratorT lines_begin, LineHandleIteratorT lines_end, VertexHandleIteratorT loose_vertices_begin, VertexHandleIteratorT loose_vertices_end, PointIteratorT hole_points_begin, PointIteratorT hole_points_end)
 Function for creating a PLC within a mesh or a segment.
template<typename MeshOrSegmentHandleTypeT , typename VertexHandleT >
result_of::quadrilateral_handle
< MeshOrSegmentHandleTypeT >
::type 
make_quadrilateral (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleT v0, VertexHandleT v1, VertexHandleT v2, VertexHandleT v3)
 Function for creating a quadrilateral within a mesh or a segment.
template<typename MeshOrSegmentHandleTypeT , typename VertexHandleT >
result_of::tetrahedron_handle
< MeshOrSegmentHandleTypeT >
::type 
make_tetrahedron (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleT v0, VertexHandleT v1, VertexHandleT v2, VertexHandleT v3)
 Function for creating a tetrahedron within a mesh or a segment.
template<typename MeshOrSegmentHandleTypeT , typename VertexHandleT >
result_of::triangle_handle
< MeshOrSegmentHandleTypeT >
::type 
make_triangle (MeshOrSegmentHandleTypeT &mesh_segment, VertexHandleT v0, VertexHandleT v1, VertexHandleT v2)
 Function for creating a triangle within a mesh or a segment.
template<typename MeshOrSegmentHandleTypeT >
result_of::vertex_handle
< MeshOrSegmentHandleTypeT >
::type 
make_unique_vertex (MeshOrSegmentHandleTypeT &mesh_segment, typename result_of::point< MeshOrSegmentHandleTypeT >::type const &point, typename result_of::coord< MeshOrSegmentHandleTypeT >::type tolerance)
 Function for creating a unique vertex. The uniqueness is checked by using the point of the vertex: if there is any vertex whose point is close to the point currently inserted, this handle is returned. A new vertex is created otherwise. A classical 2-norm and the tolerance is used for distance checking. The runtime of this function is linear in the vertices within the mesh.
template<typename MeshOrSegmentHandleTypeT >
result_of::vertex_handle
< MeshOrSegmentHandleTypeT >
::type 
make_unique_vertex (MeshOrSegmentHandleTypeT &mesh_segment, typename result_of::point< MeshOrSegmentHandleTypeT >::type const &p)
 Function for creating a unique vertex. The uniqueness is checked by using the point of the vertex: if there is any vertex whose point is close to the point currently inserted, this handle is returned. A new vertex is created otherwise. A classical 2-norm and the 2-norm of points as tolerance is used for distance checking. The runtime of this function is linear in the vertices within the mesh.
template<typename MeshOrSegmentHandleTypeT >
result_of::vertex_handle
< MeshOrSegmentHandleTypeT >
::type 
make_vertex (MeshOrSegmentHandleTypeT &mesh_segment)
 Function for creating a vertex within a mesh or a segment.
template<typename MeshOrSegmentHandleTypeT >
result_of::vertex_handle
< MeshOrSegmentHandleTypeT >
::type 
make_vertex (MeshOrSegmentHandleTypeT &mesh_segment, typename result_of::point< MeshOrSegmentHandleTypeT >::type const &point)
 Function for creating a vertex within a mesh or a segment with a specific point.
template<typename MeshOrSegmentHandleTypeT >
result_of::vertex_handle
< MeshOrSegmentHandleTypeT >
::type 
make_vertex_with_id (MeshOrSegmentHandleTypeT &mesh_segment, typename viennagrid::result_of::element< MeshOrSegmentHandleTypeT, vertex_tag >::type::id_type id, typename result_of::point< MeshOrSegmentHandleTypeT >::type const &point)
 Function for creating a vertex within a mesh or a segment with a specific point and specific ID.

Detailed Description

Contains functions for creating elements within a mesh or segment.