ViennaGrid - The Vienna Grid Library
2.1.0
|
Provides the routines for a refinement of a mesh. More...
#include "viennagrid/forwards.hpp"
#include "viennagrid/algorithm/centroid.hpp"
#include "viennagrid/algorithm/norm.hpp"
#include "viennagrid/mesh/element_creation.hpp"
#include "viennagrid/mesh/mesh_operations.hpp"
#include "viennagrid/algorithm/detail/refine_tri.hpp"
#include "viennagrid/algorithm/detail/refine_tet.hpp"
#include "viennagrid/algorithm/detail/numeric.hpp"
Go to the source code of this file.
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 WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename CellRefinementFlagAccessorT > | |
void | cell_refine (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, CellRefinementFlagAccessorT const cell_refinement_flag_accessor) |
Public interface for refinement of cells of a mesh with cell refinement accessor. If there is more than one cell type this funcion will fail. | |
template<typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename CellRefinementFlagAccessorT > | |
void | cell_refine (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, CellRefinementFlagAccessorT const cell_refinement_flag_accessor) |
Public interface for refinement of cells of a mesh with segmentation providing cell refinement accessor. Will fail if there is more than one cell type. | |
template<typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT > | |
void | cell_refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out) |
Public interface for uniform refinement of cells of a mesh. Will fail if there is more than one cell type. | |
template<typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT > | |
void | cell_refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out) |
Public interface for uniform refinement of cells of a mesh with segmentation. Will fail if there is more than one cell type. | |
template<typename CellTagIn , typename WrappedMeshConfigInT , typename CellRefinementFlagAccessorT , typename EdgeRefinementFlagAccessorT > | |
void | cell_refinement_to_edge_refinement (mesh< WrappedMeshConfigInT > const &mesh_in, CellRefinementFlagAccessorT cell_refinement_flag, EdgeRefinementFlagAccessorT edge_refinement_flag_accessor) |
Transfers tags for refinement from the cell to edges. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename PointAccessorType , typename CellRefinementFlagAccessorT > | |
void | element_refine (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, PointAccessorType point_accessor_in, CellRefinementFlagAccessorT const cell_refinement_flag_accessor) |
Public interface for refinement of a mesh with explicit point accessor and cell refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename CellRefinementFlagAccessorT > | |
void | element_refine (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, CellRefinementFlagAccessorT const cell_refinement_flag_accessor) |
Public interface for refinement of a mesh with cell refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename PointAccessorT , typename CellRefinementFlagAccessorT > | |
void | element_refine (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, PointAccessorT point_accessor_in, CellRefinementFlagAccessorT const cell_refinement_flag_accessor) |
Public interface for refinement of a mesh with segmentation providing explicit point accessor and cell refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename CellRefinementFlagAccessorT > | |
void | element_refine (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, CellRefinementFlagAccessorT const cell_refinement_flag_accessor) |
Public interface for refinement of a mesh with segmentation providing cell refinement accessor. | |
template<typename CellTagIn , typename WrappedMeshConfigInT , typename EdgeRefinementFlagAccessorT > | |
void | ensure_longest_edge_refinement (mesh< WrappedMeshConfigInT > const &mesh_in, EdgeRefinementFlagAccessorT edge_refinement_flag_accessor) |
Ensures refinement of the longest edge of each cell. If any edge is tagged for refinement in a cell, then the longest edge is refined as well. | |
template<typename SrcMeshT , typename DstMeshT , typename PointT , typename NumericConfigT > | |
void | hyperplane_refine (SrcMeshT const &src_mesh, DstMeshT &dst_mesh, PointT const &hyperplane_point, PointT const &hyperplane_normal, NumericConfigT numeric_config) |
Refines a mesh based on a hyperplane. All elements which intersects the hyperplane are refined in a way that they don't intersect the hyperplane afterwards. | |
template<typename SrcMeshT , typename SrcSegmentationT , typename DstMeshT , typename DstSegmentationT , typename PointT , typename NumericConfigT > | |
void | hyperplane_refine (SrcMeshT const &src_mesh, SrcSegmentationT const &src_segmentation, DstMeshT &dst_mesh, DstSegmentationT &dst_segmentation, PointT const &hyperplane_point, PointT const &hyperplane_normal, NumericConfigT numeric_config) |
Refines a mesh and a segmentation based on a hyperplane. All elements which intersects the hyperplane are refined in a way that they don't intersect the hyperplane afterwards. | |
template<typename WrappedMeshConfigInT , typename EdgeRefinementFlagAccessorT > | |
void | mark_all_edge_refinement (mesh< WrappedMeshConfigInT > const &mesh_in, EdgeRefinementFlagAccessorT edge_refinement_flag_accessor) |
Mark all edges for refinement -> unform refinement. | |
template<typename SrcMeshT , typename DstMeshT , typename PointT , typename LineRefinementTagContainerT , typename LineRefinementVertexHandleContainerT , typename NumericConfigT > | |
void | mark_edges_for_hyperplane_refine (SrcMeshT const &src_mesh, DstMeshT &dst_mesh, PointT const &hyperplane_point, PointT const &hyperplane_normal, LineRefinementTagContainerT &line_refinement_tag_accessor, LineRefinementVertexHandleContainerT &line_refinement_vertex_handle_accessor, NumericConfigT numeric_config) |
Mark edges for refinement based on a hyperplane. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename PointAccessorType , typename VertexCopyMapT , typename EdgeRefinementFlagAccessorT , typename RefinementVertexAccessor > | |
void | refine (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, PointAccessorType point_accessor_in, VertexCopyMapT &vertex_copy_map_, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor, RefinementVertexAccessor &edge_to_vertex_handle_accessor) |
Public interface for refinement of a mesh with explicit point accessor, edge refinement accessor and temporary accessors. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename PointAccessorType , typename EdgeRefinementFlagAccessorT > | |
void | refine (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, PointAccessorType point_accessor_in, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor) |
Public interface for refinement of a mesh with explicit point accessor and edge refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename EdgeRefinementFlagAccessorT > | |
void | refine (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor) |
Public interface for refinement of a mesh with edge refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename PointAccessorT , typename VertexCopyMapT , typename EdgeRefinementFlagAccessorT , typename RefinementVertexAccessorT > | |
void | refine (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, PointAccessorT point_accessor_in, VertexCopyMapT &vertex_copy_map_, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor, RefinementVertexAccessorT &edge_to_vertex_handle_accessor) |
Public interface for refinement of a mesh with segmentation providing explicit point accessor, edge refinement accessor and temporary accessors. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename PointAccessorT , typename EdgeRefinementFlagAccessorT > | |
void | refine (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, PointAccessorT point_accessor_in, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor) |
Public interface for refinement of a mesh with segmentation providing explicit point accessor and edge refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename EdgeRefinementFlagAccessorT > | |
void | refine (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor) |
Public interface for refinement of a mesh with segmentation providing edge refinement accessor. | |
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 ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename PointAccessorType , typename VertexCopyMapT , typename EdgeRefinementFlagAccessorT , typename RefinementVertexAccessor > | |
void | refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, PointAccessorType point_accessor_in, VertexCopyMapT vertex_copy_map_, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor, RefinementVertexAccessor edge_to_vertex_handle_accessor) |
Public interface for uniform refinement of a mesh with explicit point accessor, edge refinement accessor and temporary accessors. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename PointAccessorType , typename EdgeRefinementFlagAccessorT > | |
void | refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, PointAccessorType point_accessor_in, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor) |
Public interface for uniform refinement of a mesh with explicit point accessor and edge refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename EdgeRefinementFlagAccessorT > | |
void | refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor) |
Public interface for uniform refinement of a mesh with edge refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT > | |
void | refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out) |
Public interface for uniform refinement of a mesh. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename PointAccessorT , typename VertexCopyMapT , typename EdgeRefinementFlagAccessorT , typename RefinementVertexAccessorT > | |
void | refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, PointAccessorT point_accessor_in, VertexCopyMapT &vertex_copy_map_, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor, RefinementVertexAccessorT &edge_to_vertex_handle_accessor) |
Public interface for uniform refinement of a mesh with segmentation providing explicit point accessor, edge refinement accessor and temporary accessors. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename PointAccessorT , typename EdgeRefinementFlagAccessorT > | |
void | refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, PointAccessorT point_accessor_in, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor) |
Public interface for uniform refinement of a mesh with segmentation providing explicit point accessor and edge refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename EdgeRefinementFlagAccessorT > | |
void | refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor) |
Public interface for uniform refinement of a mesh with segmentation providing edge refinement accessor. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT > | |
void | refine_uniformly (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out) |
Public interface for uniform refinement of a mesh with segmentation. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedMeshConfigOutT , typename VertexCopyMapT , typename EdgeRefinementFlagAccessorT , typename RefinementVertexAccessorT > | |
void | simple_refine (mesh< WrappedMeshConfigInT > const &mesh_in, mesh< WrappedMeshConfigOutT > &mesh_out, VertexCopyMapT &vertex_copy_map_, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor, RefinementVertexAccessorT const &edge_to_vertex_handle_accessor) |
Refines a mesh based on edge information. A bool accessor, indicating if an edge should be refined, and a vertex handle accessor, representing the new vertex of an edge to refine, are used for the refinement process. | |
template<typename ElementTypeOrTagT , typename WrappedMeshConfigInT , typename WrappedSegmentationConfigInT , typename WrappedMeshConfigOutT , typename WrappedSegmentationConfigOutT , typename VertexCopyMapT , typename EdgeRefinementFlagAccessorT , typename RefinementVertexAccessorT > | |
void | simple_refine (mesh< WrappedMeshConfigInT > const &mesh_in, segmentation< WrappedSegmentationConfigInT > const &segmentation_in, mesh< WrappedMeshConfigOutT > &mesh_out, segmentation< WrappedSegmentationConfigOutT > &segmentation_out, VertexCopyMapT &vertex_copy_map_, EdgeRefinementFlagAccessorT const &edge_refinement_flag_accessor, RefinementVertexAccessorT const &edge_to_vertex_handle_accessor) |
Refines a mesh and a segmentation based on edge information. A bool accessor, indicating if an edge should be refined, and a vertex handle accessor, representing the new vertex of an edge to refine, are used for the refinement process. |
Provides the routines for a refinement of a mesh.