ViennaGrid - The Vienna Grid Library
2.1.0
|
The main ViennaGrid namespace. Most user functionality resides directly in this namespace rather than in sub-namespaces. More...
Namespaces | |
namespace | config |
Provides a number of predefined configuration classes, which cover the most frequent use cases. | |
namespace | detail |
Namespace for implementation details. Not intended to be used directly by a library user. | |
namespace | io |
A namespace with all the input/output functionality, in particular file readers and writers. | |
namespace | result_of |
The metafunction layer. Provides type generators that derive the respective type from the mesh configuration. | |
Data Structures | |
struct | affine_transform_functor |
Affine transform functor using a ScalarType * as matrix (row major layout) and a translation vector. More... | |
class | appendix_accessor |
Accessor class for the data members appended (injected) to an element. More... | |
class | base_dynamic_accessor |
Base class for all dynamic accessor. More... | |
class | base_dynamic_field |
Common base class for dynamic data accessors fulfilling the field concept. More... | |
struct | base_id_unpack |
struct | boundary_elements |
Helper class for defining boundary element information. More... | |
struct | boundary_elements< hypercube_tag< 2 >, simplex_tag< 0 > > |
Topological description of the 0-cells (vertices) of a quadrilateral. More... | |
struct | boundary_elements< hypercube_tag< 2 >, simplex_tag< 1 > > |
Topological description of the 1-cells (edges/lines) of a quadrilateral. More... | |
struct | boundary_elements< hypercube_tag< 3 >, hypercube_tag< 2 > > |
Topological description of the 2-cells (quadrilateral faces) of a hexahedron. More... | |
struct | boundary_elements< hypercube_tag< 3 >, simplex_tag< 0 > > |
Topological description of the 0-cells (vertices) of a hexahedron. More... | |
struct | boundary_elements< hypercube_tag< 3 >, simplex_tag< 1 > > |
Topological description of the 1-cells (edges/lines) of a hexahedron. More... | |
struct | boundary_elements< plc_tag, line_tag > |
Topological description of the 1-cells (edges/lines) of a polygon. More... | |
struct | boundary_elements< plc_tag, vertex_tag > |
Topological description of the 0-cells of a polygon. More... | |
struct | boundary_elements< polygon_tag, line_tag > |
Topological description of the 1-cells (edges/lines) of a polygon. More... | |
struct | boundary_elements< polygon_tag, vertex_tag > |
Topological description of the 0-cells of a polygon. More... | |
struct | boundary_elements< simplex_tag< n >, simplex_tag< k > > |
Topological description of the boundary k-cells an n-simplex. More... | |
struct | boundary_information_collection_tag |
A tag for identifying boundary information. More... | |
struct | cartesian_cs |
Provides the basic operations in a cartesian coordinate system. More... | |
struct | coboundary_collection_tag |
A tag for identifying the coboundary collection. More... | |
class | collection |
A collection is a compile-time map which returns objects of (possibly distinct) type based on the provided key type. More... | |
class | continuous_id_generator |
A generator which returns numerical IDs (of possibly different type) in a continuous fashion starting from zero for each requested type. More... | |
class | coordinate_converter |
A conversion facility for transformations between coordinate systems. More... | |
class | coordinate_converter< FromPointType, ToPointType, cartesian_cs< 2 >, polar_cs > |
A functor for the transformation from two-dimensional Cartesian coordinates to polar coodinates. More... | |
class | coordinate_converter< FromPointType, ToPointType, cartesian_cs< 3 >, cylindrical_cs > |
A functor for the transformation from three-dimensional Cartesian coordinates to cylindrical coodinates. More... | |
class | coordinate_converter< FromPointType, ToPointType, cartesian_cs< 3 >, spherical_cs > |
A functor for the transformation from three-dimensional Cartesian coordinates to spherical coodinates. More... | |
class | coordinate_converter< FromPointType, ToPointType, cylindrical_cs, cartesian_cs< 3 > > |
A functor for the transformation from cylindrical coodinates to three-dimensional Cartesian coordinates. More... | |
class | coordinate_converter< FromPointType, ToPointType, cylindrical_cs, spherical_cs > |
A functor for the transformation from cylindrical coordinates to spherical coodinates. More... | |
class | coordinate_converter< FromPointType, ToPointType, polar_cs, cartesian_cs< 2 > > |
A functor for the transformation from polar coordinates to two-dimensional Cartesian coordinates. More... | |
class | coordinate_converter< FromPointType, ToPointType, spherical_cs, cartesian_cs< 3 > > |
A functor for the transformation from spherical coodinates to three-dimensional Cartesian coordinates. More... | |
class | coordinate_converter< FromPointType, ToPointType, spherical_cs, cylindrical_cs > |
A functor for the transformation from spherical coodinates to cylindrical coordinates. More... | |
struct | cs_base |
Common base for all non-cartesian coordinate systems. More... | |
struct | cylindrical_cs |
Provides the basic operations in a cylindrical coordinate system (rho, theta, z) More... | |
class | dense_container_accessor |
Implementation of an accessor for dense containers (most importantly std::vector, std::deque) which fulfills the accessor concept. More... | |
class | dense_container_field |
Accessor class implementing the field concept for dense containers (most importantly std::vector<> and std::deque<>). More... | |
struct | dimension_tag |
A helper tag for dispatches based on the geometrical or topological dimension. More... | |
class | dynamic_accessor_wrapper |
A dynamic accessor class which wraps any user accessor type fulfilling the accessor concept. More... | |
class | dynamic_field_wrapper |
A dynamic accessor class which wraps any user accessor type fulfilling the field concept. More... | |
struct | dynamic_layout_tag |
Tag that indicates that a dynamic container has to be used for storing the boundary element handles (e.g. polygon and plc) More... | |
class | element |
The main element class in ViennaGrid, representing vertices, edges, triangles, etc. More... | |
class | element_extension |
A class for injecting additional members into topological elements (Vertex, Edge, etc.) More... | |
class | element_key |
A key type that uniquely identifies an element by its vertices. More... | |
struct | element_key_tag |
A tag for selecting element_key as a key type within metafunctions. More... | |
class | element_orientation |
A permutator for mapping local orientations to global vertices of a boundary k-cell. More... | |
struct | full_handling_tag |
A tag denoting full storage of boundary elements of a certain topological element. More... | |
struct | full_lazy_handling_tag |
A tag denoting lazy handling of boundary elements. Reserved for future use. More... | |
struct | handled_container_tag |
A tag indicating that a handled container is used. More... | |
class | hidden_key_map |
STL-like map where the key is automatically deduced from the value object (hence 'hidden'). More... | |
class | hidden_key_map_const_iterator |
A const-iterator over all values of a hidden_key_map. More... | |
class | hidden_key_map_const_reverse_iterator |
A const-iterator over all values of a hidden_key_map in reverse direction. More... | |
class | hidden_key_map_iterator |
An iterator over all values of a hidden_key_map. More... | |
class | hidden_key_map_reverse_iterator |
A iterator over all values of a hidden_key_map in reverse direction. More... | |
struct | hidden_key_map_tag |
A tag for selecting a hidden key map as a storage type. More... | |
struct | hypercube_tag< 1 > |
Topological description of a 1-cell (line). Same as simplex_tag<1>. More... | |
struct | hypercube_tag< 2 > |
Topological description of a quadrilateral. More... | |
struct | hypercube_tag< 3 > |
A hypercube of dimension 3, aka. hexahedron. More... | |
struct | id_handle_tag |
A tag defining that ID handles are used. More... | |
struct | id_unpack |
struct | inf_norm_tag |
Tag for denoting the infinity-norm. More... | |
struct | interface_information_collection_tag |
A tag identifying interface information. More... | |
struct | iterator_handle_tag |
A tag defining that iterator handles are used. More... | |
struct | make_element_impl |
struct | make_element_impl< plc_tag > |
struct | make_typelist |
Convenience meta function for creating a typelist out of the provided types. More... | |
class | mesh |
The main mesh class holding all the different elements. The data structure is configured using a configuration class. See viennagrid::config for predefined configurations. More... | |
struct | mesh_proxy |
Proxy object for a mesh. This is used for wrapping a mesh/mesh view when creating a view. More... | |
struct | neighbor_collection_tag |
A tag for identifying the neighbor element collection. More... | |
struct | no_handle_tag |
A tag defining that no handles are used. More... | |
struct | no_handling_tag |
A tag denoting that the boundary elements should not be stored at all. More... | |
struct | no_orientation_handling_tag |
A tag denoting that the boundary elements should stored without orientation. More... | |
struct | no_orientation_lazy_handling_tag |
A tag denoting that orientation should be stored/computed only on request ('lazy'). More... | |
class | not_found |
Empty type indicating that an element in a typelist/typemap wasn't found. More... | |
class | null_type |
An empty type, used within typelists and typemaps. More... | |
struct | one_norm_tag |
Tag for denoting the 1-norm. More... | |
class | out_of_range |
Empty type used to indicate that an element in a typelist/typemap is out of range. More... | |
class | physical_inserter |
An inserter class which adds elements to a the provided container collection. For example, this inserts a triangle into a segment s, but not into the mesh or segment where s was derived from. More... | |
struct | plc_tag |
A tag for identifying piecewise linear complexes (PLCs) More... | |
struct | point_filler |
A helper class for filling point coordinates with values. More... | |
struct | point_filler< CoordType, 1 > |
A helper class for filling point coordinates with values. Specialization for one dimension. More... | |
struct | point_filler< CoordType, 2 > |
A helper class for filling point coordinates with values. Specialization for two dimensions. More... | |
struct | point_filler< CoordType, 3 > |
A helper class for filling point coordinates with values. Specialization for three dimensions. More... | |
class | point_index_out_of_bounds_exception |
An exception class for invalid point indices. More... | |
struct | point_less |
This class provides a less-than comparison for points. Entries are checked for inequality, starting from the first and continuing only in the case of equality. More... | |
struct | pointer_handle_tag |
A tag defining that pointer handles are used. More... | |
struct | polar_cs |
Provides the basic operations in a polar coordinate system (r, phi) More... | |
struct | polygon_tag |
A tag representing polygons. More... | |
class | recursive_inserter |
Recursive inserter which inserts an element into the provided collection and all dependent collections. More... | |
struct | scale_functor |
Scale functor with scaling factor and scale center. More... | |
struct | seg_cell_normal_data |
Data type for cell normals in algorithm/cell_normals.hpp (to be added in a future release) More... | |
struct | seg_cell_normal_tag |
Types for cell normals in algorithm/cell_normals.hpp (to be added in a future release) More... | |
class | segment_handle< viennagrid::segmentation< WrappedConfigType > > |
A segment defines a submesh within a segmentation. The segment_handle is used to deal with segments, since segments are not represented by a dedicated class. More... | |
class | segment_id_not_found_exception |
Provides an exception for the case a segment id cannot be found. More... | |
struct | segment_id_range_t |
Defines a range of segment IDs which represents segments in which an element is included, use result_of::segment_id_range for defining this type. More... | |
class | segment_name_collision_exception |
Provides an exception for the case of a name collision of segment names. More... | |
class | segment_name_not_found_exception |
Provides an exception for the case a segment name cannot be found. More... | |
class | segmentation |
A segmentation is a logical decomposition of the mesh (or a subset thereof) into segments. Segments may overlap. More... | |
struct | segmented_mesh |
A segmented_mesh is a mesh together with a segmentation. More... | |
struct | segmented_mesh< viennagrid::mesh< WrappedMeshConfig >, viennagrid::segmentation< WrappedSegmentationConfig > > |
A specialization for viennagrid meshes and segmentation. More... | |
struct | simplex_tag |
Topological description of an n-simplex. More... | |
struct | simplex_tag< 0 > |
Topological description of a 0-cell (vertex). More... | |
class | spatial_point |
Main point class of ViennaGrid. Represents a geometric location inside the respective Euclidian space. More... | |
struct | spherical_cs |
Provides the basic operations in a spherical coordinate system (r, theta, phi) with theta denoting the elevation angle. More... | |
class | static_array |
Reimplementation of std::array<> because we cannot reasonably expect that C++11 is available on all target machines. More... | |
struct | static_array_tag |
A tag indicating that storage::static_array should be used. More... | |
struct | static_layout_tag |
Tag that indicates that a static container can be used for storing the boundary element handles (e.g. used in simplices and hypercubes) More... | |
struct | static_pair |
A static pair time. To be seen as the equivalent of std::pair<>, but for metaprogramming. More... | |
class | std_map_accessor |
An accessor (fulfilling the accessor concept) for a container of interface similar to std::map<> More... | |
class | std_map_field |
An accessor (fulfilling the field concept) for a container of interface similar to std::map<> More... | |
struct | true_functor |
A trivial functor which always returns true. More... | |
struct | two_norm_tag |
Tag for denoting the 2-norm. More... | |
struct | typelist |
Implementation of a typelist as described by Alexandrescu in his book "Modern C++ Programming". More... | |
class | vertex_copy_map |
A helper class for element copy operation between two differen meshes. More... | |
class | view |
A view holds references to a subset of elements in another elements, but represents itself to the outside as another container. More... | |
Typedefs | |
typedef vertex_1d_cell | brep_1d_cell |
A default cell for a boundary representation in 1d: vertex 1d. | |
typedef vertex_1d_mesh | brep_1d_mesh |
A default mesh for a boundary representation in 1d: vertex 1d. | |
typedef vertex_1d_segment_handle | brep_1d_segment_handle |
A segment for a boundary representation in 1d: vertex 1d. | |
typedef vertex_1d_segmentation | brep_1d_segmentation |
A segmentation for a boundary representation in 1d: vertex 1d. | |
typedef vertex_1d_view | brep_1d_view |
A default view for a boundary representation in 1d: vertex 1d. | |
typedef line_2d_cell | brep_2d_cell |
A default cell for a boundary representation in 2d: line 2d. | |
typedef line_2d_mesh | brep_2d_mesh |
A default mesh for a boundary representation in 2d: line 2d. | |
typedef line_2d_segment_handle | brep_2d_segment_handle |
A segment for a boundary representation in 2d: line 2d. | |
typedef line_2d_segmentation | brep_2d_segmentation |
A segmentation for a boundary representation in 2d: line 2d. | |
typedef line_2d_view | brep_2d_view |
A default view for a boundary representation in 2d: line 2d. | |
typedef plc_3d_cell | brep_3d_cell |
A default cell for a boundary representation in 3d: plc 3d. | |
typedef plc_3d_mesh | brep_3d_mesh |
A default mesh for a boundary representation in 3d: plc 3d. | |
typedef plc_3d_segment_handle | brep_3d_segment_handle |
A segment for a boundary representation in 3d: plc 3d. | |
typedef plc_3d_segmentation | brep_3d_segmentation |
A segmentation for a boundary representation in 3d: plc 3d. | |
typedef plc_3d_view | brep_3d_view |
A default view for a boundary representation in 3d: plc 3d. | |
typedef viennagrid::result_of::segment_handle < cell_only_line_1d_segmentation > ::type | cell_only_line_1d_segment_handle |
A thin segment for lines including only cells in 1d, thin config is used. | |
typedef viennagrid::result_of::cell_only_segmentation < line_1d_mesh >::type | cell_only_line_1d_segmentation |
A thin segmentation for lines including only cells in 1d, thin config is used. | |
typedef viennagrid::result_of::segment_handle < cell_only_line_2d_segmentation > ::type | cell_only_line_2d_segment_handle |
A thin segment for lines including only cells in 2d, thin config is used. | |
typedef viennagrid::result_of::cell_only_segmentation < line_2d_mesh >::type | cell_only_line_2d_segmentation |
A thin segmentation for lines including only cells in 2d, thin config is used. | |
typedef viennagrid::result_of::segment_handle < cell_only_line_3d_segmentation > ::type | cell_only_line_3d_segment_handle |
A thin segment for lines including only cells in 3d, thin config is used. | |
typedef viennagrid::result_of::cell_only_segmentation < line_3d_mesh >::type | cell_only_line_3d_segmentation |
A thin segmentation for lines including only cells in 3d, thin config is used. | |
typedef viennagrid::make_typemap < default_tag, std_deque_tag > ::type | default_container_config |
A typemap defining default container configuration for a container collection. | |
typedef viennagrid::make_typemap < default_tag, std_set_tag < id_compare_tag > >::type | default_view_container_config |
A typemap defining default container configuration for a view container collection. | |
typedef std::size_t | dim_type |
A global size_type equivalent for use throughout ViennaData. | |
typedef simplex_tag< 1 > | edge_tag |
Convenience type definition for a line (same as line_tag) | |
typedef viennagrid::result_of::cell < hexahedral_3d_mesh >::type | hexahedral_3d_cell |
A default cell for hexahedrons in 3d, default config is used. | |
typedef viennagrid::mesh < config::hexahedral_3d > | hexahedral_3d_mesh |
A default mesh for hexahedrons in 3d, default config is used. | |
typedef viennagrid::result_of::segment_handle < hexahedral_3d_segmentation > ::type | hexahedral_3d_segment_handle |
A default segment for hexahedrons in 3d, default config is used. | |
typedef viennagrid::result_of::segmentation < hexahedral_3d_mesh >::type | hexahedral_3d_segmentation |
A default segmentation for hexahedrons in 3d, default config is used. | |
typedef viennagrid::result_of::mesh_view < hexahedral_3d_mesh >::type | hexahedral_3d_view |
A default mesh view for hexahedrons in 3d, default config is used. | |
typedef hypercube_tag< 3 > | hexahedron_tag |
Convenience type definition for a hexahedron. | |
typedef viennagrid::result_of::cell < line_1d_mesh >::type | line_1d_cell |
A default cell for lines in 1d, default config is used. | |
typedef viennagrid::mesh < config::line_1d > | line_1d_mesh |
A default mesh for lines in 1d, default config is used. | |
typedef viennagrid::result_of::segment_handle < line_1d_segmentation >::type | line_1d_segment_handle |
A default segment for lines in 1d, default config is used. | |
typedef viennagrid::result_of::segmentation < line_1d_mesh >::type | line_1d_segmentation |
A default segmentation for lines in 1d, default config is used. | |
typedef viennagrid::result_of::mesh_view < line_1d_mesh >::type | line_1d_view |
A default mesh view for lines in 1d, default config is used. | |
typedef viennagrid::result_of::cell < line_2d_mesh >::type | line_2d_cell |
A default cell for lines in 2d, default config is used. | |
typedef viennagrid::mesh < config::line_2d > | line_2d_mesh |
A default mesh for lines in 2d, default config is used. | |
typedef viennagrid::result_of::segment_handle < line_2d_segmentation >::type | line_2d_segment_handle |
A default segment for lines in 2d, default config is used. | |
typedef viennagrid::result_of::segmentation < line_2d_mesh >::type | line_2d_segmentation |
A default segmentation for lines in 2d, default config is used. | |
typedef viennagrid::result_of::mesh_view < line_2d_mesh >::type | line_2d_view |
A default mesh view for lines in 2d, default config is used. | |
typedef viennagrid::result_of::cell < line_3d_mesh >::type | line_3d_cell |
A default cell for lines in 3d, default config is used. | |
typedef viennagrid::mesh < config::line_3d > | line_3d_mesh |
A default mesh for lines in 3d, default config is used. | |
typedef viennagrid::result_of::segment_handle < line_3d_segmentation >::type | line_3d_segment_handle |
A default segment for lines in 3d, default config is used. | |
typedef viennagrid::result_of::segmentation < line_3d_mesh >::type | line_3d_segmentation |
A default segmentation for lines in 3d, default config is used. | |
typedef viennagrid::result_of::mesh_view < line_3d_mesh >::type | line_3d_view |
A default mesh view for lines in 3d, default config is used. | |
typedef simplex_tag< 1 > | line_tag |
Convenience type definition for a line (same as edge_tag) | |
typedef viennagrid::result_of::cell < plc_3d_mesh >::type | plc_3d_cell |
A default cell for PLCs in 3d, default config is used. | |
typedef viennagrid::mesh < config::plc_3d > | plc_3d_mesh |
A default mesh for PLCs in 3d, default config is used. | |
typedef viennagrid::result_of::segment_handle < plc_3d_segmentation >::type | plc_3d_segment_handle |
A default segment for PLCs in 3d, default config is used. | |
typedef viennagrid::result_of::segmentation < plc_3d_mesh >::type | plc_3d_segmentation |
A default segmentation for PLCs in 3d, default config is used. | |
typedef viennagrid::result_of::mesh_view < plc_3d_mesh >::type | plc_3d_view |
A default mesh view for PLCs in 3d, default config is used. | |
typedef viennagrid::result_of::cell < polygonal_2d_mesh >::type | polygonal_2d_cell |
A default cell for polygons in 2d, default config is used. | |
typedef viennagrid::mesh < config::polygonal_2d > | polygonal_2d_mesh |
A default mesh for polygons in 2d, default config is used. | |
typedef viennagrid::result_of::segment_handle < polygonal_2d_segmentation > ::type | polygonal_2d_segment_handle |
A default segment for polygons in 2d, default config is used. | |
typedef viennagrid::result_of::segmentation < polygonal_2d_mesh >::type | polygonal_2d_segmentation |
A default segmentation for polygons in 2d, default config is used. | |
typedef viennagrid::result_of::mesh_view < polygonal_2d_mesh >::type | polygonal_2d_view |
A default mesh view for polygons in 2d, default config is used. | |
typedef viennagrid::result_of::cell < polygonal_3d_mesh >::type | polygonal_3d_cell |
A default cell for polygons in 3d, default config is used. | |
typedef viennagrid::mesh < config::polygonal_3d > | polygonal_3d_mesh |
A default mesh for polygons in 3d, default config is used. | |
typedef viennagrid::result_of::segment_handle < polygonal_3d_segmentation > ::type | polygonal_3d_segment_handle |
A default segment for polygons in 3d, default config is used. | |
typedef viennagrid::result_of::segmentation < polygonal_3d_mesh >::type | polygonal_3d_segmentation |
A default segmentation for polygons in 3d, default config is used. | |
typedef viennagrid::result_of::mesh_view < polygonal_3d_mesh >::type | polygonal_3d_view |
A default mesh view for polygons in 3d, default config is used. | |
typedef viennagrid::result_of::cell < quadrilateral_2d_mesh > ::type | quadrilateral_2d_cell |
A default cell for quadrilaterals in 2d, default config is used. | |
typedef viennagrid::mesh < config::quadrilateral_2d > | quadrilateral_2d_mesh |
A default mesh for quadrilaterals in 2d, default config is used. | |
typedef viennagrid::result_of::segment_handle < quadrilateral_2d_segmentation > ::type | quadrilateral_2d_segment_handle |
A default segment for quadrilaterals in 2d, default config is used. | |
typedef viennagrid::result_of::segmentation < quadrilateral_2d_mesh > ::type | quadrilateral_2d_segmentation |
A default segmentation for quadrilaterals in 2d, default config is used. | |
typedef viennagrid::result_of::mesh_view < quadrilateral_2d_mesh > ::type | quadrilateral_2d_view |
A default mesh view for quadrilaterals in 2d, default config is used. | |
typedef viennagrid::result_of::cell < quadrilateral_3d_mesh > ::type | quadrilateral_3d_cell |
A default cell for quadrilaterals in 3d, default config is used. | |
typedef viennagrid::mesh < config::quadrilateral_3d > | quadrilateral_3d_mesh |
A default mesh for quadrilaterals in 3d, default config is used. | |
typedef viennagrid::result_of::segment_handle < quadrilateral_3d_segmentation > ::type | quadrilateral_3d_segment_handle |
A default segment for quadrilaterals in 3d, default config is used. | |
typedef viennagrid::result_of::segmentation < quadrilateral_3d_mesh > ::type | quadrilateral_3d_segmentation |
A default segmentation for quadrilaterals in 3d, default config is used. | |
typedef viennagrid::result_of::mesh_view < quadrilateral_3d_mesh > ::type | quadrilateral_3d_view |
A default mesh view for quadrilaterals in 3d, default config is used. | |
typedef hypercube_tag< 2 > | quadrilateral_tag |
Convenience type definition for a quadrilateral. | |
typedef viennagrid::result_of::cell < tetrahedral_3d_mesh >::type | tetrahedral_3d_cell |
A default cell for tetrahedrons in 3d, default config is used. | |
typedef viennagrid::mesh < config::tetrahedral_3d > | tetrahedral_3d_mesh |
A default mesh for tetrahedrons in 3d, default config is used. | |
typedef viennagrid::result_of::segment_handle < tetrahedral_3d_segmentation > ::type | tetrahedral_3d_segment_handle |
A default segment for tetrahedrons in 3d, default config is used. | |
typedef viennagrid::result_of::segmentation < tetrahedral_3d_mesh >::type | tetrahedral_3d_segmentation |
A default segmentation for tetrahedrons in 3d, default config is used. | |
typedef viennagrid::result_of::mesh_view < tetrahedral_3d_mesh >::type | tetrahedral_3d_view |
A default mesh view for tetrahedrons in 3d, default config is used. | |
typedef simplex_tag< 3 > | tetrahedron_tag |
Convenience type definition for a tetrahedron. | |
typedef viennagrid::result_of::segment_handle < thin_cell_only_tetrahedral_3d_segmentation > ::type | thin_cell_only_tetrahedral_3d_segment_handle |
A thin segment for tetrahedrons including only cells in 3d, thin config is used. | |
typedef viennagrid::result_of::cell_only_segmentation < thin_tetrahedral_3d_mesh > ::type | thin_cell_only_tetrahedral_3d_segmentation |
A thin segmentation for tetrahedrons including only cells in 3d, thin config is used. | |
typedef viennagrid::result_of::segment_handle < thin_cell_only_triangular_2d_segmentation > ::type | thin_cell_only_triangular_2d_segment_handle |
A thin segment for triangles including only cells in 2d, thin config is used. | |
typedef viennagrid::result_of::cell_only_segmentation < thin_triangular_2d_mesh > ::type | thin_cell_only_triangular_2d_segmentation |
A thin segmentation for triangles including only cells in 2d, thin config is used. | |
typedef viennagrid::result_of::segment_handle < thin_cell_only_triangular_3d_segmentation > ::type | thin_cell_only_triangular_3d_segment_handle |
A thin segment for triangles including only cells in 3d, thin config is used. | |
typedef viennagrid::result_of::cell_only_segmentation < thin_triangular_3d_mesh > ::type | thin_cell_only_triangular_3d_segmentation |
A thin segmentation for triangles including only cells in 3d, thin config is used. | |
typedef viennagrid::result_of::cell < thin_tetrahedral_3d_mesh > ::type | thin_tetrahedral_3d_cell |
A thin cell for tetrahedrons in 3d, thin config is used. | |
typedef viennagrid::mesh < config::thin_tetrahedral_3d > | thin_tetrahedral_3d_mesh |
A thin mesh for tetrahedrons in 3d, thin config is used. | |
typedef viennagrid::result_of::segment_handle < thin_tetrahedral_3d_segmentation > ::type | thin_tetrahedral_3d_segment_handle |
A thin segment for tetrahedrons in 3d, thin config is used. | |
typedef viennagrid::result_of::segmentation < thin_tetrahedral_3d_mesh > ::type | thin_tetrahedral_3d_segmentation |
A thin segmentation for tetrahedrons in 3d, thin config is used. | |
typedef viennagrid::result_of::mesh_view < thin_tetrahedral_3d_mesh > ::type | thin_tetrahedral_3d_view |
A thin mesh view for tetrahedrons in 3d, thin config is used. | |
typedef viennagrid::result_of::cell < thin_triangular_2d_mesh > ::type | thin_triangular_2d_cell |
A thin cell for triangles in 2d, thin config is used. | |
typedef viennagrid::mesh < config::thin_triangular_2d > | thin_triangular_2d_mesh |
A thin mesh for triangles in 2d, thin config is used. | |
typedef viennagrid::result_of::segment_handle < thin_triangular_2d_segmentation > ::type | thin_triangular_2d_segment_handle |
A thin segment for triangles in 2d, thin config is used. | |
typedef viennagrid::result_of::segmentation < thin_triangular_2d_mesh > ::type | thin_triangular_2d_segmentation |
A thin segmentation for triangles in 2d, thin config is used. | |
typedef viennagrid::result_of::mesh_view < thin_triangular_2d_mesh > ::type | thin_triangular_2d_view |
A thin mesh view for triangles in 2d, thin config is used. | |
typedef viennagrid::result_of::cell < thin_triangular_3d_mesh > ::type | thin_triangular_3d_cell |
A thin cell for triangles in 3d, thin config is used. | |
typedef viennagrid::mesh < config::thin_triangular_3d > | thin_triangular_3d_mesh |
A thin mesh for triangles in 3d, thin config is used. | |
typedef viennagrid::result_of::segment_handle < thin_triangular_3d_segmentation > ::type | thin_triangular_3d_segment_handle |
A thin segment for triangles in 3d, thin config is used. | |
typedef viennagrid::result_of::segmentation < thin_triangular_3d_mesh > ::type | thin_triangular_3d_segmentation |
A thin segmentation for triangles in 3d, thin config is used. | |
typedef viennagrid::result_of::mesh_view < thin_triangular_3d_mesh > ::type | thin_triangular_3d_view |
A thin mesh view for triangles in 3d, thin config is used. | |
typedef viennagrid::result_of::segment_handle < thin_triangular_hull_3d_segmentation > ::type | thin_triangular_hull_3d_segment_handle |
An oriented hull segmentat for triangles in 3d, thin config is used. | |
typedef viennagrid::result_of::oriented_3d_hull_segmentation < thin_triangular_3d_mesh > ::type | thin_triangular_hull_3d_segmentation |
An oriented hull segmentation for triangles in 3d, thin config is used. | |
typedef simplex_tag< 2 > | triangle_tag |
Convenience type definition for a triangle. | |
typedef viennagrid::result_of::cell < triangular_2d_mesh >::type | triangular_2d_cell |
A default cell for triangles in 2d, default config is used. | |
typedef viennagrid::mesh < config::triangular_2d > | triangular_2d_mesh |
A default mesh for triangles in 2d, default config is used. | |
typedef viennagrid::result_of::segment_handle < triangular_2d_segmentation > ::type | triangular_2d_segment_handle |
A default segment for triangles in 2d, default config is used. | |
typedef viennagrid::result_of::segmentation < triangular_2d_mesh >::type | triangular_2d_segmentation |
A default segmentation for triangles in 2d, default config is used. | |
typedef viennagrid::result_of::mesh_view < triangular_2d_mesh >::type | triangular_2d_view |
A default mesh view for triangles in 2d, default config is used. | |
typedef viennagrid::result_of::cell < triangular_3d_mesh >::type | triangular_3d_cell |
A default cell for triangles in 3d, default config is used. | |
typedef viennagrid::mesh < config::triangular_3d > | triangular_3d_mesh |
A default mesh for triangles in 3d, default config is used. | |
typedef viennagrid::result_of::segment_handle < triangular_3d_segmentation > ::type | triangular_3d_segment_handle |
A default segment for triangles in 3d, default config is used. | |
typedef viennagrid::result_of::segmentation < triangular_3d_mesh >::type | triangular_3d_segmentation |
A default segmentation for triangles in 3d, default config is used. | |
typedef viennagrid::result_of::mesh_view < triangular_3d_mesh >::type | triangular_3d_view |
A default mesh view for triangles in 3d, default config is used. | |
typedef viennagrid::result_of::segment_handle < triangular_hull_3d_segmentation > ::type | triangular_hull_3d_segment_handle |
An oriented hull segmentat for triangles in 3d, default config is used. | |
typedef viennagrid::result_of::oriented_3d_hull_segmentation < triangular_3d_mesh >::type | triangular_hull_3d_segmentation |
An oriented hull segmentation for triangles in 3d, default config is used. | |
typedef viennagrid::result_of::cell < vertex_1d_mesh >::type | vertex_1d_cell |
A default cell for vertices in 1d, default config is used. | |
typedef viennagrid::mesh < config::vertex_1d > | vertex_1d_mesh |
A default mesh for vertices in 1d, default config is used. | |
typedef viennagrid::result_of::segment_handle < vertex_1d_segmentation > ::type | vertex_1d_segment_handle |
A default segment for vertices in 1d, default config is used. | |
typedef viennagrid::result_of::segmentation < vertex_1d_mesh >::type | vertex_1d_segmentation |
A default segmentation for vertices in 1d, default config is used. | |
typedef viennagrid::result_of::mesh_view < vertex_1d_mesh >::type | vertex_1d_view |
A default mesh view for vertices in 1d, default config is used. | |
typedef viennagrid::result_of::cell < vertex_2d_mesh >::type | vertex_2d_cell |
A default cell for vertices in 2d, default config is used. | |
typedef viennagrid::mesh < config::vertex_2d > | vertex_2d_mesh |
A default mesh for vertices in 2d, default config is used. | |
typedef viennagrid::result_of::segment_handle < vertex_2d_segmentation > ::type | vertex_2d_segment_handle |
A default segment for vertices in 2d, default config is used. | |
typedef viennagrid::result_of::segmentation < vertex_2d_mesh >::type | vertex_2d_segmentation |
A default segmentation for vertices in 2d, default config is used. | |
typedef viennagrid::result_of::mesh_view < vertex_2d_mesh >::type | vertex_2d_view |
A default mesh view for vertices in 2d, default config is used. | |
typedef viennagrid::result_of::cell < vertex_3d_mesh >::type | vertex_3d_cell |
A default cell for vertices in 3d, default config is used. | |
typedef viennagrid::mesh < config::vertex_3d > | vertex_3d_mesh |
A default mesh for vertices in 3d, default config is used. | |
typedef viennagrid::result_of::segment_handle < vertex_3d_segmentation > ::type | vertex_3d_segment_handle |
A default segment for vertices in 3d, default config is used. | |
typedef viennagrid::result_of::segmentation < vertex_3d_mesh >::type | vertex_3d_segmentation |
A default segmentation for vertices in 3d, default config is used. | |
typedef viennagrid::result_of::mesh_view < vertex_3d_mesh >::type | vertex_3d_view |
A default mesh view for vertices in 3d, default config is used. | |
typedef simplex_tag< 0 > | vertex_tag |
Convenience type definition for a vertex. | |
Functions | |
template<typename SegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
void | add (SegmentHandleT &segment, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Adds an element to a segment, all boundary elements are added recursively. | |
template<typename SegmentHandleT , typename ElementHandleT > | |
void | add (SegmentHandleT &segment, ElementHandleT element_handle) |
Adds an element to a segment, all boundary elements are added recursively. | |
template<typename WrappedConfigT , typename ElementTagT , typename WrappedElementConfigT > | |
void | add (segmentation< WrappedConfigT > &segmentation_obj, typename segmentation< WrappedConfigT >::segment_id_type segment_id, viennagrid::element< ElementTagT, WrappedElementConfigT > &element) |
Adds an element to a segment, all boundary elements are added recursively. | |
template<typename WrappedConfigT , typename ElementHandleT > | |
void | add (segmentation< WrappedConfigT > &segmentation_obj, typename segmentation< WrappedConfigT >::segment_id_type segment_id, ElementHandleT element_handle) |
Adds an element to a segment, all boundary elements are added recursively. | |
template<typename WrappedConfigT , typename SegmentIDIteratorT , typename ElementTagT , typename WrappedElementConfigT > | |
void | add (segmentation< WrappedConfigT > &segmentation_obj, SegmentIDIteratorT segment_ids_it, SegmentIDIteratorT const &segment_ids_end, viennagrid::element< ElementTagT, WrappedElementConfigT > &element) |
Adds an element to all segment provided in a segment id iterator range. | |
template<typename WrappedConfigT , typename SegmentIDIteratorT , typename ElementHandleT > | |
void | add (segmentation< WrappedConfigT > &segmentation_obj, SegmentIDIteratorT segment_ids_it, SegmentIDIteratorT const &segment_ids_end, ElementHandleT element_handle) |
Adds an element to all segment provided in a segment id iterator range. | |
template<typename ViewT , typename HandleT > | |
void | add_single_handle (ViewT &view_or_segment, HandleT handle) |
Adds a single element handle (no boundary elements/handles) to a view if it isn't already present in that view. The runtime of this function is linear in the number of elements present in the view. | |
template<typename iterator_type , typename distance_type > | |
iterator_type | advance (iterator_type const &in, distance_type distance) |
Advances an iterator and returns it. | |
template<typename MeshT > | |
void | affine_transform (MeshT &mesh, typename viennagrid::result_of::coord< MeshT >::type const *matrix, typename viennagrid::result_of::point< MeshT >::type const &translation) |
Function for an affine transformation of a mesh, uses affine_transform_functor. | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | angle (PointT const &v0, PointT const &v1) |
Implementation of the spanned angle between two vectors (i.e. the angle between the rays connecting v0 and v1 with the origin) | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | angle (PointT const &p0, PointT const &p1, PointT const &origin) |
Implementation of the angle between two lines directing from origin to p0 and p1. | |
template<typename ElementTypeOrTagT , typename MeshT , typename InterfaceAreaAccessorT , typename InterfaceAreaCellContributionAccessorT , typename VertexBoxVolumeAccessorT , typename VertexBoxVolumeCellContributionAccessorT , typename EdgeBoxVolumeAccessorT , typename EdgeBoxVolumeCellContributionAccessorT > | |
void | apply_voronoi (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) |
Writes Voronoi information to the mesh or segment using the provided accessors. | |
template<typename PointAccessorT , typename SomethingT1 , typename SomethingT2 > | |
viennagrid::result_of::coord < SomethingT1 >::type | boundary_distance (PointAccessorT const accessor, SomethingT1 const &el1, SomethingT2 const &el2) |
Returns the distance between elements, segments and/or meshs. | |
template<typename SomethingT1 , typename SomethingT2 > | |
viennagrid::result_of::coord < SomethingT1 >::type | boundary_distance (SomethingT1 const &el1, SomethingT2 const &el2) |
Returns the distance between elements, segments and/or meshs. | |
template<typename SomethingT , typename CoordT , typename CoordinateSystemT > | |
viennagrid::result_of::coord < SomethingT >::type | boundary_distance (SomethingT const &el1, spatial_point< CoordT, CoordinateSystemT > const &el2) |
Returns the distance between a point and an element, segment and/or mesh. | |
template<typename CoordT , typename CoordinateSystemT , typename SomethingT > | |
viennagrid::result_of::coord < SomethingT >::type | boundary_distance (spatial_point< CoordT, CoordinateSystemT > const &el1, SomethingT const &el2) |
Returns the distance between a point and an element, segment and/or mesh. | |
template<typename PointIteratorT > | |
std::pair< typename std::iterator_traits < PointIteratorT >::value_type, typename std::iterator_traits < PointIteratorT >::value_type > | bounding_box (PointIteratorT it, PointIteratorT const &it_end) |
Calculates the bounding box of a point iterator range. A pair of points is return, where the first represents the coordinate-wise minimum and the second represents the coordinate-wise maximum. | |
template<typename MeshT > | |
std::pair< typename viennagrid::result_of::point < MeshT >::type, typename viennagrid::result_of::point < MeshT >::type > | bounding_box (MeshT const &mesh) |
Calculates the bounding box a mesh. A pair of points is return, where the first represents the coordinate-wise minimum and the second represents the coordinate-wise maximum. | |
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 SomethingT > | |
result_of::cell_range < SomethingT >::type | cells (SomethingT &something) |
Function for retrieving a cell range object from a host object. | |
template<typename SomethingT > | |
result_of::const_cell_range < SomethingT >::type | cells (SomethingT const &something) |
Function for retrieving a const cell range object from a host object. | |
template<typename PointAccessorT , typename ElementT > | |
PointAccessorT::value_type | centroid (PointAccessorT const accessor, ElementT const &element) |
The public interface function for the computation of a centroid of an element with explicit point accessor. | |
template<typename ElementTag , typename WrappedConfigT > | |
viennagrid::result_of::point < viennagrid::element < ElementTag, WrappedConfigT > >::type | centroid (viennagrid::element< ElementTag, WrappedConfigT > const &element) |
The public interface function for the computation of a centroid of an element. | |
template<typename ElementTOrTagT , typename WrappedConfigT , typename PointAccessorT > | |
viennagrid::result_of::point < mesh< WrappedConfigT > >::type | centroid (mesh< WrappedConfigT > const &mesh_obj, PointAccessorT const point_accessor) |
The public interface function for the computation of a centroid of a mesh with explicit point accessor. | |
template<typename WrappedConfigT , typename PointAccessorT > | |
viennagrid::result_of::point < mesh< WrappedConfigT > >::type | centroid (mesh< WrappedConfigT > const &mesh_obj, PointAccessorT const point_accessor) |
The public interface function for the computation of a centroid of a mesh with explicit point accessor. Cells are used for centroid calculation, will fail if there is more than one cell type. | |
template<typename ElementTOrTagT , typename WrappedConfigT > | |
viennagrid::result_of::point < mesh< WrappedConfigT > >::type | centroid (mesh< WrappedConfigT > const &mesh_obj) |
The public interface function for the computation of a centroid of a mesh. | |
template<typename WrappedConfigT > | |
viennagrid::result_of::point < mesh< WrappedConfigT > >::type | centroid (mesh< WrappedConfigT > const &mesh_obj) |
The public interface function for the computation of a centroid of a mesh. Cells are used for centroid calculation, will fail if there is more than one cell type. | |
template<typename ElementTOrTagT , typename SegmentationT , typename PointAccessorT > | |
viennagrid::result_of::point < segment_handle < SegmentationT > >::type | centroid (segment_handle< SegmentationT > const &segment, PointAccessorT const point_accessor) |
The public interface function for the computation of a centroid of a segment with explicit point accessor. | |
template<typename SegmentationT , typename PointAccessorT > | |
viennagrid::result_of::point < segment_handle < SegmentationT > >::type | centroid (segment_handle< SegmentationT > const &segment, PointAccessorT const point_accessor) |
The public interface function for the computation of a centroid of a segment with explicit point accessor. Cells are used for centroid calculation, will fail if there is more than one cell type. | |
template<typename ElementTOrTagT , typename SegmentationT > | |
viennagrid::result_of::point < segment_handle < SegmentationT > >::type | centroid (segment_handle< SegmentationT > const &segment) |
The public interface function for the computation of a centroid of a segment. | |
template<typename SegmentationT > | |
viennagrid::result_of::point < segment_handle < SegmentationT > >::type | centroid (segment_handle< SegmentationT > const &segment) |
The public interface function for the computation of a centroid of a segment. Cells are used for centroid calculation, will fail if there is more than one cell type. | |
template<typename PointAccessorT , typename ElementT > | |
PointAccessorT::value_type | circumcenter (PointAccessorT const accessor, ElementT const &element) |
The public interface function for the calculation of the circumcenter with explicit point accessor. | |
template<typename ElementT > | |
viennagrid::result_of::point < ElementT >::type | circumcenter (ElementT const &element) |
The public interface function for the calculation of the circumcenter. | |
template<typename SegmentationT > | |
void | clear (segment_handle< SegmentationT > &segment_) |
Completely clears a segmentation. | |
template<typename WrappedConfigT > | |
void | clear (mesh< WrappedConfigT > &mesh_) |
Completely clears a mesh. | |
template<typename WrappedConfigT > | |
void | clear (segmentation< WrappedConfigT > &segmentation_) |
Completely clears a segmentation. | |
template<typename PointAccessorT , typename SomethingT1 , typename SomethingT2 > | |
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > | closest_points (PointAccessorT const accessor, SomethingT1 const &el1, SomethingT2 const &el2) |
Returns the distance between n-cells. | |
template<typename SomethingT1 , typename SomethingT2 > | |
std::pair< typename viennagrid::result_of::point < SomethingT1 >::type, typename viennagrid::result_of::point < SomethingT1 >::type > | closest_points (SomethingT1 const &el1, SomethingT2 const &el2) |
Returns the closest points between two elements/segments using the default accessor for geometric points on vertices. | |
template<typename PointAccessorT , typename SomethingT1 , typename SomethingT2 > | |
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > | closest_points_on_boundary (PointAccessorT const accessor, SomethingT1 const &el1, SomethingT2 const &el2) |
Returns the closest points between two elements/segments using the provided accessor for geometric points on vertices. | |
template<typename SomethingT1 , typename SomethingT2 > | |
std::pair< typename viennagrid::result_of::point < SomethingT1 >::type, typename viennagrid::result_of::point < SomethingT1 >::type > | closest_points_on_boundary (SomethingT1 const &el1, SomethingT2 const &el2) |
Returns the distance between n-cells. | |
template<typename ElementTypeOrTagT , typename CoboundaryTypeOrTagT , typename WrappedConfigT , typename ElementOrHandleT > | |
result_of::coboundary_range < viennagrid::mesh < WrappedConfigT > , ElementTypeOrTagT, CoboundaryTypeOrTagT >::type | coboundary_elements (viennagrid::mesh< WrappedConfigT > &mesh_obj, ElementOrHandleT const &element_or_handle) |
Obtaines a coboundary range of an element within a mesh. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the mesh. | |
template<typename ElementTypeOrTagT , typename CoboundaryTypeOrTagT , typename WrappedConfigT , typename ElementOrHandleT > | |
result_of::const_coboundary_range < viennagrid::mesh < WrappedConfigT > , ElementTypeOrTagT, CoboundaryTypeOrTagT >::type | coboundary_elements (viennagrid::mesh< WrappedConfigT > const &mesh_obj, ElementOrHandleT const &element_or_handle) |
Obtaines a const coboundary range of an element within a mesh. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the mesh. | |
template<typename ElementTypeOrTagT , typename CoboundaryTypeOrTagT , typename SegmentationT , typename element_or_handle_type > | |
result_of::coboundary_range < segment_handle < SegmentationT > , ElementTypeOrTagT, CoboundaryTypeOrTagT >::type | coboundary_elements (segment_handle< SegmentationT > &segment, element_or_handle_type const &element_or_handle) |
Obtaines a coboundary range of an element within a segment. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the segment. | |
template<typename ElementTypeOrTagT , typename CoboundaryTypeOrTagT , typename SegmentationT , typename element_or_handle_type > | |
result_of::const_coboundary_range < segment_handle < SegmentationT > , ElementTypeOrTagT, CoboundaryTypeOrTagT >::type | coboundary_elements (segment_handle< SegmentationT > const &segment, element_or_handle_type const &element_or_handle) |
Obtaines a const coboundary range of an element within a segment. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the segment. | |
template<typename SrcMeshT , typename DstMeshT , typename ToCopyFunctorT > | |
void | copy (SrcMeshT const &src_mesh, DstMeshT &dst_mesh, ToCopyFunctorT functor) |
Copies the cells of a mesh if a boolean functor is true. | |
template<typename SrcMeshT , typename SrcSegmentationT , typename DstMeshT , typename DstSegmentationT , typename ToCopyFunctorT > | |
void | copy (SrcMeshT const &src_mesh, SrcSegmentationT const &src_segmentation, DstMeshT &dst_mesh, DstSegmentationT &dst_segmentation, ToCopyFunctorT functor) |
Copies the cells of a mesh and a segmentation if a boolean functor is true. | |
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 InputMeshOrSegmentHandleT , typename ElementHandleIteratorT , typename OutputMeshOrSegmentHandleT > | |
void | copy_element_by_handles (InputMeshOrSegmentHandleT const &input_mesh, ElementHandleIteratorT const &begin, ElementHandleIteratorT const &end, OutputMeshOrSegmentHandleT &output_mesh, typename viennagrid::result_of::coord< OutputMeshOrSegmentHandleT >::type tolerance) |
Function for copying an element handle iterator range to a mesh or segment. | |
template<typename InputMeshOrSegmentHandleT , typename ElementHandleIteratorT , typename OutputMeshOrSegmentHandleT > | |
void | copy_element_by_handles (InputMeshOrSegmentHandleT const &input_mesh, ElementHandleIteratorT const &begin, ElementHandleIteratorT const &end, OutputMeshOrSegmentHandleT &output_mesh) |
Function for copying an element handle iterator range 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 SourceMeshT , typename SourceSegmentationT , typename DestinationMeshT , typename DestinationSegmentationT > | |
void | copy_segmentation (SourceMeshT const &src_mesh_, SourceSegmentationT const &src_segmentation_, DestinationMeshT &dst_mesh_, DestinationSegmentationT &dst_segmentation_) |
Copies a segmentation. Warning: may be slow! | |
template<typename PointT1 , typename PointT2 > | |
PointT1 | cross_prod (PointT1 const &v1, PointT2 const &v2) |
Returns the cross product of two vectors. If the vectors have one or two components only, the zero vector is returned. | |
template<typename PointT1 , typename PointT2 , typename CSystem1 , typename CSystem2 > | |
PointT1 | cross_prod_impl (PointT1 const &p1, PointT2 const &p2, CSystem1 const &, CSystem2 const &) |
Dispatched cross product function having information about the coordinate systems. Transforms to Cartesian coordinates and forwards to calculation. | |
template<typename PointT1 , typename PointT2 , int d> | |
PointT1 | cross_prod_impl (PointT1 const &p1, PointT2 const &p2, cartesian_cs< d >, cartesian_cs< d >) |
Dispatched cross product function having information about the coordinate systems. Points are already in Cartesian coordinates, thus forwarding to the worker function directly. | |
template<typename mesh_or_element_type > | |
result_of::default_point_accessor < mesh_or_element_type >::type | default_point_accessor (mesh_or_element_type const &) |
Convenience function for returning the default point accessor (i.e. accessing the point stored in the element's appendix) for a mesh or element. | |
template<typename SegmentationT , typename HandleT > | |
detail::result_of::value_type < HandleT >::type & | dereference_handle (segment_handle< SegmentationT > &segment_handle, HandleT const &handle) |
Function for dereferencing a handle using a segment object. | |
template<typename SegmentationT , typename HandleT > | |
detail::result_of::value_type < HandleT >::type const & | dereference_handle (segment_handle< SegmentationT > const &segment_handle, HandleT const &handle) |
Function for dereferencing a handle using a segment object. | |
template<typename WrappedMeshConfigT , typename HandleT > | |
viennagrid::detail::result_of::value_type < HandleT >::type & | dereference_handle (mesh< WrappedMeshConfigT > &mesh_obj, HandleT const &handle) |
Function for dereferencing a handle using a mesh/segment object. | |
template<typename element_tag , typename WrappedConfigType , typename handle_type > | |
detail::result_of::value_type < handle_type >::type & | dereference_handle (viennagrid::element< element_tag, WrappedConfigType > &element, handle_type const &handle) |
Function for dereferencing a handle using a host element. | |
template<typename WrappedMeshConfigT , typename HandleT > | |
viennagrid::detail::result_of::value_type < HandleT >::type const & | dereference_handle (mesh< WrappedMeshConfigT > const &mesh_obj, HandleT const &handle) |
Function for dereferencing a handle using a mesh/segment object, const version. | |
template<typename element_tag , typename WrappedConfigType , typename handle_type > | |
const detail::result_of::value_type < handle_type >::type & | dereference_handle (viennagrid::element< element_tag, WrappedConfigType > const &element, handle_type const &handle) |
Function for dereferencing a handle using a host element. | |
template<typename WrappedConfigT , typename HandleT > | |
detail::result_of::value_type < HandleT >::type & | dereference_handle (segmentation< WrappedConfigT > &segmentation_, HandleT const &handle) |
Function for dereferencing a handle using a segmentation. | |
template<typename WrappedConfigT , typename HandleT > | |
detail::result_of::value_type < HandleT >::type const & | dereference_handle (segmentation< WrappedConfigT > const &segmentation_, HandleT const &handle) |
Function for dereferencing a handle using a segmentation. | |
template<typename WrappedMeshConfigT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > & | dereference_handle (viennagrid::mesh< WrappedMeshConfigT > &, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Function for dereferencing an element -> identity. | |
template<typename WrappedMeshConfigT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > & | dereference_handle (viennagrid::segment_handle< WrappedMeshConfigT > &, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Function for dereferencing an element -> identity. | |
template<typename HostElementTagT , typename WrappedHostElementConfigT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > & | dereference_handle (viennagrid::element< HostElementTagT, WrappedHostElementConfigT > &, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Function for dereferencing an element -> identity. | |
template<typename WrappedMeshConfigT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > const & | dereference_handle (viennagrid::mesh< WrappedMeshConfigT > const &, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Function for dereferencing a const element -> identity. | |
template<typename WrappedMeshConfigT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > const & | dereference_handle (viennagrid::mesh< WrappedMeshConfigT > &, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Function for dereferencing a const element -> identity. | |
template<typename WrappedMeshConfigT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > const & | dereference_handle (viennagrid::mesh< WrappedMeshConfigT > const &, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Function for dereferencing a const element -> identity. | |
template<typename SegmentationT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > const & | dereference_handle (viennagrid::segment_handle< SegmentationT > const &, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Function for dereferencing a const element -> identity. | |
template<typename SegmentationT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > const & | dereference_handle (viennagrid::segment_handle< SegmentationT > &, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Function for dereferencing a const element -> identity. | |
template<typename SegmentationT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > const & | dereference_handle (viennagrid::segment_handle< SegmentationT > const &, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Function for dereferencing an element -> identity. | |
template<typename HostElementTagT , typename WrappedHostElementConfigT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > const & | dereference_handle (viennagrid::element< HostElementTagT, WrappedHostElementConfigT > const &, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Function for dereferencing a const element -> identity. | |
template<typename HostElementTagT , typename WrappedHostElementConfigT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > const & | dereference_handle (viennagrid::element< HostElementTagT, WrappedHostElementConfigT > &, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Function for dereferencing a const element -> identity. | |
template<typename HostElementTagT , typename WrappedHostElementConfigT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::element < ElementTagT, WrappedConfigT > const & | dereference_handle (viennagrid::element< HostElementTagT, WrappedHostElementConfigT > const &, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Function for dereferencing an element -> identity. | |
template<typename SegmentationT > | |
void | detect_interface (segment_handle< SegmentationT > &seg0, segment_handle< SegmentationT > &seg1) |
Public interface function for the detection of interface n-cells between two segments. No need to call this function explicitly, since it is called by is_interface() | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | determinant (PointT const &p0) |
Calculates the determinant of a 1x1 matrix with the columns provided as 1D-points. | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | determinant (PointT const &p0, PointT const &p1) |
Calculates the determinant of a 2x2 matrix with the columns provided as 2D-points. | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | determinant (PointT const &p0, PointT const &p1, PointT const &p2) |
Calculates the determinant of a 3x3 matrix with the columns provided as 3D-points. | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | dihedral_angle (PointT const &p0, PointT const &p1, PointT const &p2, PointT const &q0, PointT const &q1, PointT const &q2) |
Implementation of the dihedral angle between two planes, each defined by 3 points. | |
template<typename PointAccessorT , typename SomethingT1 , typename SomethingT2 > | |
viennagrid::result_of::coord < SomethingT1 >::type | distance (PointAccessorT const accessor, SomethingT1 const &el1, SomethingT2 const &el2) |
Returns the distance between elements, segments and/or meshs using the point accessor provided. | |
template<typename SomethingT1 , typename SomethingT2 > | |
viennagrid::result_of::coord < SomethingT1 >::type | distance (SomethingT1 const &el1, SomethingT2 const &el2) |
Returns the distance between elements, segments and/or meshs using the default point accessor. | |
template<typename SomethingT , typename CoordT , typename CoordinateSystemT > | |
viennagrid::result_of::coord < SomethingT >::type | distance (SomethingT const &el1, spatial_point< CoordT, CoordinateSystemT > const &el2) |
Returns the distance between a point and an element/segment/meshs using the default point accessor. | |
template<typename CoordT , typename CoordinateSystemT , typename SomethingT > | |
viennagrid::result_of::coord < SomethingT >::type | distance (spatial_point< CoordT, CoordinateSystemT > const &el1, SomethingT const &el2) |
Returns the distance between a point and an element/segment/meshs using the default point accessor. | |
template<typename CoordT1 , typename CoordinateSystemT1 , typename CoordT2 , typename CoordinateSystemT2 > | |
viennagrid::result_of::coord < spatial_point< CoordT1, CoordinateSystemT1 > >::type | distance (spatial_point< CoordT1, CoordinateSystemT1 > const &el1, spatial_point< CoordT2, CoordinateSystemT2 > const &el2) |
Returns the Euclidian distance between two points. | |
template<typename WrappedMeshConfigT , typename SegmentationT > | |
result_of::coord < segment_handle < SegmentationT > >::type | distance (element< line_tag, WrappedMeshConfigT > const &line, segment_handle< SegmentationT > const &segment_handle) |
Returns the Euclidian distance between the boundary of a segment and a line. | |
template<typename SegmentationT , typename WrappedMeshConfigT > | |
result_of::coord < segment_handle < SegmentationT > >::type | distance (segment_handle< SegmentationT > const &segment_handle, element< line_tag, WrappedMeshConfigT > const &line) |
template<typename PointType > | |
std::size_t | dynamic_size (PointType const &p) |
Returns the dynamic (run time) size of a point. Assumes a .size() member. Other cases must be provided with overloads. | |
template<typename SomethingT > | |
result_of::element_range < SomethingT, edge_tag >::type | edges (SomethingT &something) |
Function for retrieving a edge range object from a host object (same as lines) | |
template<typename SomethingT > | |
result_of::const_element_range < SomethingT, edge_tag >::type | edges (SomethingT const &something) |
Function for retrieving a const edge range object from a host object (same as lines) | |
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 element_type_or_tag , typename something > | |
result_of::element_view < something, element_type_or_tag >::type | element_view (something &s) |
Returns an empty view object derived from the respective element. | |
template<typename element_type_or_tag , typename something , typename functor > | |
result_of::element_view < something, element_type_or_tag >::type | element_view (something &s, functor f) |
Returns a view object derived from the respective mesh or segment. Whenever the provided filter functor evaluates to true for an element, it is added to the view. Non-const version. | |
template<typename element_type_or_tag , typename something , typename functor > | |
result_of::const_element_view < something, element_type_or_tag >::type | element_view (something const &s, functor f) |
Returns a view object derived from the respective mesh or segment. Whenever the provided filter functor evaluates to true for an element, it is added to the view. Const version. | |
template<typename sub_element_type_or_tag , typename element_tag , typename WrappedConfigType > | |
result_of::element_range < viennagrid::element < element_tag, WrappedConfigType > , sub_element_type_or_tag > ::type | elements (viennagrid::element< element_tag, WrappedConfigType > &element) |
Function for retrieving a boundary element range from a host element. Non-const version. | |
template<typename sub_element_type_or_tag , typename element_tag , typename WrappedConfigType > | |
result_of::const_element_range < viennagrid::element < element_tag, WrappedConfigType > , sub_element_type_or_tag > ::type | elements (const viennagrid::element< element_tag, WrappedConfigType > &element) |
Function for retrieving a boundary element range from a host element. Const version. | |
template<typename element_type_or_tag , typename container_collection_typemap > | |
result_of::element_range < collection < container_collection_typemap > , element_type_or_tag >::type | elements (collection< container_collection_typemap > &collection) |
Function for retrieving an element range or a boundary element range from a container collection. Non-const version. | |
template<typename element_type_or_tag , typename container_collection_typemap > | |
result_of::const_element_range < collection < container_collection_typemap > , element_type_or_tag >::type | elements (const collection< container_collection_typemap > &collection) |
Function for retrieving an element range or a boundary element range from a container collection. Const version. | |
template<typename ElementTypeOrTagT , typename SomethingT > | |
result_of::element_range < SomethingT, ElementTypeOrTagT >::type | elements (SomethingT &something) |
Function for retrieving an element range or a boundary element range from a host object. | |
template<typename ElementTypeOrTagT , typename WrappedConfigType > | |
result_of::element_range < viennagrid::mesh < WrappedConfigType > , ElementTypeOrTagT >::type | elements (viennagrid::mesh< WrappedConfigType > &mesh_obj) |
Function for retrieving an element range or a boundary element range from a mesh. Non-const version. | |
template<typename ElementTypeOrTagT , typename SegmentationT > | |
result_of::element_range < viennagrid::segment_handle < SegmentationT > , ElementTypeOrTagT >::type | elements (viennagrid::segment_handle< SegmentationT > &segment) |
Function for retrieving an element range or a boundary element range from a segment. | |
template<typename ElementTypeOrTagT , typename WrappedConfigT > | |
result_of::element_range < segmentation< WrappedConfigT > , ElementTypeOrTagT >::type | elements (viennagrid::segmentation< WrappedConfigT > &segm) |
Function for retrieving an element range or a boundary element range from a segmentation. Non-const version. | |
template<typename ElementTypeOrTagT , typename SomethingT > | |
result_of::const_element_range < SomethingT, ElementTypeOrTagT >::type | elements (SomethingT const &something) |
Function for retrieving a const element range or a boundary element range from a host object. | |
template<typename ElementTypeOrTagT , typename WrappedConfigType > | |
result_of::const_element_range < viennagrid::mesh < WrappedConfigType > , ElementTypeOrTagT >::type | elements (viennagrid::mesh< WrappedConfigType > const &mesh_obj) |
Function for retrieving an element range or a boundary element range from a mesh. Const version. | |
template<typename ElementTypeOrTagT , typename SegmentationT > | |
result_of::const_element_range < viennagrid::segment_handle < SegmentationT > , ElementTypeOrTagT >::type | elements (viennagrid::segment_handle< SegmentationT > const &segment) |
Function for retrieving a const element range or a boundary element range from a segment. Const-version. | |
template<typename ElementTypeOrTagT , typename WrappedConfigT > | |
result_of::const_element_range < viennagrid::segmentation < WrappedConfigT > , ElementTypeOrTagT >::type | elements (viennagrid::segmentation< WrappedConfigT > const &segm) |
Function for retrieving an element range or a boundary element range from a segmentation. Const version. | |
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 SegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
void | erase (SegmentHandleT &segment, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Deletes an element from a segment. The runtime of this function is linear in the number of elements of the element type to delete. | |
template<typename MeshT , typename HandleT > | |
void | erase_element (MeshT &mesh_obj, HandleT element_to_erase) |
Erases a single elements and all elements which references this element from a mesh. If more than one element is erase use erase_elements instead for better performance. | |
template<typename WrappedConfigT , typename ToEraseViewT > | |
void | erase_elements (viennagrid::mesh< WrappedConfigT > &mesh_obj, ToEraseViewT &elements_to_erase) |
Erases all elements marked for deletion and all elements which references these elements from a mesh. | |
template<typename WrappedConfigType , typename ElementTypeList , typename ContainerConfig , typename ToEraseViewT > | |
void | erase_elements (viennagrid::mesh< viennagrid::detail::decorated_mesh_view_config< WrappedConfigType, ElementTypeList, ContainerConfig > > &view_obj, ToEraseViewT &elements_to_erase) |
Erases all elements marked for deletion and all elements which references these elements from a view. | |
template<typename HullTypeOrTagT , typename VolumeMeshT , typename HullMeshT > | |
void | extract_boundary (VolumeMeshT const &volume_mesh, HullMeshT &hull_mesh) |
Extracts the hull of mesh using viennagrid::boundary, e.g. the triangular hull of a tetrahedral mesh. | |
template<typename VolumeMeshT , typename HullMeshT > | |
void | extract_boundary (VolumeMeshT const &volume_mesh, HullMeshT &hull_mesh) |
Extracts the hull of mesh using viennagrid::boundary, e.g. the triangular hull of a tetrahedral mesh. The facet type is used as the hull element type. | |
template<typename HullTypeOrTagT , typename VolumeMeshT , typename VolumeSegmentationT , typename HullMeshT , typename HullSegmentationT > | |
void | extract_boundary (VolumeMeshT const &volume_mesh, VolumeSegmentationT const &volume_segmentation, HullMeshT &hull_mesh, HullSegmentationT &hull_segmentation) |
Extracts the hull of mesh and a segmentation using viennagrid::boundary, e.g. the triangular hull of a tetrahedral mesh. | |
template<typename VolumeMeshT , typename VolumeSegmentationT , typename HullMeshT , typename HullSegmentationT > | |
void | extract_boundary (VolumeMeshT const &volume_mesh, VolumeSegmentationT const &volume_segmentation, HullMeshT &hull_mesh, HullSegmentationT &hull_segmentation) |
Extracts the hull of mesh and a segmentation using viennagrid::boundary, e.g. the triangular hull of a tetrahedral mesh. The facet type is used as the hull element type. | |
template<typename MeshSegmentT , typename SeedPointContainerT > | |
void | extract_seed_points (MeshSegmentT const &mesh, SeedPointContainerT &seed_points) |
Extracts seed points of a mesh. For each connected part of the mesh, a point which is inside this part is added to the seed_points container. | |
template<typename MeshT , typename SegmentationT , typename SeedPointContainerT > | |
void | extract_seed_points (MeshT const &mesh, SegmentationT const &segmentation, SeedPointContainerT &seed_points) |
Extracts seed points of a mesh with segmentation. For each segment, seed points are extracted. | |
template<typename ElementT > | |
result_of::facet_range < ElementT >::type | facets (ElementT &element) |
Function for retrieving a facet range object from a host object. | |
template<typename ElementT > | |
result_of::const_facet_range < ElementT >::type | facets (const ElementT &element) |
Function for retrieving a const facet range object from a host object. | |
template<typename MeshSegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::result_of::iterator < typename viennagrid::result_of::element_range < MeshSegmentHandleT, ElementTagT >::type >::type | find (MeshSegmentHandleT &mesh_or_segment, element< ElementTagT, WrappedConfigT > const &element) |
Function which finds an element based on an element. The runtime of this function depends on the container but can likely be linear in the number of elements of the requested type in the mesh. | |
template<typename MeshSegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::result_of::const_iterator < typename viennagrid::result_of::element_range < MeshSegmentHandleT, ElementTagT >::type >::type | find (MeshSegmentHandleT const &mesh_or_segment, element< ElementTagT, WrappedConfigT > const &element) |
Function which finds an element based on an element, const version. The runtime of this function depends on the container but can likely be linear in the number of elements of the requested type in the mesh. | |
template<typename MeshSegmentHandleT , typename IDT > | |
viennagrid::result_of::iterator < typename viennagrid::result_of::element_range < MeshSegmentHandleT, typename IDT::value_type::tag >::type > ::type | find (MeshSegmentHandleT &mesh_or_segment, IDT id) |
Function which finds an element based on an ID. The runtime of this function depends on the container but can likely be linear in the number of elements of the requested type in the mesh. | |
template<typename MeshSegmentHandleT , typename IDT > | |
viennagrid::result_of::const_iterator < typename viennagrid::result_of::element_range < MeshSegmentHandleT, typename IDT::value_type::tag >::type > ::type | find (MeshSegmentHandleT const &mesh_or_segment, IDT id) |
Function which finds an element based on an ID, const version. The runtime of this function depends on the container but can likely be linear in the number of elements of the requested type in the mesh. | |
template<typename MeshSegmentHandleT , typename HandleT > | |
viennagrid::result_of::iterator < typename viennagrid::result_of::element_range < MeshSegmentHandleT, typename detail::result_of::value_type < HandleT >::type >::type > ::type | find_by_handle (MeshSegmentHandleT &mesh_or_segment, HandleT handle) |
Function which finds an element based on a handle. The runtime of this function is linear in the number of elements of the requested type in the mesh. | |
template<typename MeshSegmentHandleT , typename HandleT > | |
viennagrid::result_of::const_iterator < typename viennagrid::result_of::const_element_range < MeshSegmentHandleT, typename detail::result_of::value_type < HandleT >::type >::type > ::type | find_by_handle (MeshSegmentHandleT const &mesh_or_segment, HandleT handle) |
Function which finds an element based on a handle, const version. The runtime of this function is linear in the number of elements of the requested type in the mesh. | |
template<int TopologicDimensionV, typename MeshSegmentHandleT , typename FunctorT > | |
void | for_each (MeshSegmentHandleT &mesh_or_segment, FunctorT f) |
Function which executes functor for each element with specific topologic dimension. | |
template<int TopologicDimensionV, typename MeshSegmentHandleT , typename FunctorT > | |
void | for_each (MeshSegmentHandleT const &mesh_or_segment, FunctorT f) |
Function which executes functor for each element with specific topologic dimension, const version. | |
template<typename MeshSegmentHandleT , typename FunctorT > | |
void | for_each (MeshSegmentHandleT &mesh_or_segment, FunctorT f) |
Function which executes functor for each element (of all topological dimensions) of the mesh or segment. Non-const version. | |
template<typename MeshSegmentHandleT , typename FunctorT > | |
void | for_each (MeshSegmentHandleT const &mesh_or_segment, FunctorT f) |
Function which executes functor for each element (of all topological dimensions) of the mesh or segment. Const version. | |
template<typename BoundaryElementTypelistT , typename ElementT , typename FunctorT > | |
void | for_each_boundary_element (ElementT &element, FunctorT functor) |
Applies a functor to all boundary cells of an element. For example, this applies a functor to all vertices and edges of a triangle. | |
template<typename ElementT , typename FunctorT > | |
void | for_each_boundary_element (ElementT &element, FunctorT functor) |
template<typename MeshT , typename FunctorT , typename PointAccessorT > | |
void | geometric_transform (MeshT &mesh, FunctorT func, PointAccessorT accessor) |
Transforms all points of a mesh based on a functor. | |
template<typename MeshT , typename FunctorT > | |
void | geometric_transform (MeshT &mesh, FunctorT func) |
Transforms all points of a mesh based on a functor. | |
template<typename KeyTypeT , typename TypeMapT > | |
viennagrid::detail::result_of::lookup < TypeMapT, typename viennagrid::detail::remove_const < KeyTypeT >::type >::type & | get (collection< TypeMapT > &c) |
Generic accessor function for accessing the respective value type identified by the provided type from a collection. Non-const version. | |
template<typename KeyTypeT , typename TypeMapT > | |
viennagrid::detail::result_of::lookup < TypeMapT, typename viennagrid::detail::remove_const < KeyTypeT >::type >::type const & | get (collection< TypeMapT > const &c) |
Generic accessor function for accessing the respective value type identified by the provided type from a collection. Const version. | |
template<typename ElementTag1 , typename WrappedConfigType1 , typename ElementTag2 , typename WrappedConfigType2 > | |
result_of::handle < viennagrid::element < ElementTag1, WrappedConfigType1 > , viennagrid::element < ElementTag2, WrappedConfigType2 > >::type | handle (viennagrid::element< ElementTag1, WrappedConfigType1 > &element, viennagrid::element< ElementTag2, WrappedConfigType2 > &boundary_element) |
Function for creating a handle for a given boundary element of a host element. Non-const version. | |
template<typename MeshOrSegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
result_of::handle < MeshOrSegmentHandleT, viennagrid::element < ElementTagT, WrappedConfigT > >::type | handle (MeshOrSegmentHandleT &mesh_or_segment, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Function for creating a handle for a given element using a mesh/segment object. | |
template<typename ElementTag1 , typename WrappedConfigType1 , typename ElementTag2 , typename WrappedConfigType2 > | |
result_of::const_handle < viennagrid::element < ElementTag1, WrappedConfigType1 > , viennagrid::element < ElementTag2, WrappedConfigType2 > >::type | handle (viennagrid::element< ElementTag1, WrappedConfigType1 > const &element, viennagrid::element< ElementTag2, WrappedConfigType2 > const &boundary_element) |
Function for creating a handle for a given boundary element of a host element. Const-version. | |
template<typename MeshOrSegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
result_of::const_handle < MeshOrSegmentHandleT, viennagrid::element < ElementTagT, WrappedConfigT > >::type | handle (MeshOrSegmentHandleT const &mesh_or_segment, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Function for creating a handle for a given element using a mesh/segment object, const version. | |
template<typename MeshOrSegmentHandleT , typename HandleT > | |
HandleT | handle (MeshOrSegmentHandleT &, HandleT handle) |
Function for creating a handle, default implementation -> identity. | |
template<typename MeshOrSegmentHandleT , typename HandleT > | |
const HandleT | handle (MeshOrSegmentHandleT const &, HandleT handle) |
Function for creating a const handle, default implementation -> identity. | |
template<typename SegmentationType , typename ElementTagT , typename WrappedConfigT > | |
result_of::handle < segment_handle < SegmentationType > , viennagrid::element < ElementTagT, WrappedConfigT > >::type | handle (segment_handle< SegmentationType > &mesh_or_segment, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Function for creating a handle for a given element using a mesh/segment object. | |
template<typename SegmentationType , typename ElementTagT , typename WrappedConfigT > | |
result_of::const_handle < segment_handle < SegmentationType > , viennagrid::element < ElementTagT, WrappedConfigT > >::type | handle (segment_handle< SegmentationType > const &mesh_or_segment, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Function for creating a handle for a given element using a mesh/segment object, const version. | |
template<typename MeshT , typename ViewT > | |
void | handle_mesh (MeshT &mesh_obj, ViewT &view_obj) |
Function for inserting handles to all element from a mesh in a mesh view. | |
template<typename SomethingT > | |
result_of::element_range < SomethingT, hexahedron_tag > ::type | hexahedra (SomethingT &something) |
Function for retrieving a hexahedron range object from a host object. | |
template<typename SomethingT > | |
result_of::const_element_range < SomethingT, hexahedron_tag > ::type | hexahedra (SomethingT const &something) |
Function for retrieving a const hexahedron range object from a host object. | |
template<typename PLCT > | |
PLCT::appendix_type & | hole_points (PLCT &plc) |
Returns the hole points associated with a PLC. | |
template<typename PLCT > | |
PLCT::appendix_type const & | hole_points (PLCT const &plc) |
Returns the hole points associated with a PLC. | |
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 ElementTypeOrTag , typename SegmentationType > | |
viennagrid::result_of::id < typename viennagrid::result_of::element < segment_handle < SegmentationType > , ElementTypeOrTag >::type > ::type | id_upper_bound (segment_handle< SegmentationType > const &segment) |
Function for obtaining the heighest ID for a specific element type/tag in a segment. | |
template<typename ElementTypeOrTag , typename MeshOrSegmentHandleT > | |
viennagrid::result_of::id < typename viennagrid::result_of::element < MeshOrSegmentHandleT, ElementTypeOrTag >::type > ::type | id_upper_bound (MeshOrSegmentHandleT const &mesh_or_segment) |
Function for obtaining the heighest ID for a specific element type/tag in a mesh/segment. | |
template<typename PointT1 , typename PointT2 > | |
viennagrid::result_of::coord < PointT1 >::type | inner_prod (PointT1 const &p1, PointT2 const &p2) |
Returns the inner product of two vectors, which can be given in different coordinate systems. | |
template<typename PointT1 , typename PointT2 , typename CoordinateSystemT1 , typename CoordinateSystemT2 > | |
viennagrid::result_of::coord < PointT1 >::type | inner_prod_impl (PointT1 const &p1, PointT2 const &p2, CoordinateSystemT1 const &, CoordinateSystemT2 const &) |
Dispatched inner product function having full information about the coordinate systems. Transforms to Cartesian coordinates and forwards the calculation to the worker. | |
template<typename PointT1 , typename PointT2 , int d> | |
viennagrid::result_of::coord < PointT1 >::type | inner_prod_impl (PointT1 const &p1, PointT2 const &p2, cartesian_cs< d >, cartesian_cs< d >) |
Dispatched inner product function having full information about the coordinate systems. Vectors/Points are in a Cartesian coordinate system already, thus no transformation required. | |
template<typename WrappedConfigT , typename ElementT > | |
bool | is_boundary (mesh< WrappedConfigT > const &mesh_obj, ElementT const &element) |
Returns true if an element is located on the boundary of the mesh. | |
template<typename SegmentationT , typename ElementT > | |
bool | is_boundary (segment_handle< SegmentationT > const &segment, ElementT const &element) |
Returns true if an element is located on the boundary of the segment. | |
template<typename ElementTag1 , typename WrappedConfigT1 , typename ElementTag2 , typename WrappedConfigT2 > | |
bool | is_boundary (viennagrid::element< ElementTag1, WrappedConfigT1 > const &host_element, viennagrid::element< ElementTag2, WrappedConfigT2 > const &element) |
Returns true if the element provided as second argument is on the boundary of the element provided as first argument. | |
template<typename SegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
bool | is_in_segment (SegmentHandleT const &segment, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Queries if element is within a given segment. | |
template<typename PointAccessorT , typename ElementT , typename CoordType , typename CoordinateSystem , typename NumericConfigT > | |
bool | is_inside (PointAccessorT const accessor, ElementT const &element, spatial_point< CoordType, CoordinateSystem > const &point, NumericConfigT numeric_config) |
Determines if a given point is inside an element. Returns true if the point is inside the element, false otherwise. | |
template<typename ElementT , typename CoordType , typename CoordinateSystem , typename NumericConfigT > | |
bool | is_inside (ElementT const &element, spatial_point< CoordType, CoordinateSystem > const &point, NumericConfigT numeric_config) |
Determines if a given point is inside an element. Returns true if the point is inside the element, false otherwise. | |
template<typename ElementT , typename CoordType , typename CoordinateSystem > | |
bool | is_inside (ElementT const &element, spatial_point< CoordType, CoordinateSystem > const &point) |
Determines if a given point is inside an element. Returns true if the point is inside the element, false otherwise. | |
template<typename SegmentationT , typename ElementT > | |
bool | is_interface (segment_handle< SegmentationT > const &seg0, segment_handle< SegmentationT > const &seg1, ElementT const &element) |
Returns true if the n-cell is located at the interface between two segments. | |
template<typename BoundaryElementTTag , typename MeshT , typename ElementT > | |
viennagrid::result_of::handle < MeshT, BoundaryElementTTag > ::type | largest_boundary_volume (MeshT &mesh_obj, ElementT &element) |
Returns a handle to the boundary element with the largest volume. | |
template<typename BoundaryElementTTag , typename MeshT , typename ElementT > | |
viennagrid::result_of::const_handle < MeshT, BoundaryElementTTag > ::type | largest_boundary_volume (MeshT const &mesh_obj, ElementT const &element) |
Returns a const handle to the boundary element with the largest volume. | |
template<typename SomethingT > | |
result_of::element_range < SomethingT, line_tag >::type | lines (SomethingT &something) |
Function for retrieving a line range object from a host object (same as edges) | |
template<typename SomethingT > | |
result_of::const_element_range < SomethingT, line_tag >::type | lines (SomethingT const &something) |
Function for retrieving a const line range object from a host object (same as edges) | |
template<typename ElementTagT , typename WrappedConfigT , typename BoundaryHandleT > | |
viennagrid::result_of::vertex_handle < viennagrid::element < ElementTagT, WrappedConfigT > >::type | local_vertex (viennagrid::element< ElementTagT, WrappedConfigT > &host_element, BoundaryHandleT const &boundary_element_handle, std::size_t index) |
Function for querying a local vertex on a boundary element within a host element. | |
template<typename ElementTagT , typename WrappedConfigT , typename BoundaryHandleT > | |
viennagrid::result_of::const_vertex_handle < viennagrid::element < ElementTagT, WrappedConfigT > >::type | local_vertex (viennagrid::element< ElementTagT, WrappedConfigT > const &host_element, BoundaryHandleT const &boundary_element_handle, std::size_t index) |
Function for querying a local vertex on a boundary element within a host element, const version. | |
template<typename AccessType , typename ContainerType > | |
result_of::accessor < ContainerType, AccessType > ::type | make_accessor (ContainerType &container) |
Convenience function for returning an accessor for the supplied container. Non-const version. | |
template<typename AccessType , typename ContainerType > | |
result_of::accessor< const ContainerType, AccessType > ::type | make_accessor (ContainerType const &container) |
Convenience function for returning an accessor for the supplied container. Const-version. | |
template<typename AccessType , typename ContainerCollectionTypemapT > | |
result_of::accessor< typename result_of::container_of < ContainerCollectionTypemapT, AccessType >::type, AccessType > ::type | make_accessor (collection< ContainerCollectionTypemapT > &collection_obj) |
Convenience function for returning an accessor for the supplied container collection. Non-const-version. | |
template<typename AccessType , typename ContainerCollectionTypemapT > | |
result_of::accessor< const typename result_of::container_of < ContainerCollectionTypemapT, AccessType >::type, AccessType > ::type | make_accessor (collection< ContainerCollectionTypemapT > const &collection_obj) |
Convenience function for returning an accessor for the supplied container collection. Const-version. | |
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 AccessType , typename ContainerType > | |
result_of::field < ContainerType, AccessType > ::type | make_field (ContainerType &container) |
Convenience function for creating a suitable field out of a container. Non-const version. | |
template<typename AccessType , typename ContainerType > | |
result_of::field< const ContainerType, AccessType > ::type | make_field (ContainerType const &container) |
Convenience function for creating a suitable field out of a container. Const-version. | |
template<typename AccessType , typename ContainerCollectionTypemapT > | |
result_of::field< typename result_of::container_of < ContainerCollectionTypemapT, AccessType >::type, AccessType > ::type | make_field (collection< ContainerCollectionTypemapT > &collection_obj) |
Convenience function for creating a suitable field out of a collection of containers. Non-const-version. | |
template<typename AccessType , typename ContainerCollectionTypemapT > | |
result_of::field< const typename result_of::container_of < ContainerCollectionTypemapT, AccessType >::type, AccessType > ::type | make_field (collection< ContainerCollectionTypemapT > const &collection_obj) |
Convenience function for creating a suitable field out of a collection of containers. Const-version. | |
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. | |
template<typename WrappedConfigT > | |
mesh_proxy< viennagrid::mesh < WrappedConfigT > > | make_view (viennagrid::mesh< WrappedConfigT > &mesh_obj) |
Creates a view out of a mesh using the mesh_proxy object. | |
template<typename SegmentationT > | |
mesh_proxy< typename SegmentationT::view_type > | make_view (segment_handle< SegmentationT > &segment) |
Creates an empty view out of a segment. | |
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 MeshT , typename MeshViewT , typename HandleT > | |
void | mark_erase_elements (MeshT &mesh_obj, MeshViewT &elements_to_erase, HandleT host_element) |
Tags all elements connected to a given host_element for erasure. Call erase_element on 'elements_to_erase' to finally delete them. | |
template<typename MeshT , typename MeshViewT , typename HandleT > | |
void | mark_referencing_elements (MeshT &mesh_obj, MeshViewT &element_view, HandleT host_element) |
Marks elements which reference a given host element. | |
template<typename CoordType , typename CoordinateSystem > | |
spatial_point< CoordType, CoordinateSystem > | max (const spatial_point< CoordType, CoordinateSystem > &p1, const spatial_point< CoordType, CoordinateSystem > &p2) |
Returns the pointwise maximum point of two points, i.e. result[i] = max(x[i], y[i]) for all i. | |
template<typename MeshT > | |
viennagrid::result_of::coord < MeshT >::type | mesh_size (MeshT const &mesh) |
Calculates the size of a mesh: ||bounding_box.min - bounding_box.max||. | |
template<typename CoordType , typename CoordinateSystem > | |
spatial_point< CoordType, CoordinateSystem > | min (const spatial_point< CoordType, CoordinateSystem > &p1, const spatial_point< CoordType, CoordinateSystem > &p2) |
Returns the pointwise minimum point of two points, i.e. result[i] = min(x[i], y[i]) for all i. | |
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename WrappedConfigT , typename ElementOrHandleT > | |
result_of::neighbor_range < viennagrid::mesh < WrappedConfigT > , ElementTypeOrTagT, ConnectorElementTypeOrTagT > ::type | neighbor_elements (viennagrid::mesh< WrappedConfigT > &mesh_obj, ElementOrHandleT const &element_or_handle) |
Obtaines a neighbor range of an element within a mesh. This function caches the neighbor information and re-creates it if the cached information is out of date. The worst case runtime of a re-creation is linear in the number of elements of type ConnectorElementTypeOrTagT time the number of elements of type ElementTypeOrTagT within the mesh. | |
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename WrappedConfigT , typename ElementOrHandleT > | |
result_of::const_neighbor_range < viennagrid::mesh < WrappedConfigT > , ElementTypeOrTagT, ConnectorElementTypeOrTagT > ::type | neighbor_elements (viennagrid::mesh< WrappedConfigT > const &mesh_obj, ElementOrHandleT const &element_or_handle) |
Obtaines a const neighbor range of an element within a mesh. This function caches the neighbor information and re-creates it if the cached information is out of date. The worst case runtime of a re-creation is linear in the number of elements of type ConnectorElementTypeOrTagT time the number of elements of type ElementTypeOrTagT within the mesh. | |
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename SegmentationT , typename ElementOrHandleT > | |
result_of::neighbor_range < segment_handle < SegmentationT > , ElementTypeOrTagT, ConnectorElementTypeOrTagT > ::type | neighbor_elements (segment_handle< SegmentationT > &segment, ElementOrHandleT const &element_or_handle) |
Obtaines a neighbor range of an element within a segment. This function caches the neighbor information and re-creates it if the cached information is out of date. The worst case runtime of a re-creation is linear in the number of elements of type ConnectorElementTypeOrTagT time the number of elements of type ElementTypeOrTagT within the segment. | |
template<typename ElementTypeOrTagT , typename ConnectorElementTypeOrTagT , typename SegmentationT , typename ElementOrHandleT > | |
result_of::const_neighbor_range < segment_handle < SegmentationT > , ElementTypeOrTagT, ConnectorElementTypeOrTagT > ::type | neighbor_elements (segment_handle< SegmentationT > const &segment, ElementOrHandleT const &element_or_handle) |
Obtaines a const neighbor range of an element within a segment. This function caches the neighbor information and re-creates it if the cached information is out of date. The worst case runtime of a re-creation is linear in the number of elements of type ConnectorElementTypeOrTagT time the number of elements of type ElementTypeOrTagT within the segment. | |
template<typename PointT , typename Tag > | |
viennagrid::result_of::coord < PointT >::type | norm (PointT const &p, Tag) |
Returns the norm of a point. The type of the norm is specified by a tag. Supported tags are one_norm_tag, two_norm_tag and inf_norm_tag. | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | norm (PointT const &p) |
Returns the 2-norm of a point. Result is such as if the point were transformed to Cartesian coordinates first. | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | norm_1 (PointT const &p) |
Convenience shortcut for the 1-norm of a vector. | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | norm_2 (PointT const &p) |
Convenience shortcut for the 2-norm of a vector. | |
template<typename NormTag , typename PointT , typename CoordinateSystemT > | |
viennagrid::result_of::coord < PointT >::type | norm_impl (PointT const &p, CoordinateSystemT const &) |
Dispatch for a point that needs coordinate conversion. | |
template<typename NormTag , typename PointT1 , int d> | |
viennagrid::result_of::coord < PointT1 >::type | norm_impl (PointT1 const &p, cartesian_cs< d >) |
Dispatch for a point that does not need coordinate conversion. | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | norm_inf (PointT const &p) |
Convenience shortcut for the inf-norm of a vector. | |
template<typename PointAccessorT , typename ElementT > | |
PointAccessorT::value_type | normal_vector (PointAccessorT const point_accessor, ElementT const &element) |
Calculates the normal vector of an element. | |
template<typename ElementT > | |
viennagrid::result_of::point < ElementT >::type | normal_vector (ElementT const &element) |
Calculates the normal vector of an element. | |
template<class T , std::size_t N> | |
bool | operator!= (const static_array< T, N > &x, const static_array< T, N > &y) |
template<typename CoordType , typename CoordinateSystem > | |
spatial_point< CoordType, CoordinateSystem > | operator* (double val, spatial_point< CoordType, CoordinateSystem > const &p) |
Overload for stretching a vector from the left. | |
template<class T , std::size_t N> | |
bool | operator< (const static_array< T, N > &x, const static_array< T, N > &y) |
template<typename CoordType , typename CoordinateSystem > | |
std::ostream & | operator<< (std::ostream &os, spatial_point< CoordType, CoordinateSystem > const &p) |
Overload of the output stream operator. Allows simple printing to screen or streaming to file. | |
std::ostream & | operator<< (std::ostream &os, viennagrid::null_type) |
template<typename WrappedConfigType > | |
std::ostream & | operator<< (std::ostream &os, viennagrid::element< vertex_tag, WrappedConfigType > const &el) |
Overload for the output streaming operator for the vertex type. | |
template<typename element_tag , typename WrappedConfigType > | |
std::ostream & | operator<< (std::ostream &os, viennagrid::element< element_tag, WrappedConfigType > const &el) |
Overload for the output streaming operator. | |
template<class T , std::size_t N> | |
bool | operator<= (const static_array< T, N > &x, const static_array< T, N > &y) |
template<class T , std::size_t N> | |
bool | operator== (const static_array< T, N > &x, const static_array< T, N > &y) |
template<class T , std::size_t N> | |
bool | operator> (const static_array< T, N > &x, const static_array< T, N > &y) |
template<class T , std::size_t N> | |
bool | operator>= (const static_array< T, N > &x, const static_array< T, N > &y) |
template<typename IteratorT , typename NumericConfigT > | |
std::size_t | orthogonalize (IteratorT start, IteratorT end, NumericConfigT nc) |
Makes a set of vectors orthogonal (Gram–Schmidt process step). | |
template<typename VectorIteratorT , typename VectorT > | |
VectorT | orthogonalize_vector (VectorIteratorT it, VectorIteratorT const &end, VectorT vec) |
Makes a vector orthogonal to a set of linearly independent orthogonal vectors (Gram–Schmidt process step) | |
template<typename SomethingT > | |
result_of::element_range < SomethingT, plc_tag >::type | plcs (SomethingT &something) |
Function for retrieving a PLC range object from a host object. | |
template<typename SomethingT > | |
result_of::const_element_range < SomethingT, plc_tag >::type | plcs (SomethingT const &something) |
Function for retrieving a const PLC range object from a host object. | |
template<typename SegmentationType > | |
result_of::point < segment_handle < SegmentationType > >::type & | point (segment_handle< SegmentationType > &segment, typename result_of::vertex< typename SegmentationType::mesh_type >::type &vertex) |
Function for obtaining the point from a vertex. | |
template<typename SegmentationType > | |
result_of::point < segment_handle < SegmentationType > >::type const & | point (segment_handle< SegmentationType > const &segment, typename result_of::vertex< typename SegmentationType::mesh_type >::type const &vertex) |
Function for obtaining the point from a vertex, const version. | |
template<typename SegmentationType > | |
result_of::point < segment_handle < SegmentationType > >::type & | point (segment_handle< SegmentationType > &segment, typename result_of::vertex_handle< typename SegmentationType::mesh_type >::type vertex_handle) |
Function for obtaining the point from a vertex. | |
template<typename SegmentationType > | |
result_of::point < segment_handle < SegmentationType > >::type const & | point (segment_handle< SegmentationType > const &segment, typename result_of::const_vertex_handle< typename SegmentationType::mesh_type >::type vertex_handle) |
Function for obtaining the point from a vertex, const version. | |
template<typename WrappedConfigT > | |
result_of::point < viennagrid::mesh < WrappedConfigT > >::type & | point (viennagrid::mesh< WrappedConfigT > &, typename result_of::vertex< viennagrid::mesh< WrappedConfigT > >::type &vertex) |
Function for obtaining the point from a vertex. | |
template<typename WrappedConfigT > | |
result_of::point < viennagrid::mesh < WrappedConfigT > >::type const & | point (mesh< WrappedConfigT > const &, typename result_of::vertex< viennagrid::mesh< WrappedConfigT > >::type const &vertex) |
Function for obtaining the point from a vertex, const version. | |
template<typename WrappedConfigT > | |
result_of::point < viennagrid::mesh < WrappedConfigT > >::type & | point (mesh< WrappedConfigT > &mesh_obj, typename result_of::vertex_handle< viennagrid::mesh< WrappedConfigT > >::type vertex_handle) |
Function for obtaining the point from a vertex. | |
template<typename WrappedConfigT > | |
result_of::point < viennagrid::mesh < WrappedConfigT > >::type const & | point (mesh< WrappedConfigT > const &mesh_obj, typename result_of::const_vertex_handle< viennagrid::mesh< WrappedConfigT > >::type vertex_handle) |
Function for obtaining the point from a vertex, const version. | |
template<typename VertexT > | |
result_of::point< VertexT >::type & | point (VertexT &vertex) |
Function for obtaining the point from a vertex, no mesh needed. | |
template<typename VertexT > | |
result_of::point< VertexT > ::type const & | point (VertexT const &vertex) |
Function for obtaining the point from a vertex, no mesh needed, const version. | |
template<typename SomethingT > | |
result_of::element_range < SomethingT, polygon_tag > ::type | polygons (SomethingT &something) |
Function for retrieving a polygon range object from a host object. | |
template<typename SomethingT > | |
result_of::const_element_range < SomethingT, polygon_tag > ::type | polygons (SomethingT const &something) |
Function for retrieving a const polygon range object from a host object. | |
template<typename SomethingT > | |
result_of::element_range < SomethingT, quadrilateral_tag >::type | quadrilaterals (SomethingT &something) |
Function for retrieving a quadrilaterals range object from a host object. | |
template<typename SomethingT > | |
result_of::const_element_range < SomethingT, quadrilateral_tag >::type | quadrilaterals (SomethingT const &something) |
Function for retrieving a const quadrilateral range object from a host object. | |
template<typename SourceTypeOrTag , typename DestinationTypeOrTag , 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) |
Transfers data defined on 'source' elements to 'destination' elements. For example, values defined on cells are tranferred to vertices. | |
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 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 MeshT , typename ScalarT , typename PointType > | |
void | scale (MeshT &mesh, ScalarT factor, PointType const &scaling_center) |
Function for scaling a mesh, uses scale_functor. | |
template<typename MeshT , typename ScalarT > | |
void | scale (MeshT &mesh, ScalarT factor) |
Function for scaling a mesh, uses scale_functor. Scaling center is the origin. | |
template<typename SegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::result_of::container_of < typename viennagrid::detail::result_of::lookup < typename SegmentHandleT::segmentation_type::appendix_type, viennagrid::detail::element_segment_mapping_tag > ::type, viennagrid::element < ElementTagT, WrappedConfigT > >::type::value_type::segment_element_info_type const * | segment_element_info (SegmentHandleT const &segment, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Returns a pointer to additional segment element information. Segment element information is meta information for a combination of a segment and an element, e.g. the orientation of a triangle in a segment in a 3D hull mesh. | |
template<typename SegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
viennagrid::result_of::container_of < typename viennagrid::detail::result_of::lookup < typename SegmentHandleT::segmentation_type::appendix_type, viennagrid::detail::element_segment_mapping_tag > ::type, viennagrid::element < ElementTagT, WrappedConfigT > >::type::value_type::segment_element_info_type * | segment_element_info (SegmentHandleT &segment, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Returns a pointer to additional segment element information. Segment element information is meta information for a combination of a segment and an element, e.g. the orientation of a triangle in a segment in a 3D hull mesh. Const version. | |
template<typename SegmentationT , typename ElementTagT , typename WrappedConfigT > | |
result_of::segment_id_range < SegmentationT, viennagrid::element < ElementTagT, WrappedConfigT > >::type | segment_ids (SegmentationT const &segmentation, viennagrid::element< ElementTagT, WrappedConfigT > const &element) |
Obtains the segment ID range of an element within a segmentation. The segment ID range holds all IDs of segments in which the element is included. | |
template<typename base_container_collection_type , typename view_container_collection_type > | |
void | set_base_container (base_container_collection_type &base_container_collection, view_container_collection_type &view_container_collection) |
Sets the reference to the parent container for a view. Also supports views of views, etc. | |
template<typename ElementTag , typename WrappedConfigType , typename VertexHandleType > | |
void | set_vertex (viennagrid::element< ElementTag, WrappedConfigType > &element, VertexHandleType vertex_handle, unsigned int pos) |
Function for setting a vertex within an element. Don't use this unless you know what you are doing! | |
template<typename PointT1 , typename PointT2 > | |
viennagrid::result_of::coord < PointT1 >::type | signed_spanned_volume (PointT1 const &p1, PointT2 const &p2) |
Returns the volume of the 1-simplex (line) spanned by the two points. | |
template<typename PointT1 , typename PointT2 , typename PointT3 > | |
viennagrid::result_of::coord < PointT1 >::type | signed_spanned_volume (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3) |
Returns the two-dimensional volume of the 2-simplex (triangle) spanned by the three points. | |
template<typename PointT1 , typename PointT2 , typename PointT3 , typename PointT4 > | |
viennagrid::result_of::coord < PointT1 >::type | signed_spanned_volume (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, PointT4 const &p4) |
Returns the three-dimensional volume of the 3-simplex (tetrahedron) spanned by the four points. | |
template<typename PointT1 , typename PointT2 , typename CoordinateSystemT1 , typename CoordinateSystemT2 > | |
viennagrid::result_of::coord < PointT1 >::type | signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, CoordinateSystemT1 const &, CoordinateSystemT2 const &) |
Dispatch facility for two points with possibly different coordinate systems. | |
template<typename PointT1 , typename PointT2 , typename PointT3 , typename CoordinateSystemT1 , typename CoordinateSystemT2 , typename CoordinateSystemT3 > | |
viennagrid::result_of::coord < PointT1 >::type | signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, CoordinateSystemT1 const &, CoordinateSystemT2 const &, CoordinateSystemT3 const &) |
Dispatch facility for three points with possibly different coordinate systems. | |
template<typename PointT1 , typename PointT2 , typename PointT3 , typename PointT4 , typename CoordinateSystemT1 , typename CoordinateSystemT2 , typename CoordinateSystemT3 , typename CoordinateSystemT4 > | |
viennagrid::result_of::coord < PointT1 >::type | signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, PointT4 const &p4, CoordinateSystemT1 const &, CoordinateSystemT2 const &, CoordinateSystemT3 const &, CoordinateSystemT4 const &) |
Dispatch facility for four points with possibly different coordinate systems. | |
template<typename PointT1 , typename PointT2 , int DimV> | |
viennagrid::result_of::coord < PointT1 >::type | signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, cartesian_cs< DimV >, cartesian_cs< DimV >) |
Dispatch facility for two points in Cartesian coordinates. | |
template<typename PointT1 , typename PointT2 , typename PointT3 , int DimV> | |
viennagrid::result_of::coord < PointT1 >::type | signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, cartesian_cs< DimV >, cartesian_cs< DimV >, cartesian_cs< DimV >) |
Dispatch facility for three points in Cartesian coordinates. | |
template<typename PointT1 , typename PointT2 , typename PointT3 , typename PointT4 , int DimV> | |
viennagrid::result_of::coord < PointT1 >::type | signed_spanned_volume_impl (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, PointT4 const &p4, cartesian_cs< DimV >, cartesian_cs< DimV >, cartesian_cs< DimV >, cartesian_cs< DimV >) |
Dispatch facility for four points in Cartesian coordinates. | |
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. | |
template<typename BoundaryElementTTag , typename MeshT , typename ElementT > | |
viennagrid::result_of::handle < MeshT, BoundaryElementTTag > ::type | smallest_boundary_volume (MeshT &mesh_obj, ElementT &element) |
Returns a handle to the boundary element with the smallest volume. | |
template<typename BoundaryElementTTag , typename MeshT , typename ElementT > | |
viennagrid::result_of::const_handle < MeshT, BoundaryElementTTag > ::type | smallest_boundary_volume (MeshT const &mesh_obj, ElementT const &element) |
Returns a const handle to the boundary element with the smallest volume. | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | solid_angle (PointT const &a, PointT const &b, PointT const &c) |
Implementation of the spanned (solid) angle by three points with respect to the origin (the solid angle defined by the tetrahedron (a, b, c, origin) | |
template<typename PointT > | |
viennagrid::result_of::coord < PointT >::type | solid_angle (PointT const &p0, PointT const &p1, PointT const &p2, PointT const &origin) |
Implementation of the solid angle from an origin to p0, p1 and p2. | |
template<typename PointT1 , typename PointT2 > | |
viennagrid::result_of::coord < PointT1 >::type | spanned_volume (PointT1 const &p1, PointT2 const &p2) |
Returns the volume of the 1-simplex (line) spanned by the two points. | |
template<typename PointT1 , typename PointT2 , typename PointT3 > | |
viennagrid::result_of::coord < PointT1 >::type | spanned_volume (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3) |
Returns the two-dimensional volume of the 2-simplex (triangle) spanned by the three points. | |
template<typename PointT1 , typename PointT2 , typename PointT3 , typename PointT4 > | |
viennagrid::result_of::coord < PointT1 >::type | spanned_volume (PointT1 const &p1, PointT2 const &p2, PointT3 const &p3, PointT4 const &p4) |
Returns the three-dimensional volume of the 3-simplex (tetrahedron) spanned by the four points. | |
template<typename PointAccessorT , typename ElementTag , typename WrappedConfigT > | |
viennagrid::result_of::coord < typename PointAccessorT::value_type > ::type | surface (PointAccessorT const accessor, viennagrid::element< ElementTag, WrappedConfigT > const &element) |
Returns the surface of a n-cell using the provided point accessor to obtain the spatial points from each vertex. | |
template<typename ElementTag , typename WrappedConfigT > | |
viennagrid::result_of::coord < viennagrid::element < ElementTag, WrappedConfigT > >::type | surface (viennagrid::element< ElementTag, WrappedConfigT > const &element) |
Returns the surface of a n-cell using the default point accessor. | |
template<typename ElementTypeOrTag , typename WrappedConfigT > | |
viennagrid::result_of::coord < mesh< WrappedConfigT > >::type | surface (mesh< WrappedConfigT > const &d) |
Returns the surface of a mesh with explicit element type/tag. | |
template<typename WrappedConfigT > | |
viennagrid::result_of::coord < mesh< WrappedConfigT > >::type | surface (mesh< WrappedConfigT > const &d) |
Returns the surface of a mesh. | |
template<typename SegmentationT > | |
viennagrid::result_of::coord < typename SegmentationT::mesh_type > ::type | surface (segment_handle< SegmentationT > const &segment) |
Returns the surface of a segment. | |
template<class T , std::size_t N> | |
void | swap (static_array< T, N > &x, static_array< T, N > &y) |
Swaps the entries of the two arrays. | |
template<typename SomethingT > | |
result_of::element_range < SomethingT, tetrahedron_tag > ::type | tetrahedra (SomethingT &something) |
Function for retrieving a tetrahedron range object from a host object. | |
template<typename SomethingT > | |
result_of::const_element_range < SomethingT, tetrahedron_tag > ::type | tetrahedra (SomethingT const &something) |
Function for retrieving a const tetrahedron range object from a host object. | |
template<typename PointType > | |
result_of::cartesian_point < PointType >::type | to_cartesian (PointType const &p) |
Convenience function for converting a point to Cartesian coordinates. | |
template<typename PointType , typename CoordinateSystem > | |
result_of::cartesian_point < PointType >::type | to_cartesian_impl (PointType const &p, CoordinateSystem const &) |
Helper function for the conversion to Cartesian coordinates. Should not be called directly. Use to_cartesian() instead. | |
template<typename PointType , int d> | |
PointType const & | to_cartesian_impl (PointType const &p, cartesian_cs< d >) |
Helper function for the transformation of any point to Cartesian coordinates. Should not be called directly - use to_cartesian() instead. | |
template<typename PointType , int d> | |
PointType & | to_cartesian_impl (PointType &p, cartesian_cs< d >) |
Helper function for the transformation of any point to Cartesian coordinates. Should not be called directly - use to_cartesian() instead. | |
template<typename SomethingT > | |
result_of::element_range < SomethingT, triangle_tag > ::type | triangles (SomethingT &something) |
Function for retrieving a triangle range object from a host object. | |
template<typename SomethingT > | |
result_of::const_element_range < SomethingT, triangle_tag > ::type | triangles (SomethingT const &something) |
Function for retrieving a const triangles range object from a host object. | |
template<typename SegmentHandleT , typename ElementTagT , typename WrappedConfigT > | |
void | unchecked_add (SegmentHandleT &segment, viennagrid::element< ElementTagT, WrappedConfigT > &element) |
Adds an element to a segment, all boundary elements are added recursively, does guarantee that elements are only present once within the segment. | |
template<typename SegmentHandleT , typename ElementHandleT > | |
void | unchecked_add (SegmentHandleT &segment, ElementHandleT element_handle) |
Adds an element to a segment, all boundary elements are added recursively, does guarantee that elements are only present once within the segment. | |
template<typename SomethingT > | |
result_of::element_range < SomethingT, vertex_tag > ::type | vertices (SomethingT &something) |
Function for retrieving a vertex range object from a host object. | |
template<typename SomethingT > | |
result_of::const_element_range < SomethingT, vertex_tag > ::type | vertices (SomethingT const &something) |
Function for retrieving a const vertex range object from a host object. | |
template<typename PointAccessorT , typename ElementT > | |
viennagrid::result_of::coord < typename PointAccessorT::value_type > ::type | volume (PointAccessorT const accessor, ElementT const &cell) |
Returns the n-dimensional volume of a n-cell. | |
template<typename ElementTag , typename WrappedConfigT > | |
viennagrid::result_of::coord < viennagrid::element < ElementTag, WrappedConfigT > >::type | volume (viennagrid::element< ElementTag, WrappedConfigT > const &cell) |
Returns the n-dimensional volume of a n-cell. | |
template<typename ElementTOrTag , typename WrappedConfigT > | |
viennagrid::result_of::coord < mesh< WrappedConfigT > >::type | volume (mesh< WrappedConfigT > const &mesh_obj) |
Returns the n-dimensional volume of a whole mesh. | |
template<typename MeshSegmentHandleType > | |
viennagrid::result_of::coord < MeshSegmentHandleType > ::type | volume (MeshSegmentHandleType const &mesh_obj) |
Returns the n-dimensional volume of a segment. |
The main ViennaGrid namespace. Most user functionality resides directly in this namespace rather than in sub-namespaces.
typedef vertex_1d_cell brep_1d_cell |
A default cell for a boundary representation in 1d: vertex 1d.
typedef vertex_1d_mesh brep_1d_mesh |
A default mesh for a boundary representation in 1d: vertex 1d.
A segment for a boundary representation in 1d: vertex 1d.
A segmentation for a boundary representation in 1d: vertex 1d.
typedef vertex_1d_view brep_1d_view |
A default view for a boundary representation in 1d: vertex 1d.
typedef line_2d_cell brep_2d_cell |
A default cell for a boundary representation in 2d: line 2d.
typedef line_2d_mesh brep_2d_mesh |
A default mesh for a boundary representation in 2d: line 2d.
A segment for a boundary representation in 2d: line 2d.
A segmentation for a boundary representation in 2d: line 2d.
typedef line_2d_view brep_2d_view |
A default view for a boundary representation in 2d: line 2d.
typedef plc_3d_cell brep_3d_cell |
A default cell for a boundary representation in 3d: plc 3d.
typedef plc_3d_mesh brep_3d_mesh |
A default mesh for a boundary representation in 3d: plc 3d.
A segment for a boundary representation in 3d: plc 3d.
A segmentation for a boundary representation in 3d: plc 3d.
typedef plc_3d_view brep_3d_view |
A default view for a boundary representation in 3d: plc 3d.
typedef viennagrid::result_of::segment_handle< cell_only_line_1d_segmentation >::type cell_only_line_1d_segment_handle |
A thin segment for lines including only cells in 1d, thin config is used.
typedef viennagrid::result_of::cell_only_segmentation< line_1d_mesh >::type cell_only_line_1d_segmentation |
A thin segmentation for lines including only cells in 1d, thin config is used.
typedef viennagrid::result_of::segment_handle< cell_only_line_2d_segmentation >::type cell_only_line_2d_segment_handle |
A thin segment for lines including only cells in 2d, thin config is used.
typedef viennagrid::result_of::cell_only_segmentation< line_2d_mesh >::type cell_only_line_2d_segmentation |
A thin segmentation for lines including only cells in 2d, thin config is used.
typedef viennagrid::result_of::segment_handle< cell_only_line_3d_segmentation >::type cell_only_line_3d_segment_handle |
A thin segment for lines including only cells in 3d, thin config is used.
typedef viennagrid::result_of::cell_only_segmentation< line_3d_mesh >::type cell_only_line_3d_segmentation |
A thin segmentation for lines including only cells in 3d, thin config is used.
typedef viennagrid::make_typemap< default_tag, std_deque_tag >::type default_container_config |
A typemap defining default container configuration for a container collection.
typedef viennagrid::make_typemap< default_tag, std_set_tag<id_compare_tag> >::type default_view_container_config |
A typemap defining default container configuration for a view container collection.
typedef std::size_t dim_type |
A global size_type equivalent for use throughout ViennaData.
typedef simplex_tag<1> edge_tag |
Convenience type definition for a line (same as line_tag)
typedef viennagrid::result_of::cell<hexahedral_3d_mesh>::type hexahedral_3d_cell |
A default cell for hexahedrons in 3d, default config is used.
A default mesh for hexahedrons in 3d, default config is used.
typedef viennagrid::result_of::segment_handle< hexahedral_3d_segmentation >::type hexahedral_3d_segment_handle |
A default segment for hexahedrons in 3d, default config is used.
A default segmentation for hexahedrons in 3d, default config is used.
typedef viennagrid::result_of::mesh_view< hexahedral_3d_mesh >::type hexahedral_3d_view |
A default mesh view for hexahedrons in 3d, default config is used.
typedef hypercube_tag<3> hexahedron_tag |
Convenience type definition for a hexahedron.
typedef viennagrid::result_of::cell<line_1d_mesh>::type line_1d_cell |
A default cell for lines in 1d, default config is used.
typedef viennagrid::mesh< config::line_1d > line_1d_mesh |
A default mesh for lines in 1d, default config is used.
typedef viennagrid::result_of::segment_handle< line_1d_segmentation >::type line_1d_segment_handle |
A default segment for lines in 1d, default config is used.
typedef viennagrid::result_of::segmentation< line_1d_mesh >::type line_1d_segmentation |
A default segmentation for lines in 1d, default config is used.
typedef viennagrid::result_of::mesh_view< line_1d_mesh >::type line_1d_view |
A default mesh view for lines in 1d, default config is used.
typedef viennagrid::result_of::cell<line_2d_mesh>::type line_2d_cell |
A default cell for lines in 2d, default config is used.
typedef viennagrid::mesh< config::line_2d > line_2d_mesh |
A default mesh for lines in 2d, default config is used.
typedef viennagrid::result_of::segment_handle< line_2d_segmentation >::type line_2d_segment_handle |
A default segment for lines in 2d, default config is used.
typedef viennagrid::result_of::segmentation< line_2d_mesh >::type line_2d_segmentation |
A default segmentation for lines in 2d, default config is used.
typedef viennagrid::result_of::mesh_view< line_2d_mesh >::type line_2d_view |
A default mesh view for lines in 2d, default config is used.
typedef viennagrid::result_of::cell<line_3d_mesh>::type line_3d_cell |
A default cell for lines in 3d, default config is used.
typedef viennagrid::mesh< config::line_3d > line_3d_mesh |
A default mesh for lines in 3d, default config is used.
typedef viennagrid::result_of::segment_handle< line_3d_segmentation >::type line_3d_segment_handle |
A default segment for lines in 3d, default config is used.
typedef viennagrid::result_of::segmentation< line_3d_mesh >::type line_3d_segmentation |
A default segmentation for lines in 3d, default config is used.
typedef viennagrid::result_of::mesh_view< line_3d_mesh >::type line_3d_view |
A default mesh view for lines in 3d, default config is used.
typedef simplex_tag<1> line_tag |
Convenience type definition for a line (same as edge_tag)
typedef viennagrid::result_of::cell<plc_3d_mesh>::type plc_3d_cell |
A default cell for PLCs in 3d, default config is used.
typedef viennagrid::mesh< config::plc_3d > plc_3d_mesh |
A default mesh for PLCs in 3d, default config is used.
typedef viennagrid::result_of::segment_handle< plc_3d_segmentation >::type plc_3d_segment_handle |
A default segment for PLCs in 3d, default config is used.
typedef viennagrid::result_of::segmentation< plc_3d_mesh >::type plc_3d_segmentation |
A default segmentation for PLCs in 3d, default config is used.
typedef viennagrid::result_of::mesh_view< plc_3d_mesh >::type plc_3d_view |
A default mesh view for PLCs in 3d, default config is used.
typedef viennagrid::result_of::cell<polygonal_2d_mesh>::type polygonal_2d_cell |
A default cell for polygons in 2d, default config is used.
A default mesh for polygons in 2d, default config is used.
typedef viennagrid::result_of::segment_handle< polygonal_2d_segmentation >::type polygonal_2d_segment_handle |
A default segment for polygons in 2d, default config is used.
A default segmentation for polygons in 2d, default config is used.
typedef viennagrid::result_of::mesh_view< polygonal_2d_mesh >::type polygonal_2d_view |
A default mesh view for polygons in 2d, default config is used.
typedef viennagrid::result_of::cell<polygonal_3d_mesh>::type polygonal_3d_cell |
A default cell for polygons in 3d, default config is used.
A default mesh for polygons in 3d, default config is used.
typedef viennagrid::result_of::segment_handle< polygonal_3d_segmentation >::type polygonal_3d_segment_handle |
A default segment for polygons in 3d, default config is used.
A default segmentation for polygons in 3d, default config is used.
typedef viennagrid::result_of::mesh_view< polygonal_3d_mesh >::type polygonal_3d_view |
A default mesh view for polygons in 3d, default config is used.
A default cell for quadrilaterals in 2d, default config is used.
A default mesh for quadrilaterals in 2d, default config is used.
typedef viennagrid::result_of::segment_handle< quadrilateral_2d_segmentation >::type quadrilateral_2d_segment_handle |
A default segment for quadrilaterals in 2d, default config is used.
typedef viennagrid::result_of::segmentation< quadrilateral_2d_mesh >::type quadrilateral_2d_segmentation |
A default segmentation for quadrilaterals in 2d, default config is used.
typedef viennagrid::result_of::mesh_view< quadrilateral_2d_mesh >::type quadrilateral_2d_view |
A default mesh view for quadrilaterals in 2d, default config is used.
A default cell for quadrilaterals in 3d, default config is used.
A default mesh for quadrilaterals in 3d, default config is used.
typedef viennagrid::result_of::segment_handle< quadrilateral_3d_segmentation >::type quadrilateral_3d_segment_handle |
A default segment for quadrilaterals in 3d, default config is used.
typedef viennagrid::result_of::segmentation< quadrilateral_3d_mesh >::type quadrilateral_3d_segmentation |
A default segmentation for quadrilaterals in 3d, default config is used.
typedef viennagrid::result_of::mesh_view< quadrilateral_3d_mesh >::type quadrilateral_3d_view |
A default mesh view for quadrilaterals in 3d, default config is used.
typedef hypercube_tag<2> quadrilateral_tag |
Convenience type definition for a quadrilateral.
typedef viennagrid::result_of::cell<tetrahedral_3d_mesh>::type tetrahedral_3d_cell |
A default cell for tetrahedrons in 3d, default config is used.
A default mesh for tetrahedrons in 3d, default config is used.
typedef viennagrid::result_of::segment_handle< tetrahedral_3d_segmentation >::type tetrahedral_3d_segment_handle |
A default segment for tetrahedrons in 3d, default config is used.
typedef viennagrid::result_of::segmentation< tetrahedral_3d_mesh >::type tetrahedral_3d_segmentation |
A default segmentation for tetrahedrons in 3d, default config is used.
typedef viennagrid::result_of::mesh_view< tetrahedral_3d_mesh >::type tetrahedral_3d_view |
A default mesh view for tetrahedrons in 3d, default config is used.
typedef simplex_tag<3> tetrahedron_tag |
Convenience type definition for a tetrahedron.
typedef viennagrid::result_of::segment_handle< thin_cell_only_tetrahedral_3d_segmentation >::type thin_cell_only_tetrahedral_3d_segment_handle |
A thin segment for tetrahedrons including only cells in 3d, thin config is used.
typedef viennagrid::result_of::cell_only_segmentation< thin_tetrahedral_3d_mesh >::type thin_cell_only_tetrahedral_3d_segmentation |
A thin segmentation for tetrahedrons including only cells in 3d, thin config is used.
typedef viennagrid::result_of::segment_handle< thin_cell_only_triangular_2d_segmentation >::type thin_cell_only_triangular_2d_segment_handle |
A thin segment for triangles including only cells in 2d, thin config is used.
typedef viennagrid::result_of::cell_only_segmentation< thin_triangular_2d_mesh >::type thin_cell_only_triangular_2d_segmentation |
A thin segmentation for triangles including only cells in 2d, thin config is used.
typedef viennagrid::result_of::segment_handle< thin_cell_only_triangular_3d_segmentation >::type thin_cell_only_triangular_3d_segment_handle |
A thin segment for triangles including only cells in 3d, thin config is used.
typedef viennagrid::result_of::cell_only_segmentation< thin_triangular_3d_mesh >::type thin_cell_only_triangular_3d_segmentation |
A thin segmentation for triangles including only cells in 3d, thin config is used.
A thin cell for tetrahedrons in 3d, thin config is used.
A thin mesh for tetrahedrons in 3d, thin config is used.
typedef viennagrid::result_of::segment_handle< thin_tetrahedral_3d_segmentation >::type thin_tetrahedral_3d_segment_handle |
A thin segment for tetrahedrons in 3d, thin config is used.
typedef viennagrid::result_of::segmentation< thin_tetrahedral_3d_mesh >::type thin_tetrahedral_3d_segmentation |
A thin segmentation for tetrahedrons in 3d, thin config is used.
A thin mesh view for tetrahedrons in 3d, thin config is used.
A thin cell for triangles in 2d, thin config is used.
A thin mesh for triangles in 2d, thin config is used.
typedef viennagrid::result_of::segment_handle< thin_triangular_2d_segmentation >::type thin_triangular_2d_segment_handle |
A thin segment for triangles in 2d, thin config is used.
typedef viennagrid::result_of::segmentation< thin_triangular_2d_mesh >::type thin_triangular_2d_segmentation |
A thin segmentation for triangles in 2d, thin config is used.
A thin mesh view for triangles in 2d, thin config is used.
A thin cell for triangles in 3d, thin config is used.
A thin mesh for triangles in 3d, thin config is used.
typedef viennagrid::result_of::segment_handle< thin_triangular_3d_segmentation >::type thin_triangular_3d_segment_handle |
A thin segment for triangles in 3d, thin config is used.
typedef viennagrid::result_of::segmentation< thin_triangular_3d_mesh >::type thin_triangular_3d_segmentation |
A thin segmentation for triangles in 3d, thin config is used.
A thin mesh view for triangles in 3d, thin config is used.
typedef viennagrid::result_of::segment_handle< thin_triangular_hull_3d_segmentation >::type thin_triangular_hull_3d_segment_handle |
An oriented hull segmentat for triangles in 3d, thin config is used.
typedef viennagrid::result_of::oriented_3d_hull_segmentation< thin_triangular_3d_mesh >::type thin_triangular_hull_3d_segmentation |
An oriented hull segmentation for triangles in 3d, thin config is used.
typedef simplex_tag<2> triangle_tag |
Convenience type definition for a triangle.
typedef viennagrid::result_of::cell<triangular_2d_mesh>::type triangular_2d_cell |
A default cell for triangles in 2d, default config is used.
A default mesh for triangles in 2d, default config is used.
typedef viennagrid::result_of::segment_handle< triangular_2d_segmentation >::type triangular_2d_segment_handle |
A default segment for triangles in 2d, default config is used.
A default segmentation for triangles in 2d, default config is used.
typedef viennagrid::result_of::mesh_view< triangular_2d_mesh >::type triangular_2d_view |
A default mesh view for triangles in 2d, default config is used.
typedef viennagrid::result_of::cell<triangular_3d_mesh>::type triangular_3d_cell |
A default cell for triangles in 3d, default config is used.
A default mesh for triangles in 3d, default config is used.
typedef viennagrid::result_of::segment_handle< triangular_3d_segmentation >::type triangular_3d_segment_handle |
A default segment for triangles in 3d, default config is used.
A default segmentation for triangles in 3d, default config is used.
typedef viennagrid::result_of::mesh_view< triangular_3d_mesh >::type triangular_3d_view |
A default mesh view for triangles in 3d, default config is used.
typedef viennagrid::result_of::segment_handle< triangular_hull_3d_segmentation >::type triangular_hull_3d_segment_handle |
An oriented hull segmentat for triangles in 3d, default config is used.
typedef viennagrid::result_of::oriented_3d_hull_segmentation< triangular_3d_mesh >::type triangular_hull_3d_segmentation |
An oriented hull segmentation for triangles in 3d, default config is used.
typedef viennagrid::result_of::cell<vertex_1d_mesh>::type vertex_1d_cell |
A default cell for vertices in 1d, default config is used.
typedef viennagrid::mesh< config::vertex_1d > vertex_1d_mesh |
A default mesh for vertices in 1d, default config is used.
typedef viennagrid::result_of::segment_handle< vertex_1d_segmentation >::type vertex_1d_segment_handle |
A default segment for vertices in 1d, default config is used.
typedef viennagrid::result_of::segmentation< vertex_1d_mesh >::type vertex_1d_segmentation |
A default segmentation for vertices in 1d, default config is used.
typedef viennagrid::result_of::mesh_view< vertex_1d_mesh >::type vertex_1d_view |
A default mesh view for vertices in 1d, default config is used.
typedef viennagrid::result_of::cell<vertex_2d_mesh>::type vertex_2d_cell |
A default cell for vertices in 2d, default config is used.
typedef viennagrid::mesh< config::vertex_2d > vertex_2d_mesh |
A default mesh for vertices in 2d, default config is used.
typedef viennagrid::result_of::segment_handle< vertex_2d_segmentation >::type vertex_2d_segment_handle |
A default segment for vertices in 2d, default config is used.
typedef viennagrid::result_of::segmentation< vertex_2d_mesh >::type vertex_2d_segmentation |
A default segmentation for vertices in 2d, default config is used.
typedef viennagrid::result_of::mesh_view< vertex_2d_mesh >::type vertex_2d_view |
A default mesh view for vertices in 2d, default config is used.
typedef viennagrid::result_of::cell<vertex_3d_mesh>::type vertex_3d_cell |
A default cell for vertices in 3d, default config is used.
typedef viennagrid::mesh< config::vertex_3d > vertex_3d_mesh |
A default mesh for vertices in 3d, default config is used.
typedef viennagrid::result_of::segment_handle< vertex_3d_segmentation >::type vertex_3d_segment_handle |
A default segment for vertices in 3d, default config is used.
typedef viennagrid::result_of::segmentation< vertex_3d_mesh >::type vertex_3d_segmentation |
A default segmentation for vertices in 3d, default config is used.
typedef viennagrid::result_of::mesh_view< vertex_3d_mesh >::type vertex_3d_view |
A default mesh view for vertices in 3d, default config is used.
typedef simplex_tag<0> vertex_tag |
Convenience type definition for a vertex.
void viennagrid::add | ( | SegmentHandleT & | segment, |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Adds an element to a segment, all boundary elements are added recursively.
SegmentHandleT | The segment type |
ElementTagT | The element tag of the element |
WrappedConfigT | The wrapped config of the element |
segment | The segment object to which the element is added |
element | The element object to be added |
void viennagrid::add | ( | SegmentHandleT & | segment, |
ElementHandleT | element_handle | ||
) |
Adds an element to a segment, all boundary elements are added recursively.
SegmentHandleT | The segment type |
ElementHandleT | The element tag of the element |
segment | The segment object to which the element is added |
element_handle | A handle of the element object to be added |
void viennagrid::add | ( | segmentation< WrappedConfigT > & | segmentation_obj, |
typename segmentation< WrappedConfigT >::segment_id_type | segment_id, | ||
viennagrid::element< ElementTagT, WrappedElementConfigT > & | element | ||
) |
Adds an element to a segment, all boundary elements are added recursively.
WrappedConfigT | The wrapped config of the segmentation |
ElementTagT | The element tag of the element |
WrappedConfigT | The wrapped config of the element |
segmentation_obj | The segmentation object |
segment_id | The id of the segment element is added |
element | The element object to be added |
void viennagrid::add | ( | segmentation< WrappedConfigT > & | segmentation_obj, |
typename segmentation< WrappedConfigT >::segment_id_type | segment_id, | ||
ElementHandleT | element_handle | ||
) |
Adds an element to a segment, all boundary elements are added recursively.
WrappedConfigT | The wrapped config of the segmentation |
ElementHandleT | The element tag of the element |
segmentation_obj | The segmentation object |
segment_id | The id of the segment element is added |
element_handle | A handle of the element object to be added |
void viennagrid::add | ( | segmentation< WrappedConfigT > & | segmentation_obj, |
SegmentIDIteratorT | segment_ids_it, | ||
SegmentIDIteratorT const & | segment_ids_end, | ||
viennagrid::element< ElementTagT, WrappedElementConfigT > & | element | ||
) |
Adds an element to all segment provided in a segment id iterator range.
WrappedConfigT | The wrapped config of the segmentation |
SegmentIDIteratorT | The segment id iterator type |
ElementTagT | The element tag of the element |
WrappedConfigT | The wrapped config of the element |
segmentation_obj | The segmentation |
segment_ids_it | The begin segment id iterator |
segment_ids_end | The end segment id iterator |
element | The element to be added |
void viennagrid::add | ( | segmentation< WrappedConfigT > & | segmentation_obj, |
SegmentIDIteratorT | segment_ids_it, | ||
SegmentIDIteratorT const & | segment_ids_end, | ||
ElementHandleT | element_handle | ||
) |
Adds an element to all segment provided in a segment id iterator range.
WrappedConfigT | The wrapped config of the segmentation |
SegmentIDIteratorT | The segment id iterator type |
ElementHandleT | The element tag of the element |
segmentation_obj | The segmentation object |
segment_ids_it | The begin segment id iterator |
segment_ids_end | The end segment id iterator |
element_handle | A handle of the element object to be added |
void viennagrid::add_single_handle | ( | ViewT & | view_or_segment, |
HandleT | handle | ||
) |
Adds a single element handle (no boundary elements/handles) to a view if it isn't already present in that view. The runtime of this function is linear in the number of elements present in the view.
ViewT | The view/segment type |
HandleT | The handle to be added |
view_or_segment | The view/segment object |
handle | The handle object to be inserted |
iterator_type viennagrid::advance | ( | iterator_type const & | in, |
distance_type | distance | ||
) |
Advances an iterator and returns it.
in | the input iterator |
distance | the distance to advance |
void viennagrid::affine_transform | ( | MeshT & | mesh, |
typename viennagrid::result_of::coord< MeshT >::type const * | matrix, | ||
typename viennagrid::result_of::point< MeshT >::type const & | translation | ||
) |
Function for an affine transformation of a mesh, uses affine_transform_functor.
mesh | The input mesh |
matrix | The matrix representing the linear transformation part, row major layout. Attention! There are no out-of boundary checks, the user is responsible to provide a suitable matrix pointer. |
translation | The translation vector |
viennagrid::result_of::coord<PointT>::type viennagrid::angle | ( | PointT const & | v0, |
PointT const & | v1 | ||
) |
Implementation of the spanned angle between two vectors (i.e. the angle between the rays connecting v0 and v1 with the origin)
viennagrid::result_of::coord<PointT>::type viennagrid::angle | ( | PointT const & | p0, |
PointT const & | p1, | ||
PointT const & | origin | ||
) |
Implementation of the angle between two lines directing from origin to p0 and p1.
void viennagrid::apply_voronoi | ( | 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 | ||
) |
Writes Voronoi information to the mesh or segment using the provided accessors.
ElementTypeOrTagT | The element/cell type/tag for which the voronoi information is calculated |
mesh_obj | The mesh |
interface_area_accessor | An accessor where the interface areas are stored |
interface_area_cell_contribution_accessor | An accessor where the interface area element contributions are stored |
vertex_box_volume_accessor | An accessor where the vertex box volumes are stored |
vertex_box_volume_cell_contribution_accessor | An accessor where the vertex box volume element contributions are stored |
edge_box_volume_accessor | An accessor where the edge box volumes are stored |
edge_box_volume_cell_contribution_accessor | An accessor where the edge box volume element contributions are stored |
viennagrid::result_of::coord<SomethingT1>::type viennagrid::boundary_distance | ( | PointAccessorT const | accessor, |
SomethingT1 const & | el1, | ||
SomethingT2 const & | el2 | ||
) |
Returns the distance between elements, segments and/or meshs.
accessor | Accessor functor for obtaining a point from a vertex |
el1 | The first element/mesh/vertex |
el2 | The second element/mesh/vertex |
viennagrid::result_of::coord<SomethingT1>::type viennagrid::boundary_distance | ( | SomethingT1 const & | el1, |
SomethingT2 const & | el2 | ||
) |
Returns the distance between elements, segments and/or meshs.
viennagrid::result_of::coord<SomethingT>::type viennagrid::boundary_distance | ( | SomethingT const & | el1, |
spatial_point< CoordT, CoordinateSystemT > const & | el2 | ||
) |
Returns the distance between a point and an element, segment and/or mesh.
viennagrid::result_of::coord<SomethingT>::type viennagrid::boundary_distance | ( | spatial_point< CoordT, CoordinateSystemT > const & | el1, |
SomethingT const & | el2 | ||
) |
Returns the distance between a point and an element, segment and/or mesh.
std::pair< typename std::iterator_traits<PointIteratorT>::value_type, typename std::iterator_traits<PointIteratorT>::value_type > viennagrid::bounding_box | ( | PointIteratorT | it, |
PointIteratorT const & | it_end | ||
) |
Calculates the bounding box of a point iterator range. A pair of points is return, where the first represents the coordinate-wise minimum and the second represents the coordinate-wise maximum.
it | The start point iterator |
it_end | The end point iterator |
std::pair< typename viennagrid::result_of::point<MeshT>::type, typename viennagrid::result_of::point<MeshT>::type > viennagrid::bounding_box | ( | MeshT const & | mesh | ) |
Calculates the bounding box a mesh. A pair of points is return, where the first represents the coordinate-wise minimum and the second represents the coordinate-wise maximum.
mesh | The input mesh |
void viennagrid::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.
mesh_in | Input mesh |
mesh_out | Output refined mesh |
cell_refinement_flag_accessor | Accessor storing flags if a cell is marked for refinement |
void viennagrid::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.
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
cell_refinement_flag_accessor | Accessor storing flags if a cell is marked for refinement |
void viennagrid::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.
mesh_in | Input mesh |
mesh_out | Output refined mesh |
void viennagrid::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.
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
void viennagrid::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.
result_of::cell_range<SomethingT>::type viennagrid::cells | ( | SomethingT & | something | ) |
Function for retrieving a cell range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_cell_range<SomethingT>::type viennagrid::cells | ( | SomethingT const & | something | ) |
Function for retrieving a const cell range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
PointAccessorT::value_type viennagrid::centroid | ( | PointAccessorT const | accessor, |
ElementT const & | element | ||
) |
The public interface function for the computation of a centroid of an element with explicit point accessor.
element | The element for which the centroid should be computed |
accessor | The point accessor providing point information for geometric calculation |
viennagrid::result_of::point< viennagrid::element<ElementTag,WrappedConfigT> >::type viennagrid::centroid | ( | viennagrid::element< ElementTag, WrappedConfigT > const & | element | ) |
The public interface function for the computation of a centroid of an element.
element | The element for which the centroid should be computed |
viennagrid::result_of::point< mesh<WrappedConfigT> >::type viennagrid::centroid | ( | mesh< WrappedConfigT > const & | mesh_obj, |
PointAccessorT const | point_accessor | ||
) |
The public interface function for the computation of a centroid of a mesh with explicit point accessor.
ElementTOrTagT | The element type/tag of the elements for which the centroid is calculcated |
mesh_obj | The mesh which centroid is to be calculated |
point_accessor | The point accessor providing point information for geometric calculation |
viennagrid::result_of::point< mesh<WrappedConfigT> >::type viennagrid::centroid | ( | mesh< WrappedConfigT > const & | mesh_obj, |
PointAccessorT const | point_accessor | ||
) |
The public interface function for the computation of a centroid of a mesh with explicit point accessor. Cells are used for centroid calculation, will fail if there is more than one cell type.
mesh_obj | The mesh which centroid is to be calculated |
point_accessor | The point accessor providing point information for geometric calculation |
viennagrid::result_of::point< mesh<WrappedConfigT> >::type viennagrid::centroid | ( | mesh< WrappedConfigT > const & | mesh_obj | ) |
The public interface function for the computation of a centroid of a mesh.
ElementTOrTagT | The element type/tag of the elements for which the centroid is calculcated |
mesh_obj | The mesh which centroid is to be calculated |
viennagrid::result_of::point< mesh<WrappedConfigT> >::type viennagrid::centroid | ( | mesh< WrappedConfigT > const & | mesh_obj | ) |
The public interface function for the computation of a centroid of a mesh. Cells are used for centroid calculation, will fail if there is more than one cell type.
mesh_obj | The mesh which centroid is to be calculated |
viennagrid::result_of::point< segment_handle<SegmentationT> >::type viennagrid::centroid | ( | segment_handle< SegmentationT > const & | segment, |
PointAccessorT const | point_accessor | ||
) |
The public interface function for the computation of a centroid of a segment with explicit point accessor.
ElementTOrTagT | The element type/tag of the elements for which the centroid is calculcated |
segment | The segment which centroid is to be calculated |
point_accessor | The point accessor providing point information for geometric calculation |
viennagrid::result_of::point< segment_handle<SegmentationT> >::type viennagrid::centroid | ( | segment_handle< SegmentationT > const & | segment, |
PointAccessorT const | point_accessor | ||
) |
The public interface function for the computation of a centroid of a segment with explicit point accessor. Cells are used for centroid calculation, will fail if there is more than one cell type.
segment | The segment which centroid is to be calculated |
point_accessor | The point accessor providing point information for geometric calculation |
viennagrid::result_of::point< segment_handle<SegmentationT> >::type viennagrid::centroid | ( | segment_handle< SegmentationT > const & | segment | ) |
The public interface function for the computation of a centroid of a segment.
ElementTOrTagT | The element type/tag of the elements for which the centroid is calculcated |
segment | The segment which centroid is to be calculated |
viennagrid::result_of::point< segment_handle<SegmentationT> >::type viennagrid::centroid | ( | segment_handle< SegmentationT > const & | segment | ) |
The public interface function for the computation of a centroid of a segment. Cells are used for centroid calculation, will fail if there is more than one cell type.
segment | The segment which centroid is to be calculated |
PointAccessorT::value_type viennagrid::circumcenter | ( | PointAccessorT const | accessor, |
ElementT const & | element | ||
) |
The public interface function for the calculation of the circumcenter with explicit point accessor.
element | The element for which the circumcenter should be computed |
accessor | The point accessor providing point information for geometric calculation |
viennagrid::result_of::point< ElementT >::type viennagrid::circumcenter | ( | ElementT const & | element | ) |
The public interface function for the calculation of the circumcenter.
element | The element for which the circumcenter should be computed |
void viennagrid::clear | ( | segment_handle< SegmentationT > & | segment_ | ) |
Completely clears a segmentation.
void viennagrid::clear | ( | mesh< WrappedConfigT > & | mesh_ | ) |
Completely clears a mesh.
void viennagrid::clear | ( | segmentation< WrappedConfigT > & | segmentation_ | ) |
Completely clears a segmentation.
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > viennagrid::closest_points | ( | PointAccessorT const | accessor, |
SomethingT1 const & | el1, | ||
SomethingT2 const & | el2 | ||
) |
Returns the distance between n-cells.
std::pair< typename viennagrid::result_of::point<SomethingT1>::type, typename viennagrid::result_of::point<SomethingT1>::type > viennagrid::closest_points | ( | SomethingT1 const & | el1, |
SomethingT2 const & | el2 | ||
) |
Returns the closest points between two elements/segments using the default accessor for geometric points on vertices.
std::pair< typename PointAccessorT::value_type, typename PointAccessorT::value_type > viennagrid::closest_points_on_boundary | ( | PointAccessorT const | accessor, |
SomethingT1 const & | el1, | ||
SomethingT2 const & | el2 | ||
) |
Returns the closest points between two elements/segments using the provided accessor for geometric points on vertices.
std::pair< typename viennagrid::result_of::point<SomethingT1>::type, typename viennagrid::result_of::point<SomethingT1>::type > viennagrid::closest_points_on_boundary | ( | SomethingT1 const & | el1, |
SomethingT2 const & | el2 | ||
) |
Returns the distance between n-cells.
result_of::coboundary_range< viennagrid::mesh< WrappedConfigT >, ElementTypeOrTagT, CoboundaryTypeOrTagT >::type coboundary_elements | ( | viennagrid::mesh< WrappedConfigT > & | mesh_obj, |
ElementOrHandleT const & | element_or_handle | ||
) |
Obtaines a coboundary range of an element within a mesh. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the mesh.
ElementTypeOrTagT | The base element type/tag from which the coboundary range is obtained |
CoboundaryTypeOrTagT | The coboundary element type/tag |
WrappedConfigT | The wrapped config of the mesh |
ElementOrHandleT | The element or handle type for which the coboundary range is obtained |
mesh_obj | The host mesh object in which the elements of the coboundary range exist |
element_or_handle | A handle or the element for which the coboundary range is obained |
result_of::const_coboundary_range< viennagrid::mesh< WrappedConfigT >, ElementTypeOrTagT, CoboundaryTypeOrTagT >::type coboundary_elements | ( | viennagrid::mesh< WrappedConfigT > const & | mesh_obj, |
ElementOrHandleT const & | element_or_handle | ||
) |
Obtaines a const coboundary range of an element within a mesh. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the mesh.
ElementTypeOrTagT | The base element type/tag from which the coboundary range is obtained |
CoboundaryTypeOrTagT | The coboundary element type/tag |
WrappedConfigT | The wrapped config of the mesh |
ElementOrHandleT | The element or handle type for which the coboundary range is obtained |
mesh_obj | The host mesh object in which the elements of the coboundary range exist |
element_or_handle | A handle or the element for which the coboundary range is obained |
result_of::coboundary_range< segment_handle< SegmentationT >, ElementTypeOrTagT, CoboundaryTypeOrTagT >::type coboundary_elements | ( | segment_handle< SegmentationT > & | segment, |
element_or_handle_type const & | element_or_handle | ||
) |
Obtaines a coboundary range of an element within a segment. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the segment.
ElementTypeOrTagT | The base element type/tag from which the coboundary range is obtained |
CoboundaryTypeOrTagT | The coboundary element type/tag |
SegmentationT | The segmentation type of the segment type |
ElementOrHandleT | The element or handle type for which the coboundary range is obtained |
segment | The host segment object in which the elements of the coboundary range exist |
element_or_handle | A handle or the element for which the coboundary range is obained |
result_of::const_coboundary_range< segment_handle< SegmentationT >, ElementTypeOrTagT, CoboundaryTypeOrTagT >::type coboundary_elements | ( | segment_handle< SegmentationT > const & | segment, |
element_or_handle_type const & | element_or_handle | ||
) |
Obtaines a const coboundary range of an element within a segment. This function caches the coboundary information and re-creates it if the cached information is out of date. The runtime of a re-creation is linear in the number of elements of type CoboundaryTypeOrTagT within the segment.
ElementTypeOrTagT | The base element type/tag from which the coboundary range is obtained |
CoboundaryTypeOrTagT | The coboundary element type/tag |
SegmentationT | The segmentation type of the segment type |
ElementOrHandleT | The element or handle type for which the coboundary range is obtained |
segment | The host segment object in which the elements of the coboundary range exist |
element_or_handle | A handle or the element for which the coboundary range is obained |
void viennagrid::copy | ( | SrcMeshT const & | src_mesh, |
DstMeshT & | dst_mesh, | ||
ToCopyFunctorT | functor | ||
) |
Copies the cells of a mesh if a boolean functor is true.
src_mesh | The source mesh |
dst_mesh | The destination mesh |
functor | Boolean functor, if functor(cell) returns true, the cell is copied. |
void viennagrid::copy | ( | SrcMeshT const & | src_mesh, |
SrcSegmentationT const & | src_segmentation, | ||
DstMeshT & | dst_mesh, | ||
DstSegmentationT & | dst_segmentation, | ||
ToCopyFunctorT | functor | ||
) |
Copies the cells of a mesh and a segmentation if a boolean functor is true.
src_mesh | The source mesh |
src_segmentation | The source segmentation |
dst_mesh | The destination mesh |
dst_segmentation | The destination segmentation |
functor | Boolean functor, if functor(cell) returns true, the cell is copied. |
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.
ElementT | The element type which is copied |
MeshOrSegmentHandleT | The mesh or segment type where the element is created |
element | The element which is copied |
mesh_segment | The mesh or segment object where the element is copied to |
tolerance | An absolute tolerance of the 2-norm for checking if two points are equal. If tolerance is less of equal to zero, no quality check is performed. |
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.
ElementT | The element type which is copied |
MeshOrSegmentHandleT | The mesh or segment type where the element is created |
element | The element which is copied |
mesh_segment | The mesh or segment object where the element is copied to |
void viennagrid::copy_element_by_handles | ( | InputMeshOrSegmentHandleT const & | input_mesh, |
ElementHandleIteratorT const & | begin, | ||
ElementHandleIteratorT const & | end, | ||
OutputMeshOrSegmentHandleT & | output_mesh, | ||
typename viennagrid::result_of::coord< OutputMeshOrSegmentHandleT >::type | tolerance | ||
) |
Function for copying an element handle iterator range to a mesh or segment.
InputMeshOrSegmentHandleT | The mesh or segment type where the original elements live |
ElementHandleIteratorT | The element handle iterator type which is copied |
OutputMeshOrSegmentHandleT | The mesh or segment type where the elements are created |
input_mesh | The mesh or segment object where the original elements live |
begin | The begin of element handle the iterator range of element to be copied |
end | The end of the element handle iterator range of element to be copied |
output_mesh | The mesh or segment object where the elements are copied to |
tolerance | An absolute tolerance of the 2-norm for checking if two points are equal. If tolerance is less of equal to zero, no quality check is performed. |
void viennagrid::copy_element_by_handles | ( | InputMeshOrSegmentHandleT const & | input_mesh, |
ElementHandleIteratorT const & | begin, | ||
ElementHandleIteratorT const & | end, | ||
OutputMeshOrSegmentHandleT & | output_mesh | ||
) |
Function for copying an element handle iterator range to a mesh or segment.
InputMeshOrSegmentHandleT | The mesh or segment type where the original elements live |
ElementHandleIteratorT | The element handle iterator type which is copied |
OutputMeshOrSegmentHandleT | The mesh or segment type where the elements are created |
input_mesh | The mesh or segment object where the original elements live |
begin | The begin of element handle the iterator range of element to be copied |
end | The end of the element handle iterator range of element to be copied |
output_mesh | The mesh or segment object where the elements are copied to |
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.
ElementIteratorT | The element iterator type which is copied |
OutputMeshOrSegmentHandleT | The mesh or segment type where the elements are created |
begin | The begin of the element iterator range of element to be copied |
end | The end of the element iterator range of element to be copied |
output_mesh | The mesh or segment object where the elements are copied to |
tolerance | An absolute tolerance of the 2-norm for checking if two points are equal. If tolerance is less of equal to zero, no quality check is performed. |
void copy_elements | ( | ElementIteratorT const & | begin, |
ElementIteratorT const & | end, | ||
OutputMeshOrSegmentHandleT & | output_mesh | ||
) |
Function for copying an element iterator range to a mesh or segment.
ElementIteratorT | The element iterator type which is copied |
OutputMeshOrSegmentHandleT | The mesh or segment type where the elements are created |
begin | The begin of the element iterator range of element to be copied |
end | The end of the element iterator range of element to be copied |
output_mesh | The mesh or segment object where the elements are copied to |
void viennagrid::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 | ||
) |
void viennagrid::copy_elements_by_handle | ( | InputMeshOrSegmentHandleT const & | input_mesh, |
ElementHandleIteratorT const & | begin, | ||
ElementHandleIteratorT const & | end, | ||
OutputMeshOrSegmentHandleT & | output_mesh | ||
) |
void viennagrid::copy_segmentation | ( | SourceMeshT const & | src_mesh_, |
SourceSegmentationT const & | src_segmentation_, | ||
DestinationMeshT & | dst_mesh_, | ||
DestinationSegmentationT & | dst_segmentation_ | ||
) |
Copies a segmentation. Warning: may be slow!
src_mesh_ | The source mesh |
src_segmentation_ | The source segmentation |
dst_mesh_ | The destination mesh |
dst_segmentation_ | The destination segmentation |
PointT1 viennagrid::cross_prod | ( | PointT1 const & | v1, |
PointT2 const & | v2 | ||
) |
Returns the cross product of two vectors. If the vectors have one or two components only, the zero vector is returned.
v1 | The first vector given in some coordinate system |
v2 | The second vector given in another coordinate system |
PointT1 viennagrid::cross_prod_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
CSystem1 const & | , | ||
CSystem2 const & | |||
) |
Dispatched cross product function having information about the coordinate systems. Transforms to Cartesian coordinates and forwards to calculation.
PointT1 viennagrid::cross_prod_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
cartesian_cs< d > | , | ||
cartesian_cs< d > | |||
) |
Dispatched cross product function having information about the coordinate systems. Points are already in Cartesian coordinates, thus forwarding to the worker function directly.
result_of::default_point_accessor<mesh_or_element_type>::type viennagrid::default_point_accessor | ( | mesh_or_element_type const & | ) |
Convenience function for returning the default point accessor (i.e. accessing the point stored in the element's appendix) for a mesh or element.
detail::result_of::value_type<HandleT>::type& viennagrid::dereference_handle | ( | segment_handle< SegmentationT > & | segment_handle, |
HandleT const & | handle | ||
) |
Function for dereferencing a handle using a segment object.
segment_handle | The host segment object |
handle | The handle to be dereferenced |
detail::result_of::value_type<HandleT>::type const& viennagrid::dereference_handle | ( | segment_handle< SegmentationT > const & | segment_handle, |
HandleT const & | handle | ||
) |
Function for dereferencing a handle using a segment object.
segment_handle | The host segment object |
handle | The handle to be dereferenced |
viennagrid::detail::result_of::value_type<HandleT>::type& viennagrid::dereference_handle | ( | mesh< WrappedMeshConfigT > & | mesh_obj, |
HandleT const & | handle | ||
) |
Function for dereferencing a handle using a mesh/segment object.
WrappedConfigT | The wrapped config of the mesh/segment type |
HandleT | A handle type |
mesh_obj | The host mesh/segment object |
handle | The handle to be dereferenced |
detail::result_of::value_type<handle_type>::type& viennagrid::dereference_handle | ( | viennagrid::element< element_tag, WrappedConfigType > & | element, |
handle_type const & | handle | ||
) |
Function for dereferencing a handle using a host element.
element | The host element |
handle | The handle to be dereferenced |
viennagrid::detail::result_of::value_type<HandleT>::type const& viennagrid::dereference_handle | ( | mesh< WrappedMeshConfigT > const & | mesh_obj, |
HandleT const & | handle | ||
) |
Function for dereferencing a handle using a mesh/segment object, const version.
WrappedConfigT | The wrapped config of the mesh/segment type |
HandleT | A handle type |
mesh_obj | The host mesh/segment object |
handle | The handle to be dereferenced |
const detail::result_of::value_type<handle_type>::type& viennagrid::dereference_handle | ( | viennagrid::element< element_tag, WrappedConfigType > const & | element, |
handle_type const & | handle | ||
) |
Function for dereferencing a handle using a host element.
element | The host element |
handle | The handle to be dereferenced |
detail::result_of::value_type<HandleT>::type& viennagrid::dereference_handle | ( | segmentation< WrappedConfigT > & | segmentation_, |
HandleT const & | handle | ||
) |
Function for dereferencing a handle using a segmentation.
segmentation_ | The segmentation object |
handle | The handle to be dereferenced |
detail::result_of::value_type<HandleT>::type const& viennagrid::dereference_handle | ( | segmentation< WrappedConfigT > const & | segmentation_, |
HandleT const & | handle | ||
) |
Function for dereferencing a handle using a segmentation.
segmentation_ | The segmentation object |
handle | The handle to be dereferenced |
viennagrid::element<ElementTagT, WrappedConfigT>& viennagrid::dereference_handle | ( | viennagrid::mesh< WrappedMeshConfigT > & | , |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Function for dereferencing an element -> identity.
WrappedMeshConfigT | Wrapped config of the mesh type |
ElementTagT | Element tag of the element to dereference |
WrappedConfigT | Wrapped config of the element to dereference |
element | The element to be derferenced, this object is returned |
viennagrid::element<ElementTagT, WrappedConfigT>& viennagrid::dereference_handle | ( | viennagrid::segment_handle< WrappedMeshConfigT > & | , |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Function for dereferencing an element -> identity.
WrappedMeshConfigT | Wrapped config of the mesh type |
ElementTagT | Element tag of the element to dereference |
WrappedConfigT | Wrapped config of the element to dereference |
element | The element to be derferenced, this object is returned |
viennagrid::element<ElementTagT, WrappedConfigT>& viennagrid::dereference_handle | ( | viennagrid::element< HostElementTagT, WrappedHostElementConfigT > & | , |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Function for dereferencing an element -> identity.
WrappedMeshConfigT | Wrapped config of the mesh type |
ElementTagT | Element tag of the element to dereference |
WrappedConfigT | Wrapped config of the element to dereference |
element | The element to be derferenced, this object is returned |
viennagrid::element<ElementTagT, WrappedConfigT> const& viennagrid::dereference_handle | ( | viennagrid::mesh< WrappedMeshConfigT > const & | , |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function for dereferencing a const element -> identity.
WrappedMeshConfigT | Wrapped config of the mesh type |
ElementTagT | Element tag of the element to dereference |
WrappedConfigT | Wrapped config of the element to dereference |
element | The element to be derferenced, this object is returned |
viennagrid::element<ElementTagT, WrappedConfigT> const& viennagrid::dereference_handle | ( | viennagrid::mesh< WrappedMeshConfigT > & | , |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function for dereferencing a const element -> identity.
viennagrid::element<ElementTagT, WrappedConfigT> const& viennagrid::dereference_handle | ( | viennagrid::mesh< WrappedMeshConfigT > const & | , |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Function for dereferencing a const element -> identity.
viennagrid::element<ElementTagT, WrappedConfigT> const& viennagrid::dereference_handle | ( | viennagrid::segment_handle< SegmentationT > const & | , |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function for dereferencing a const element -> identity.
viennagrid::element<ElementTagT, WrappedConfigT> const& viennagrid::dereference_handle | ( | viennagrid::segment_handle< SegmentationT > & | , |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function for dereferencing a const element -> identity.
viennagrid::element<ElementTagT, WrappedConfigT> const& viennagrid::dereference_handle | ( | viennagrid::segment_handle< SegmentationT > const & | , |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Function for dereferencing an element -> identity.
viennagrid::element<ElementTagT, WrappedConfigT> const& viennagrid::dereference_handle | ( | viennagrid::element< HostElementTagT, WrappedHostElementConfigT > const & | , |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function for dereferencing a const element -> identity.
viennagrid::element<ElementTagT, WrappedConfigT> const& viennagrid::dereference_handle | ( | viennagrid::element< HostElementTagT, WrappedHostElementConfigT > & | , |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function for dereferencing a const element -> identity.
viennagrid::element<ElementTagT, WrappedConfigT> const& viennagrid::dereference_handle | ( | viennagrid::element< HostElementTagT, WrappedHostElementConfigT > const & | , |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Function for dereferencing an element -> identity.
void viennagrid::detect_interface | ( | segment_handle< SegmentationT > & | seg0, |
segment_handle< SegmentationT > & | seg1 | ||
) |
Public interface function for the detection of interface n-cells between two segments. No need to call this function explicitly, since it is called by is_interface()
seg0 | The first segment |
seg1 | The second segment |
viennagrid::result_of::coord<PointT>::type viennagrid::determinant | ( | PointT const & | p0 | ) |
Calculates the determinant of a 1x1 matrix with the columns provided as 1D-points.
p0 | The first column/point |
viennagrid::result_of::coord<PointT>::type viennagrid::determinant | ( | PointT const & | p0, |
PointT const & | p1 | ||
) |
Calculates the determinant of a 2x2 matrix with the columns provided as 2D-points.
p0 | The first column |
p1 | The second column |
viennagrid::result_of::coord<PointT>::type viennagrid::determinant | ( | PointT const & | p0, |
PointT const & | p1, | ||
PointT const & | p2 | ||
) |
Calculates the determinant of a 3x3 matrix with the columns provided as 3D-points.
p0 | The first column |
p1 | The second column |
p2 | The third column |
viennagrid::result_of::coord<PointT>::type viennagrid::dihedral_angle | ( | PointT const & | p0, |
PointT const & | p1, | ||
PointT const & | p2, | ||
PointT const & | q0, | ||
PointT const & | q1, | ||
PointT const & | q2 | ||
) |
Implementation of the dihedral angle between two planes, each defined by 3 points.
viennagrid::result_of::coord<SomethingT1>::type viennagrid::distance | ( | PointAccessorT const | accessor, |
SomethingT1 const & | el1, | ||
SomethingT2 const & | el2 | ||
) |
Returns the distance between elements, segments and/or meshs using the point accessor provided.
viennagrid::result_of::coord<SomethingT1>::type viennagrid::distance | ( | SomethingT1 const & | el1, |
SomethingT2 const & | el2 | ||
) |
Returns the distance between elements, segments and/or meshs using the default point accessor.
viennagrid::result_of::coord<SomethingT>::type viennagrid::distance | ( | SomethingT const & | el1, |
spatial_point< CoordT, CoordinateSystemT > const & | el2 | ||
) |
Returns the distance between a point and an element/segment/meshs using the default point accessor.
viennagrid::result_of::coord<SomethingT>::type viennagrid::distance | ( | spatial_point< CoordT, CoordinateSystemT > const & | el1, |
SomethingT const & | el2 | ||
) |
Returns the distance between a point and an element/segment/meshs using the default point accessor.
viennagrid::result_of::coord< spatial_point<CoordT1, CoordinateSystemT1> >::type viennagrid::distance | ( | spatial_point< CoordT1, CoordinateSystemT1 > const & | el1, |
spatial_point< CoordT2, CoordinateSystemT2 > const & | el2 | ||
) |
Returns the Euclidian distance between two points.
result_of::coord< segment_handle<SegmentationT> >::type viennagrid::distance | ( | element< line_tag, WrappedMeshConfigT > const & | line, |
segment_handle< SegmentationT > const & | segment_handle | ||
) |
Returns the Euclidian distance between the boundary of a segment and a line.
result_of::coord< segment_handle<SegmentationT> >::type viennagrid::distance | ( | segment_handle< SegmentationT > const & | segment_handle, |
element< line_tag, WrappedMeshConfigT > const & | line | ||
) |
std::size_t viennagrid::dynamic_size | ( | PointType const & | p | ) |
Returns the dynamic (run time) size of a point. Assumes a .size() member. Other cases must be provided with overloads.
result_of::element_range<SomethingT, edge_tag>::type viennagrid::edges | ( | SomethingT & | something | ) |
Function for retrieving a edge range object from a host object (same as lines)
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_element_range<SomethingT, edge_tag>::type viennagrid::edges | ( | SomethingT const & | something | ) |
Function for retrieving a const edge range object from a host object (same as lines)
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
point_accessor_in | Point accessor for input points |
cell_refinement_flag_accessor | Accessor storing flags if a cell is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
cell_refinement_flag_accessor | Accessor storing flags if a cell is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
point_accessor_in | Point accessor for input points |
cell_refinement_flag_accessor | Accessor storing flags if a cell is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
cell_refinement_flag_accessor | Accessor storing flags if a cell is marked for refinement |
result_of::element_view<something, element_type_or_tag>::type viennagrid::element_view | ( | something & | s | ) |
Returns an empty view object derived from the respective element.
result_of::element_view<something, element_type_or_tag>::type viennagrid::element_view | ( | something & | s, |
functor | f | ||
) |
Returns a view object derived from the respective mesh or segment. Whenever the provided filter functor evaluates to true for an element, it is added to the view. Non-const version.
result_of::const_element_view<something, element_type_or_tag>::type viennagrid::element_view | ( | something const & | s, |
functor | f | ||
) |
Returns a view object derived from the respective mesh or segment. Whenever the provided filter functor evaluates to true for an element, it is added to the view. Const version.
result_of::element_range< viennagrid::element< element_tag, WrappedConfigType >, sub_element_type_or_tag >::type elements | ( | viennagrid::element< element_tag, WrappedConfigType > & | element | ) |
Function for retrieving a boundary element range from a host element. Non-const version.
sub_element_type_or_tag | The element type/tag for the requested boundary element range |
element_tag | The element tag of the host element |
WrappedConfigType | The host mesh/element configuration class (providing the typemap as 'type' member type) |
element | The host element from which the boundary element range should be obtained |
result_of::const_element_range< viennagrid::element< element_tag, WrappedConfigType >, sub_element_type_or_tag >::type elements | ( | const viennagrid::element< element_tag, WrappedConfigType > & | element | ) |
Function for retrieving a boundary element range from a host element. Const version.
sub_element_type_or_tag | The element type/tag for the requested boundary element range |
element_tag | The element tag of the host element |
WrappedConfigType | The host mesh/element configuration class (providing the typemap as 'type' member type) |
element | The host element from which the boundary element range should be obtained |
result_of::element_range<collection<container_collection_typemap>, element_type_or_tag>::type viennagrid::elements | ( | collection< container_collection_typemap > & | collection | ) |
Function for retrieving an element range or a boundary element range from a container collection. Non-const version.
element_type_or_tag | The element type/tag for the requested element range |
container_collection_typemap | The configuration typemap for the collection |
collection | The container collection from which to build the range. |
result_of::const_element_range<collection<container_collection_typemap>, element_type_or_tag>::type viennagrid::elements | ( | const collection< container_collection_typemap > & | collection | ) |
Function for retrieving an element range or a boundary element range from a container collection. Const version.
element_type_or_tag | The element type/tag for the requested element range |
container_collection_typemap | The configuration typemap for the collection |
collection | The container collection from which to build the range. |
result_of::element_range<SomethingT, ElementTypeOrTagT>::type viennagrid::elements | ( | SomethingT & | something | ) |
Function for retrieving an element range or a boundary element range from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
ElementTypeOrTagT | The element type/tag for the requested element range |
something | The host object of type SomethingT |
result_of::element_range< viennagrid::mesh< WrappedConfigType >, ElementTypeOrTagT >::type elements | ( | viennagrid::mesh< WrappedConfigType > & | mesh_obj | ) |
Function for retrieving an element range or a boundary element range from a mesh. Non-const version.
WrappedConfigType | The host mesh configuration class (providing the typemap as 'type' member type) |
ElementTypeOrTagT | The element type/tag for the requested element range |
mesh_obj | The mesh object |
result_of::element_range< viennagrid::segment_handle<SegmentationT>, ElementTypeOrTagT>::type viennagrid::elements | ( | viennagrid::segment_handle< SegmentationT > & | segment | ) |
Function for retrieving an element range or a boundary element range from a segment.
SegmentationT | The host segmentation |
ElementTypeOrTagT | The element type/tag for the requested element range |
segment | The host object of type SomethingT |
result_of::element_range<segmentation<WrappedConfigT>, ElementTypeOrTagT>::type viennagrid::elements | ( | viennagrid::segmentation< WrappedConfigT > & | segm | ) |
Function for retrieving an element range or a boundary element range from a segmentation. Non-const version.
ElementTypeOrTagT | The element type/tag for the requested element range |
WrappedConfigT | The host mesh configuration class (providing the typemap as 'type' member type) |
segm | The hosting segmentation object |
result_of::const_element_range<SomethingT, ElementTypeOrTagT>::type viennagrid::elements | ( | SomethingT const & | something | ) |
Function for retrieving a const element range or a boundary element range from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
ElementTypeOrTagT | The element type/tag for the requested element range |
something | The host object of type SomethingT |
result_of::const_element_range< viennagrid::mesh< WrappedConfigType >, ElementTypeOrTagT >::type elements | ( | viennagrid::mesh< WrappedConfigType > const & | mesh_obj | ) |
Function for retrieving an element range or a boundary element range from a mesh. Const version.
WrappedConfigType | The host mesh configuration class (providing the typemap as 'type' member type) |
ElementTypeOrTagT | The element type/tag for the requested element range |
mesh_obj | The mesh object |
result_of::const_element_range< viennagrid::segment_handle<SegmentationT>, ElementTypeOrTagT>::type viennagrid::elements | ( | viennagrid::segment_handle< SegmentationT > const & | segment | ) |
Function for retrieving a const element range or a boundary element range from a segment. Const-version.
SegmentationT | The host segmentation |
ElementTypeOrTagT | The element type/tag for the requested element range |
segment | The host object of type SomethingT |
result_of::const_element_range<viennagrid::segmentation<WrappedConfigT>, ElementTypeOrTagT>::type viennagrid::elements | ( | viennagrid::segmentation< WrappedConfigT > const & | segm | ) |
Function for retrieving an element range or a boundary element range from a segmentation. Const version.
ElementTypeOrTagT | The element type/tag for the requested element range |
WrappedConfigT | The host mesh configuration class (providing the typemap as 'type' member type) |
segm | The hosting segmentation object |
void viennagrid::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.
void viennagrid::erase | ( | SegmentHandleT & | segment, |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Deletes an element from a segment. The runtime of this function is linear in the number of elements of the element type to delete.
SegmentHandleT | The segment type |
ElementTagT | The element tag of the element type to be deleted |
WrappedConfigT | The wrapped config of the element type to be deleted |
segment | The segment object from which the element is to be deleted |
element | The element object to be deleted from the segment |
void viennagrid::erase_element | ( | MeshT & | mesh_obj, |
HandleT | element_to_erase | ||
) |
Erases a single elements and all elements which references this element from a mesh. If more than one element is erase use erase_elements instead for better performance.
MeshT | The mesh type |
HandleT | The handle type of the element to delete |
mesh_obj | The host mesh object |
element_to_erase | A handle to the element to be deleted |
void viennagrid::erase_elements | ( | viennagrid::mesh< WrappedConfigT > & | mesh_obj, |
ToEraseViewT & | elements_to_erase | ||
) |
Erases all elements marked for deletion and all elements which references these elements from a mesh.
WrappedConfigT | The wrapped config of the mesh type in which the elements to erase live |
ToEraseViewT | The mesh view type which stores all elements to erase |
mesh_obj | The host mesh object |
elements_to_erase | A mesh view which stores all elements marked for deletion |
void viennagrid::erase_elements | ( | viennagrid::mesh< viennagrid::detail::decorated_mesh_view_config< WrappedConfigType, ElementTypeList, ContainerConfig > > & | view_obj, |
ToEraseViewT & | elements_to_erase | ||
) |
Erases all elements marked for deletion and all elements which references these elements from a view.
view_obj | The host mesh object |
elements_to_erase | A mesh view which stores all elements marked for deletion |
void viennagrid::extract_boundary | ( | VolumeMeshT const & | volume_mesh, |
HullMeshT & | hull_mesh | ||
) |
Extracts the hull of mesh using viennagrid::boundary, e.g. the triangular hull of a tetrahedral mesh.
HullTypeOrTagT | The type or tag of the hull element |
volume_mesh | The input mesh |
hull_mesh | The output hull mesh |
void viennagrid::extract_boundary | ( | VolumeMeshT const & | volume_mesh, |
HullMeshT & | hull_mesh | ||
) |
Extracts the hull of mesh using viennagrid::boundary, e.g. the triangular hull of a tetrahedral mesh. The facet type is used as the hull element type.
volume_mesh | The input mesh |
hull_mesh | The output hull mesh |
void viennagrid::extract_boundary | ( | VolumeMeshT const & | volume_mesh, |
VolumeSegmentationT const & | volume_segmentation, | ||
HullMeshT & | hull_mesh, | ||
HullSegmentationT & | hull_segmentation | ||
) |
Extracts the hull of mesh and a segmentation using viennagrid::boundary, e.g. the triangular hull of a tetrahedral mesh.
HullTypeOrTagT | The type or tag of the hull element |
volume_mesh | The input mesh |
volume_segmentation | The input segmentation |
hull_mesh | The output hull mesh |
hull_segmentation | The output hull segmentation |
void viennagrid::extract_boundary | ( | VolumeMeshT const & | volume_mesh, |
VolumeSegmentationT const & | volume_segmentation, | ||
HullMeshT & | hull_mesh, | ||
HullSegmentationT & | hull_segmentation | ||
) |
Extracts the hull of mesh and a segmentation using viennagrid::boundary, e.g. the triangular hull of a tetrahedral mesh. The facet type is used as the hull element type.
volume_mesh | The input mesh |
volume_segmentation | The input segmentation |
hull_mesh | The output hull mesh |
hull_segmentation | The output hull segmentation |
void viennagrid::extract_seed_points | ( | MeshSegmentT const & | mesh, |
SeedPointContainerT & | seed_points | ||
) |
Extracts seed points of a mesh. For each connected part of the mesh, a point which is inside this part is added to the seed_points container.
mesh | The input mesh |
seed_points | A container of seed points. The container has to support .push_back() for points of the mesh. |
void viennagrid::extract_seed_points | ( | MeshT const & | mesh, |
SegmentationT const & | segmentation, | ||
SeedPointContainerT & | seed_points | ||
) |
Extracts seed points of a mesh with segmentation. For each segment, seed points are extracted.
mesh | The input mesh |
segmentation | The input segmentation |
seed_points | A container of seed points and segment ids. The container has to support .push_back() for std::pair<MeshPointType,int> |
result_of::facet_range<ElementT>::type viennagrid::facets | ( | ElementT & | element | ) |
Function for retrieving a facet range object from a host object.
ElementT | The host element (cell) |
element | The host object of type ElementT |
result_of::const_facet_range<ElementT>::type viennagrid::facets | ( | const ElementT & | element | ) |
Function for retrieving a const facet range object from a host object.
ElementT | The host element type |
element | The host object of type SomethingT |
viennagrid::result_of::iterator< typename viennagrid::result_of::element_range<MeshSegmentHandleT, ElementTagT>::type >::type viennagrid::find | ( | MeshSegmentHandleT & | mesh_or_segment, |
element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function which finds an element based on an element. The runtime of this function depends on the container but can likely be linear in the number of elements of the requested type in the mesh.
MeshSegmentHandleT | Host mesh/segment type |
IDT | ID type of the object to be found |
mesh_or_segment | Host mesh/segment object |
element | The mesh element (cell, vertex, etc.) to be found |
viennagrid::result_of::const_iterator< typename viennagrid::result_of::element_range<MeshSegmentHandleT, ElementTagT>::type >::type viennagrid::find | ( | MeshSegmentHandleT const & | mesh_or_segment, |
element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function which finds an element based on an element, const version. The runtime of this function depends on the container but can likely be linear in the number of elements of the requested type in the mesh.
MeshSegmentHandleT | Host mesh/segment type |
IDT | ID type of the object to be found |
mesh_or_segment | Host mesh/segment object |
element | The mesh element (cell, vertex, etc.) to be found |
viennagrid::result_of::iterator< typename viennagrid::result_of::element_range<MeshSegmentHandleT, typename IDT::value_type::tag>::type >::type viennagrid::find | ( | MeshSegmentHandleT & | mesh_or_segment, |
IDT | id | ||
) |
Function which finds an element based on an ID. The runtime of this function depends on the container but can likely be linear in the number of elements of the requested type in the mesh.
MeshSegmentHandleT | Host mesh/segment type |
IDT | ID type of the object to be found |
mesh_or_segment | Host mesh/segment object |
id | id of the object to be found |
viennagrid::result_of::const_iterator< typename viennagrid::result_of::element_range<MeshSegmentHandleT, typename IDT::value_type::tag>::type >::type viennagrid::find | ( | MeshSegmentHandleT const & | mesh_or_segment, |
IDT | id | ||
) |
Function which finds an element based on an ID, const version. The runtime of this function depends on the container but can likely be linear in the number of elements of the requested type in the mesh.
MeshSegmentHandleT | Host mesh/segment type |
IDT | ID type of the object to be found |
mesh_or_segment | Host mesh/segment object |
id | id of the object to be found |
viennagrid::result_of::iterator< typename viennagrid::result_of::element_range<MeshSegmentHandleT, typename detail::result_of::value_type<HandleT>::type >::type >::type viennagrid::find_by_handle | ( | MeshSegmentHandleT & | mesh_or_segment, |
HandleT | handle | ||
) |
Function which finds an element based on a handle. The runtime of this function is linear in the number of elements of the requested type in the mesh.
MeshSegmentHandleT | Host mesh/segment type |
HandleT | The handle type of the object to be found |
mesh_or_segment | Host mesh/segment object |
handle | Identification handle of the object to be found |
viennagrid::result_of::const_iterator< typename viennagrid::result_of::const_element_range<MeshSegmentHandleT, typename detail::result_of::value_type<HandleT>::type >::type >::type viennagrid::find_by_handle | ( | MeshSegmentHandleT const & | mesh_or_segment, |
HandleT | handle | ||
) |
Function which finds an element based on a handle, const version. The runtime of this function is linear in the number of elements of the requested type in the mesh.
MeshSegmentHandleT | Host mesh/segment type |
HandleT | The handle type of the object to be found |
mesh_or_segment | Host mesh/segment object |
handle | Identification handle of the object to be found |
void viennagrid::for_each | ( | MeshSegmentHandleT & | mesh_or_segment, |
FunctorT | f | ||
) |
Function which executes functor for each element with specific topologic dimension.
TopologicDimensionV | Topologic dimension of the elements on which the functor is executed |
MeshSegmentHandleT | Host mesh/segment type |
FunctorT | Functor type, needs to provide void operator(ElementType &/const &) for each element type with topologic dimension equal to TopologicDimensionV |
mesh_or_segment | Host mesh/segment object |
f | Functor object |
void viennagrid::for_each | ( | MeshSegmentHandleT const & | mesh_or_segment, |
FunctorT | f | ||
) |
Function which executes functor for each element with specific topologic dimension, const version.
TopologicDimensionV | Topologic dimension of the elements on which the functor is executed |
MeshSegmentHandleT | Host mesh/segment type |
FunctorT | Functor type, needs to provide void operator(ElementType &/const &) for each element type with topologic dimension equal to TopologicDimensionV |
mesh_or_segment | Host mesh/segment object |
f | Functor object |
void viennagrid::for_each | ( | MeshSegmentHandleT & | mesh_or_segment, |
FunctorT | f | ||
) |
Function which executes functor for each element (of all topological dimensions) of the mesh or segment. Non-const version.
MeshSegmentHandleT | Host mesh/segment type |
FunctorT | Functor type, needs to provide void operator(ElementType &/const &) for each element type with topologic dimension equal to TopologicDimensionV |
mesh_or_segment | Host mesh/segment object |
f | Functor object |
void viennagrid::for_each | ( | MeshSegmentHandleT const & | mesh_or_segment, |
FunctorT | f | ||
) |
Function which executes functor for each element (of all topological dimensions) of the mesh or segment. Const version.
MeshSegmentHandleT | Host mesh/segment type |
FunctorT | Functor type, needs to provide void operator(ElementType &/const &) for each element type with topologic dimension equal to TopologicDimensionV |
mesh_or_segment | Host mesh/segment object |
f | Functor object |
void viennagrid::for_each_boundary_element | ( | ElementT & | element, |
FunctorT | functor | ||
) |
Applies a functor to all boundary cells of an element. For example, this applies a functor to all vertices and edges of a triangle.
void viennagrid::for_each_boundary_element | ( | ElementT & | element, |
FunctorT | functor | ||
) |
void viennagrid::geometric_transform | ( | MeshT & | mesh, |
FunctorT | func, | ||
PointAccessorT | accessor | ||
) |
Transforms all points of a mesh based on a functor.
mesh | The input mesh |
func | The functor object, has to be a function or provide an operator(). Interface: MeshPointType func(MeshPointType) |
accessor | Point accessor for input points |
void viennagrid::geometric_transform | ( | MeshT & | mesh, |
FunctorT | func | ||
) |
Transforms all points of a mesh based on a functor.
mesh | The input mesh |
func | The functor object, has to be a function or provide an operator(). Interface: MeshPointType func(MeshPointType) |
viennagrid::detail::result_of::lookup<TypeMapT, typename viennagrid::detail::remove_const<KeyTypeT>::type >::type& viennagrid::get | ( | collection< TypeMapT > & | c | ) |
Generic accessor function for accessing the respective value type identified by the provided type from a collection. Non-const version.
KeyTypeT | The key type for identifying the element inside a collection |
TypeMapT | The typemap used for configuring the collection |
viennagrid::detail::result_of::lookup<TypeMapT, typename viennagrid::detail::remove_const<KeyTypeT>::type >::type const& viennagrid::get | ( | collection< TypeMapT > const & | c | ) |
Generic accessor function for accessing the respective value type identified by the provided type from a collection. Const version.
KeyTypeT | The key type for identifying the element inside a collection |
TypeMapT | The typemap used for configuring the collection |
result_of::handle<viennagrid::element<ElementTag1, WrappedConfigType1>, viennagrid::element<ElementTag2, WrappedConfigType2> >::type viennagrid::handle | ( | viennagrid::element< ElementTag1, WrappedConfigType1 > & | element, |
viennagrid::element< ElementTag2, WrappedConfigType2 > & | boundary_element | ||
) |
Function for creating a handle for a given boundary element of a host element. Non-const version.
result_of::handle<MeshOrSegmentHandleT, viennagrid::element<ElementTagT, WrappedConfigT> >::type viennagrid::handle | ( | MeshOrSegmentHandleT & | mesh_or_segment, |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Function for creating a handle for a given element using a mesh/segment object.
MeshOrSegmentHandleT | The host mesh/segment type |
ElementTagT | The tag of the element of which a handle is created |
WrappedConfigT | The wrapped config of the element of which a handle is created |
mesh_or_segment | The host mesh/segment object |
element | The element of which a handle is created |
result_of::const_handle<viennagrid::element<ElementTag1, WrappedConfigType1>, viennagrid::element<ElementTag2, WrappedConfigType2> >::type viennagrid::handle | ( | viennagrid::element< ElementTag1, WrappedConfigType1 > const & | element, |
viennagrid::element< ElementTag2, WrappedConfigType2 > const & | boundary_element | ||
) |
Function for creating a handle for a given boundary element of a host element. Const-version.
result_of::const_handle<MeshOrSegmentHandleT, viennagrid::element<ElementTagT, WrappedConfigT> >::type viennagrid::handle | ( | MeshOrSegmentHandleT const & | mesh_or_segment, |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function for creating a handle for a given element using a mesh/segment object, const version.
MeshOrSegmentHandleT | The host mesh/segment type |
ElementTagT | The tag of the element of which a handle is created |
WrappedConfigT | The wrapped config of the element of which a handle is created |
mesh_or_segment | The host mesh/segment object |
element | The element of which a handle is created |
HandleT viennagrid::handle | ( | MeshOrSegmentHandleT & | , |
HandleT | handle | ||
) |
Function for creating a handle, default implementation -> identity.
MeshOrSegmentHandleT | Wrapped config of the mesh type |
HandleT | Type of the handle |
handle | The handle object |
const HandleT viennagrid::handle | ( | MeshOrSegmentHandleT const & | , |
HandleT | handle | ||
) |
Function for creating a const handle, default implementation -> identity.
MeshOrSegmentHandleT | Wrapped config of the mesh type |
HandleT | Type of the handle |
handle | The handle object |
result_of::handle<segment_handle<SegmentationType>, viennagrid::element<ElementTagT, WrappedConfigT> >::type viennagrid::handle | ( | segment_handle< SegmentationType > & | mesh_or_segment, |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Function for creating a handle for a given element using a mesh/segment object.
MeshOrSegmentHandleT | The host mesh/segment type |
ElementTagT | The tag of the element of which a handle is created |
WrappedConfigT | The wrapped config of the element of which a handle is created |
mesh_or_segment | The host mesh/segment object |
element | The element of which a handle is created |
result_of::const_handle<segment_handle<SegmentationType>, viennagrid::element<ElementTagT, WrappedConfigT> >::type viennagrid::handle | ( | segment_handle< SegmentationType > const & | mesh_or_segment, |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Function for creating a handle for a given element using a mesh/segment object, const version.
MeshOrSegmentHandleT | The host mesh/segment type |
ElementTagT | The tag of the element of which a handle is created |
WrappedConfigT | The wrapped config of the element of which a handle is created |
mesh_or_segment | The host mesh/segment object |
element | The element of which a handle is created |
void viennagrid::handle_mesh | ( | MeshT & | mesh_obj, |
ViewT & | view_obj | ||
) |
Function for inserting handles to all element from a mesh in a mesh view.
MeshT | The mesh or segment type |
ViewT | The mesh view type |
mesh_obj | The input mesh/segment object |
view_obj | The output view object |
result_of::element_range<SomethingT, hexahedron_tag>::type viennagrid::hexahedra | ( | SomethingT & | something | ) |
Function for retrieving a hexahedron range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_element_range<SomethingT, hexahedron_tag>::type viennagrid::hexahedra | ( | SomethingT const & | something | ) |
Function for retrieving a const hexahedron range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
PLCT::appendix_type& viennagrid::hole_points | ( | PLCT & | plc | ) |
Returns the hole points associated with a PLC.
PLCT::appendix_type const& viennagrid::hole_points | ( | PLCT const & | plc | ) |
Returns the hole points associated with a PLC.
void viennagrid::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.
src_mesh | The input mesh |
dst_mesh | The output mesh |
hyperplane_point | A point representing the hyperplane |
hyperplane_normal | The normale vector representing the hyperplane |
numeric_config | The numeric config |
void viennagrid::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.
src_mesh | The input mesh |
src_segmentation | The input segmentation |
dst_mesh | The output mesh |
dst_segmentation | The output segmentation |
hyperplane_point | A point representing the hyperplane |
hyperplane_normal | The normale vector representing the hyperplane |
numeric_config | The numeric config |
viennagrid::result_of::id< typename viennagrid::result_of::element< segment_handle<SegmentationType>, ElementTypeOrTag>::type >::type viennagrid::id_upper_bound | ( | segment_handle< SegmentationType > const & | segment | ) |
Function for obtaining the heighest ID for a specific element type/tag in a segment.
viennagrid::result_of::id< typename viennagrid::result_of::element<MeshOrSegmentHandleT, ElementTypeOrTag>::type >::type viennagrid::id_upper_bound | ( | MeshOrSegmentHandleT const & | mesh_or_segment | ) |
Function for obtaining the heighest ID for a specific element type/tag in a mesh/segment.
ElementTypeOrTag | The element type/tag from which the heighest ID is queried |
MeshOrSegmentHandleT | The mesh/segment type |
mesh_or_segment | The mesh/segment object |
viennagrid::result_of::coord<PointT1>::type viennagrid::inner_prod | ( | PointT1 const & | p1, |
PointT2 const & | p2 | ||
) |
Returns the inner product of two vectors, which can be given in different coordinate systems.
p1 | First vector |
p2 | Second vector |
viennagrid::result_of::coord<PointT1>::type viennagrid::inner_prod_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
CoordinateSystemT1 const & | , | ||
CoordinateSystemT2 const & | |||
) |
Dispatched inner product function having full information about the coordinate systems. Transforms to Cartesian coordinates and forwards the calculation to the worker.
viennagrid::result_of::coord<PointT1>::type viennagrid::inner_prod_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
cartesian_cs< d > | , | ||
cartesian_cs< d > | |||
) |
Dispatched inner product function having full information about the coordinate systems. Vectors/Points are in a Cartesian coordinate system already, thus no transformation required.
bool viennagrid::is_boundary | ( | mesh< WrappedConfigT > const & | mesh_obj, |
ElementT const & | element | ||
) |
Returns true if an element is located on the boundary of the mesh.
mesh_obj | The ViennaGrid mesh |
element | The element |
bool viennagrid::is_boundary | ( | segment_handle< SegmentationT > const & | segment, |
ElementT const & | element | ||
) |
Returns true if an element is located on the boundary of the segment.
segment | The ViennaGrid segment |
element | The element |
bool viennagrid::is_boundary | ( | viennagrid::element< ElementTag1, WrappedConfigT1 > const & | host_element, |
viennagrid::element< ElementTag2, WrappedConfigT2 > const & | element | ||
) |
Returns true if the element provided as second argument is on the boundary of the element provided as first argument.
host_element | The host element |
element | The (potential) boundary element |
bool viennagrid::is_in_segment | ( | SegmentHandleT const & | segment, |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Queries if element is within a given segment.
SegmentHandleT | The segment type which might include the element |
ElementTagT | The element tag of the element which might be included in the segment |
WrappedConfigT | The wrapped config of the element which might be included in the segment |
segment | The segment object which might include the element |
element | The element object which might be included in the segment |
bool viennagrid::is_inside | ( | PointAccessorT const | accessor, |
ElementT const & | element, | ||
spatial_point< CoordType, CoordinateSystem > const & | point, | ||
NumericConfigT | numeric_config | ||
) |
Determines if a given point is inside an element. Returns true if the point is inside the element, false otherwise.
accessor | The point accessor providing point information for geometric calculation |
element | The element to test |
point | The point to test |
numeric_config | The numeric config |
bool viennagrid::is_inside | ( | ElementT const & | element, |
spatial_point< CoordType, CoordinateSystem > const & | point, | ||
NumericConfigT | numeric_config | ||
) |
Determines if a given point is inside an element. Returns true if the point is inside the element, false otherwise.
element | The element to test |
point | The point to test |
numeric_config | The numeric config |
bool viennagrid::is_inside | ( | ElementT const & | element, |
spatial_point< CoordType, CoordinateSystem > const & | point | ||
) |
Determines if a given point is inside an element. Returns true if the point is inside the element, false otherwise.
element | The element to test |
point | The point to test |
bool viennagrid::is_interface | ( | segment_handle< SegmentationT > const & | seg0, |
segment_handle< SegmentationT > const & | seg1, | ||
ElementT const & | element | ||
) |
Returns true if the n-cell is located at the interface between two segments.
seg0 | The first segment |
seg1 | The sevond segment |
element | The element under test |
viennagrid::result_of::handle<MeshT, BoundaryElementTTag>::type viennagrid::largest_boundary_volume | ( | MeshT & | mesh_obj, |
ElementT & | element | ||
) |
Returns a handle to the boundary element with the largest volume.
viennagrid::result_of::const_handle<MeshT, BoundaryElementTTag>::type viennagrid::largest_boundary_volume | ( | MeshT const & | mesh_obj, |
ElementT const & | element | ||
) |
Returns a const handle to the boundary element with the largest volume.
result_of::element_range<SomethingT, line_tag>::type viennagrid::lines | ( | SomethingT & | something | ) |
Function for retrieving a line range object from a host object (same as edges)
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_element_range<SomethingT, line_tag>::type viennagrid::lines | ( | SomethingT const & | something | ) |
Function for retrieving a const line range object from a host object (same as edges)
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
viennagrid::result_of::vertex_handle< viennagrid::element<ElementTagT, WrappedConfigT> >::type viennagrid::local_vertex | ( | viennagrid::element< ElementTagT, WrappedConfigT > & | host_element, |
BoundaryHandleT const & | boundary_element_handle, | ||
std::size_t | index | ||
) |
Function for querying a local vertex on a boundary element within a host element.
ElementTagT | The element tag of the host element type |
WrappedConfigT | The wrapped config of the host element type |
BoundaryHandleT | The handle type of the boundary element |
host_element | The host element object |
boundary_element_handle | The boundary element handle |
index | The index defining which vertex within the boundary element is queried |
viennagrid::result_of::const_vertex_handle< viennagrid::element<ElementTagT, WrappedConfigT> >::type viennagrid::local_vertex | ( | viennagrid::element< ElementTagT, WrappedConfigT > const & | host_element, |
BoundaryHandleT const & | boundary_element_handle, | ||
std::size_t | index | ||
) |
Function for querying a local vertex on a boundary element within a host element, const version.
ElementTagT | The element tag of the host element type |
WrappedConfigT | The wrapped config of the host element type |
BoundaryHandleT | The handle type of the boundary element |
host_element | The host element object |
boundary_element_handle | The boundary element handle |
index | The index defining which vertex within the boundary element is queried |
result_of::accessor<ContainerType, AccessType>::type viennagrid::make_accessor | ( | ContainerType & | container | ) |
Convenience function for returning an accessor for the supplied container. Non-const version.
AccessType | The element type for which data should be accessed (for example a vertex type) |
ContainerType | The container type. Usually not supplied explicitly by the user. |
result_of::accessor<const ContainerType, AccessType>::type viennagrid::make_accessor | ( | ContainerType const & | container | ) |
Convenience function for returning an accessor for the supplied container. Const-version.
AccessType | The element type for which data should be accessed (for example a vertex type) |
ContainerType | The container type. Usually not supplied explicitly by the user. |
result_of::accessor< typename result_of::container_of< ContainerCollectionTypemapT, AccessType >::type, AccessType>::type viennagrid::make_accessor | ( | collection< ContainerCollectionTypemapT > & | collection_obj | ) |
Convenience function for returning an accessor for the supplied container collection. Non-const-version.
AccessType | The element type for which data should be accessed (for example a vertex type) |
ContainerCollectionTypemapT | Configuration typemap for the collection. To be deduced by the compiler, not passed explicitly. |
result_of::accessor< const typename result_of::container_of< ContainerCollectionTypemapT, AccessType >::type, AccessType>::type viennagrid::make_accessor | ( | collection< ContainerCollectionTypemapT > const & | collection_obj | ) |
Convenience function for returning an accessor for the supplied container collection. Const-version.
AccessType | The element type for which data should be accessed (for example a vertex type) |
ContainerCollectionTypemapT | Configuration typemap for the collection. To be deduced by the compiler, not passed explicitly. |
result_of::cell_handle<MeshOrSegmentHandleTypeT>::type viennagrid::make_cell | ( | MeshOrSegmentHandleTypeT & | mesh_segment, |
VertexHandleIteratorT | vertices_begin, | ||
VertexHandleIteratorT const & | vertices_end | ||
) |
Function for creating an cell within a mesh or a segment.
mesh_segment | The mesh or segment object where the cell should be created |
vertices_begin | An iterator pointing to the first vertex handle of the cell |
vertices_end | An iterator defining the end of the vertices |
result_of::cell_handle<MeshOrSegmentHandleTypeT>::type viennagrid::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.
mesh_segment | The mesh or segment object where the cell should be created |
vertices_begin | An iterator pointing to the first vertex handle of the cell |
vertices_end | An iterator defining the end of the vertices |
id | The cell ID to be used for the cell within the mesh or segment |
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)
MeshOrSegmentHandleT | The mesh or segment type where the edge is created |
VertexHandleT | The vertex handle type |
mesh_segment | The mesh or segment object where the edge should be created |
v0 | A handle to the first vertex of the edge |
v1 | A handle to the second vertex of the edge |
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.
ElementTypeOrTagT | The element type/tag to be created |
MeshOrSegmentHandleTypeT | The mesh or segment type where the element is created |
VertexHandleIteratorT | A vertex handle iterator type |
mesh_segment | The mesh or segment object where the element should be created |
array_start | An iterator pointing to the first vertex handle of the element |
array_end | An iterator defining the end of the vertices |
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.
ElementTypeOrTagT | The element type/tag to be created |
MeshOrSegmentHandleTypeT | The mesh or segment type where the element is created |
VertexHandleIteratorT | A vertex handle iterator type |
mesh_segment | The mesh or segment object where the element should be created |
array_start | An iterator pointing to the first vertex handle of the element |
array_end | An iterator defining the end of the vertices |
id | The id of the new element |
result_of::field<ContainerType, AccessType>::type viennagrid::make_field | ( | ContainerType & | container | ) |
Convenience function for creating a suitable field out of a container. Non-const version.
AccessType | The element for which the container is accessed |
ContainerType | Type of the container. Possible types: std::vector, std::deque, std::map |
result_of::field<const ContainerType, AccessType>::type viennagrid::make_field | ( | ContainerType const & | container | ) |
Convenience function for creating a suitable field out of a container. Const-version.
AccessType | The element for which the container is accessed |
ContainerType | Type of the container. Possible types: std::vector, std::deque, std::map |
result_of::field< typename result_of::container_of< ContainerCollectionTypemapT, AccessType >::type, AccessType>::type viennagrid::make_field | ( | collection< ContainerCollectionTypemapT > & | collection_obj | ) |
Convenience function for creating a suitable field out of a collection of containers. Non-const-version.
AccessType | The element for which the container is accessed |
ContainerType | Type of the container. Possible types: std::vector, std::deque, std::map |
result_of::field< const typename result_of::container_of< ContainerCollectionTypemapT, AccessType >::type, AccessType>::type viennagrid::make_field | ( | collection< ContainerCollectionTypemapT > const & | collection_obj | ) |
Convenience function for creating a suitable field out of a collection of containers. Const-version.
AccessType | The element for which the container is accessed |
ContainerType | Type of the container. Possible types: std::vector, std::deque, std::map |
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.
MeshOrSegmentHandleT | The mesh or segment type where the hexahedron is created |
VertexHandleT | The vertex handle type |
mesh_segment | The mesh or segment object where the hexahedron should be created |
v0 | A handle to the first vertex of the hexahedron |
v1 | A handle to the second vertex of the hexahedron |
v2 | A handle to the third vertex of the hexahedron |
v3 | A handle to the forth vertex of the hexahedron |
v4 | A handle to the fifth vertex of the hexahedron |
v5 | A handle to the sixth vertex of the hexahedron |
v6 | A handle to the seventh vertex of the hexahedron |
v7 | A handle to the eighth vertex of the hexahedron |
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)
MeshOrSegmentHandleT | The mesh or segment type where the line is created |
VertexHandleT | The vertex handle type |
mesh_segment | The mesh or segment object where the line should be created |
v0 | A handle to the first vertex of the line |
v1 | A handle to the second vertex of the line |
result_of::plc_handle<MeshOrSegmentHandleTypeT>::type viennagrid::make_plc | ( | MeshOrSegmentHandleTypeT & | mesh_obj, |
LineHandleIteratorT | lines_begin, | ||
LineHandleIteratorT | lines_end, | ||
VertexHandleIteratorT | loose_vertices_begin, | ||
VertexHandleIteratorT | loose_vertices_end | ||
) |
result_of::plc_handle<MeshOrSegmentHandleTypeT>::type viennagrid::make_plc | ( | MeshOrSegmentHandleTypeT & | mesh_obj, |
LineHandleIteratorT | lines_begin, | ||
LineHandleIteratorT | lines_end | ||
) |
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.
MeshOrSegmentHandleT | The mesh or segment type where the PLC is created |
LineHandleIteratorT | A line handle iterator type |
VertexHandleIteratorT | A vertex handle iterator type |
PointIteratorT | A point handle iterator type |
mesh_segment | The mesh or segment object where the PLC should be created |
lines_begin | An iterator pointing to the first line handle of the PLC |
lines_end | An iterator defining the end of the lines |
loose_vertices_begin | An iterator pointing to the first loose vertex handle of the PLC |
loose_vertices_end | An iterator defining the end of the loose vertices |
hole_points_begin | An iterator pointing to the first hole point of the PLC |
hole_points_end | An iterator defining the end of the hole points |
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.
MeshOrSegmentHandleT | The mesh or segment type where the quadrilateral is created |
VertexHandleT | The vertex handle type |
mesh_segment | The mesh or segment object where the quadrilateral should be created |
v0 | A handle to the first vertex of the quadrilateral |
v1 | A handle to the second vertex of the quadrilateral |
v2 | A handle to the third vertex of the quadrilateral |
v3 | A handle to the forth vertex of the quadrilateral |
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.
MeshOrSegmentHandleT | The mesh or segment type where the tetrahedron is created |
VertexHandleT | The vertex handle type |
mesh_segment | The mesh or segment object where the tetrahedron should be created |
v0 | A handle to the first vertex of the tetrahedron |
v1 | A handle to the second vertex of the tetrahedron |
v2 | A handle to the third vertex of the tetrahedron |
v3 | A handle to the forth vertex of the tetrahedron |
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.
MeshOrSegmentHandleT | The mesh or segment type where the triangle is created |
VertexHandleT | The vertex handle type |
mesh_segment | The mesh or segment object where the triangle should be created |
v0 | A handle to the first vertex of the triangle |
v1 | A handle to the second vertex of the triangle |
v2 | A handle to the third vertex of the triangle |
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.
MeshOrSegmentHandleT | The mesh or segment type where the vertex is created |
mesh_segment | The mesh or segment object where the vertex should be created |
point | The point which corresponds to the created vertex |
tolerance | The tolerance of the 2-norm for checking if two points are equal, is ignored if tolerance is less of equal to zero |
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.
MeshOrSegmentHandleT | The mesh or segment type where the vertex is created |
mesh_segment | The mesh or segment object where the vertex should be created |
p | The point which corresponds to the created vertex |
result_of::vertex_handle< MeshOrSegmentHandleTypeT >::type make_vertex | ( | MeshOrSegmentHandleTypeT & | mesh_segment | ) |
Function for creating a vertex within a mesh or a segment.
MeshOrSegmentHandleT | The mesh or segment type where the vertex is created |
mesh_segment | The mesh or segment object where the vertex should be created |
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.
MeshOrSegmentHandleT | The mesh or segment type where the vertex is created |
mesh_segment | The mesh or segment object where the vertex should be created |
point | The point which corresponds to the created vertex |
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.
MeshOrSegmentHandleT | The mesh or segment type where the vertex is created |
mesh_segment | The mesh or segment object where the vertex should be created |
id | The id of the new vertex |
point | The point which corresponds to the created vertex |
mesh_proxy< viennagrid::mesh<WrappedConfigT> > viennagrid::make_view | ( | viennagrid::mesh< WrappedConfigT > & | mesh_obj | ) |
Creates a view out of a mesh using the mesh_proxy object.
MeshOrSegmentHandleT | The mesh or segment type from which the mesh view is created |
mesh_obj | The mesh or segment object from which the mesh view is created |
mesh_proxy< typename SegmentationT::view_type > make_view | ( | segment_handle< SegmentationT > & | segment | ) |
Creates an empty view out of a segment.
Creates a view out of a mesh using the mesh_proxy object.
SegmentationT | The segmentation type from which the mesh view is created |
segment | The segment object from which the mesh view is created |
void viennagrid::mark_all_edge_refinement | ( | mesh< WrappedMeshConfigInT > const & | mesh_in, |
EdgeRefinementFlagAccessorT | edge_refinement_flag_accessor | ||
) |
Mark all edges for refinement -> unform refinement.
void viennagrid::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.
void viennagrid::mark_erase_elements | ( | MeshT & | mesh_obj, |
MeshViewT & | elements_to_erase, | ||
HandleT | host_element | ||
) |
Tags all elements connected to a given host_element for erasure. Call erase_element on 'elements_to_erase' to finally delete them.
void mark_referencing_elements | ( | MeshT & | mesh_obj, |
MeshViewT & | element_view, | ||
HandleT | host_element | ||
) |
Marks elements which reference a given host element.
MeshT | The mesh type in which the element to erase lives |
MeshViewT | The mesh view type for all elements to erase |
HandleT | The handle type of the element to delete |
mesh_obj | The host mesh object |
element_view | A mesh view which stores all elements to be marked |
host_element | A handle object of the host element |
spatial_point<CoordType, CoordinateSystem> viennagrid::max | ( | const spatial_point< CoordType, CoordinateSystem > & | p1, |
const spatial_point< CoordType, CoordinateSystem > & | p2 | ||
) |
Returns the pointwise maximum point of two points, i.e. result[i] = max(x[i], y[i]) for all i.
viennagrid::result_of::coord<MeshT>::type viennagrid::mesh_size | ( | MeshT const & | mesh | ) |
Calculates the size of a mesh: ||bounding_box.min - bounding_box.max||.
mesh | The input mesh |
spatial_point<CoordType, CoordinateSystem> viennagrid::min | ( | const spatial_point< CoordType, CoordinateSystem > & | p1, |
const spatial_point< CoordType, CoordinateSystem > & | p2 | ||
) |
Returns the pointwise minimum point of two points, i.e. result[i] = min(x[i], y[i]) for all i.
result_of::neighbor_range< viennagrid::mesh< WrappedConfigT >, ElementTypeOrTagT, ConnectorElementTypeOrTagT >::type neighbor_elements | ( | viennagrid::mesh< WrappedConfigT > & | mesh_obj, |
ElementOrHandleT const & | element_or_handle | ||
) |
Obtaines a neighbor range of an element within a mesh. This function caches the neighbor information and re-creates it if the cached information is out of date. The worst case runtime of a re-creation is linear in the number of elements of type ConnectorElementTypeOrTagT time the number of elements of type ElementTypeOrTagT within the mesh.
ElementTypeOrTagT | The base element type/tag from which the neighbor range is obtained |
ConnectorElementTypeOrTagT | The connector element type/tag |
WrappedConfigT | The wrapped config of the mesh |
ElementOrHandleT | The element or handle type for which the neighbor range is obtained |
mesh_obj | The host mesh object in which the elements of the neighbor range exist |
element_or_handle | A handle or the element for which the neighbor range is obained |
result_of::const_neighbor_range< viennagrid::mesh< WrappedConfigT >, ElementTypeOrTagT, ConnectorElementTypeOrTagT >::type neighbor_elements | ( | viennagrid::mesh< WrappedConfigT > const & | mesh_obj, |
ElementOrHandleT const & | element_or_handle | ||
) |
Obtaines a const neighbor range of an element within a mesh. This function caches the neighbor information and re-creates it if the cached information is out of date. The worst case runtime of a re-creation is linear in the number of elements of type ConnectorElementTypeOrTagT time the number of elements of type ElementTypeOrTagT within the mesh.
ElementTypeOrTagT | The base element type/tag from which the neighbor range is obtained |
ConnectorElementTypeOrTagT | The connector element type/tag |
WrappedConfigT | The wrapped config of the mesh |
ElementOrHandleT | The element or handle type for which the neighbor range is obtained |
mesh_obj | The host mesh object in which the elements of the neighbor range exist |
element_or_handle | A handle or the element for which the neighbor range is obained |
result_of::neighbor_range< segment_handle< SegmentationT >, ElementTypeOrTagT, ConnectorElementTypeOrTagT >::type neighbor_elements | ( | segment_handle< SegmentationT > & | segment, |
ElementOrHandleT const & | element_or_handle | ||
) |
Obtaines a neighbor range of an element within a segment. This function caches the neighbor information and re-creates it if the cached information is out of date. The worst case runtime of a re-creation is linear in the number of elements of type ConnectorElementTypeOrTagT time the number of elements of type ElementTypeOrTagT within the segment.
ElementTypeOrTagT | The base element type/tag from which the neighbor range is obtained |
ConnectorElementTypeOrTagT | The connector element type/tag |
SegmentationT | The segmentation type of the segment type |
ElementOrHandleT | The element or handle type for which the neighbor range is obtained |
segment | The host segment object in which the elements of the neighbor range exist |
element_or_handle | A handle or the element for which the neighbor range is obained |
result_of::const_neighbor_range< segment_handle< SegmentationT >, ElementTypeOrTagT, ConnectorElementTypeOrTagT >::type neighbor_elements | ( | segment_handle< SegmentationT > const & | segment, |
ElementOrHandleT const & | element_or_handle | ||
) |
Obtaines a const neighbor range of an element within a segment. This function caches the neighbor information and re-creates it if the cached information is out of date. The worst case runtime of a re-creation is linear in the number of elements of type ConnectorElementTypeOrTagT time the number of elements of type ElementTypeOrTagT within the segment.
ElementTypeOrTagT | The base element type/tag from which the neighbor range is obtained |
ConnectorElementTypeOrTagT | The connector element type/tag |
SegmentationT | The segmentation type of the segment type |
ElementOrHandleT | The element or handle type for which the neighbor range is obtained |
segment | The host segment object in which the elements of the neighbor range exist |
element_or_handle | A handle or the element for which the neighbor range is obained |
viennagrid::result_of::coord<PointT>::type viennagrid::norm | ( | PointT const & | p, |
Tag | |||
) |
Returns the norm of a point. The type of the norm is specified by a tag. Supported tags are one_norm_tag, two_norm_tag and inf_norm_tag.
p | The vector (point) for which the norm should be computed. |
viennagrid::result_of::coord<PointT>::type viennagrid::norm | ( | PointT const & | p | ) |
Returns the 2-norm of a point. Result is such as if the point were transformed to Cartesian coordinates first.
viennagrid::result_of::coord<PointT>::type viennagrid::norm_1 | ( | PointT const & | p | ) |
Convenience shortcut for the 1-norm of a vector.
viennagrid::result_of::coord<PointT>::type viennagrid::norm_2 | ( | PointT const & | p | ) |
Convenience shortcut for the 2-norm of a vector.
viennagrid::result_of::coord<PointT>::type viennagrid::norm_impl | ( | PointT const & | p, |
CoordinateSystemT const & | |||
) |
Dispatch for a point that needs coordinate conversion.
viennagrid::result_of::coord<PointT1>::type viennagrid::norm_impl | ( | PointT1 const & | p, |
cartesian_cs< d > | |||
) |
Dispatch for a point that does not need coordinate conversion.
viennagrid::result_of::coord<PointT>::type viennagrid::norm_inf | ( | PointT const & | p | ) |
Convenience shortcut for the inf-norm of a vector.
PointAccessorT::value_type viennagrid::normal_vector | ( | PointAccessorT const | point_accessor, |
ElementT const & | element | ||
) |
Calculates the normal vector of an element.
point_accessor | Point accessor for input points |
element | The input element |
viennagrid::result_of::point<ElementT>::type viennagrid::normal_vector | ( | ElementT const & | element | ) |
Calculates the normal vector of an element.
element | The input element |
bool viennagrid::operator!= | ( | const static_array< T, N > & | x, |
const static_array< T, N > & | y | ||
) |
spatial_point<CoordType, CoordinateSystem> viennagrid::operator* | ( | double | val, |
spatial_point< CoordType, CoordinateSystem > const & | p | ||
) |
Overload for stretching a vector from the left.
bool viennagrid::operator< | ( | const static_array< T, N > & | x, |
const static_array< T, N > & | y | ||
) |
std::ostream& viennagrid::operator<< | ( | std::ostream & | os, |
spatial_point< CoordType, CoordinateSystem > const & | p | ||
) |
Overload of the output stream operator. Allows simple printing to screen or streaming to file.
std::ostream& viennagrid::operator<< | ( | std::ostream & | os, |
viennagrid::null_type | |||
) | [inline] |
std::ostream& viennagrid::operator<< | ( | std::ostream & | os, |
viennagrid::element< vertex_tag, WrappedConfigType > const & | el | ||
) |
Overload for the output streaming operator for the vertex type.
std::ostream& viennagrid::operator<< | ( | std::ostream & | os, |
viennagrid::element< element_tag, WrappedConfigType > const & | el | ||
) |
Overload for the output streaming operator.
bool viennagrid::operator<= | ( | const static_array< T, N > & | x, |
const static_array< T, N > & | y | ||
) |
bool viennagrid::operator== | ( | const static_array< T, N > & | x, |
const static_array< T, N > & | y | ||
) |
bool viennagrid::operator> | ( | const static_array< T, N > & | x, |
const static_array< T, N > & | y | ||
) |
bool viennagrid::operator>= | ( | const static_array< T, N > & | x, |
const static_array< T, N > & | y | ||
) |
std::size_t viennagrid::orthogonalize | ( | IteratorT | start, |
IteratorT | end, | ||
NumericConfigT | nc | ||
) |
Makes a set of vectors orthogonal (Gram–Schmidt process step).
If linearly dependent vectors are encountered, they are moved/swapped to the end of the sequence.
start | The begin vector iterator of the vector set to orthogonalize |
end | The end vector iterator of the vector set to orthogonalize |
nc | Numeric config |
VectorT viennagrid::orthogonalize_vector | ( | VectorIteratorT | it, |
VectorIteratorT const & | end, | ||
VectorT | vec | ||
) |
Makes a vector orthogonal to a set of linearly independent orthogonal vectors (Gram–Schmidt process step)
it | The begin vector iterator of the linearly independent orthogonal vector set |
end | The end vector iterator of the linearly independent orthogonal vector set |
vec | The vector to orthogonalize |
result_of::element_range<SomethingT, plc_tag>::type viennagrid::plcs | ( | SomethingT & | something | ) |
Function for retrieving a PLC range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_element_range<SomethingT, plc_tag>::type viennagrid::plcs | ( | SomethingT const & | something | ) |
Function for retrieving a const PLC range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::point< segment_handle<SegmentationType> >::type& viennagrid::point | ( | segment_handle< SegmentationType > & | segment, |
typename result_of::vertex< typename SegmentationType::mesh_type >::type & | vertex | ||
) |
Function for obtaining the point from a vertex.
SegmentationType | Segmentation type of the segment type |
segment | The host segment object |
vertex | The vertex of which the point is obtained |
result_of::point< segment_handle<SegmentationType> >::type const& viennagrid::point | ( | segment_handle< SegmentationType > const & | segment, |
typename result_of::vertex< typename SegmentationType::mesh_type >::type const & | vertex | ||
) |
Function for obtaining the point from a vertex, const version.
SegmentationType | Segmentation type of the segment type |
segment | The host segment object |
vertex | The vertex of which the point is obtained |
result_of::point< segment_handle<SegmentationType> >::type& viennagrid::point | ( | segment_handle< SegmentationType > & | segment, |
typename result_of::vertex_handle< typename SegmentationType::mesh_type >::type | vertex_handle | ||
) |
Function for obtaining the point from a vertex.
SegmentationType | Segmentation type of the segment type |
segment | The host segment object |
vertex_handle | A handle to the vertex of which the point is obtained |
result_of::point< segment_handle<SegmentationType> >::type const& viennagrid::point | ( | segment_handle< SegmentationType > const & | segment, |
typename result_of::const_vertex_handle< typename SegmentationType::mesh_type >::type | vertex_handle | ||
) |
Function for obtaining the point from a vertex, const version.
SegmentationType | Segmentation type of the segment type |
segment | The host segment object |
vertex_handle | A handle to the vertex of which the point is obtained |
result_of::point< viennagrid::mesh<WrappedConfigT> >::type& viennagrid::point | ( | viennagrid::mesh< WrappedConfigT > & | , |
typename result_of::vertex< viennagrid::mesh< WrappedConfigT > >::type & | vertex | ||
) |
Function for obtaining the point from a vertex.
WrappedConfigT | Wrapped config of the host mesh type |
vertex | The vertex of which the point is obtained |
result_of::point< viennagrid::mesh<WrappedConfigT> >::type const& viennagrid::point | ( | mesh< WrappedConfigT > const & | , |
typename result_of::vertex< viennagrid::mesh< WrappedConfigT > >::type const & | vertex | ||
) |
Function for obtaining the point from a vertex, const version.
WrappedConfigT | Wrapped config of the host mesh type |
vertex | The vertex of which the point is obtained |
result_of::point< viennagrid::mesh<WrappedConfigT> >::type& viennagrid::point | ( | mesh< WrappedConfigT > & | mesh_obj, |
typename result_of::vertex_handle< viennagrid::mesh< WrappedConfigT > >::type | vertex_handle | ||
) |
Function for obtaining the point from a vertex.
WrappedConfigT | Wrapped config of the host mesh type |
mesh_obj | The host mesh object |
vertex_handle | A handle to the vertex of which the point is obtained |
result_of::point< viennagrid::mesh<WrappedConfigT> >::type const& viennagrid::point | ( | mesh< WrappedConfigT > const & | mesh_obj, |
typename result_of::const_vertex_handle< viennagrid::mesh< WrappedConfigT > >::type | vertex_handle | ||
) |
Function for obtaining the point from a vertex, const version.
WrappedConfigT | Wrapped config of the host mesh type |
mesh_obj | The host mesh object |
vertex_handle | A handle to the vertex of which the point is obtained |
result_of::point< VertexT >::type& viennagrid::point | ( | VertexT & | vertex | ) |
Function for obtaining the point from a vertex, no mesh needed.
VertexT | The vertex type |
vertex | The vertex of which the point is obtained |
result_of::point< VertexT >::type const& viennagrid::point | ( | VertexT const & | vertex | ) |
Function for obtaining the point from a vertex, no mesh needed, const version.
VertexT | The vertex type |
vertex | The vertex of which the point is obtained |
result_of::element_range<SomethingT, polygon_tag>::type viennagrid::polygons | ( | SomethingT & | something | ) |
Function for retrieving a polygon range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_element_range<SomethingT, polygon_tag>::type viennagrid::polygons | ( | SomethingT const & | something | ) |
Function for retrieving a const polygon range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::element_range<SomethingT, quadrilateral_tag>::type viennagrid::quadrilaterals | ( | SomethingT & | something | ) |
Function for retrieving a quadrilaterals range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_element_range<SomethingT, quadrilateral_tag>::type viennagrid::quadrilaterals | ( | SomethingT const & | something | ) |
Function for retrieving a const quadrilateral range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
void viennagrid::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 | ||
) |
Transfers data defined on 'source' elements to 'destination' elements. For example, values defined on cells are tranferred to vertices.
Even though this functionality is sometimes referred to as interpolation, it is not an interpolation in the strict mathematical sense.
SourceTypeOrTag | Topological source element or tag, e.g., cell_tag |
DestinationTypeOrTag | Topological destination element or tag, e.g., vertex_tag |
mesh_or_segment | A mesh or segment, in which the source and destination elements reside |
accessor_src | An accessor functor for retrieving the data defined on each source element |
setter_dest | A setter for storing the data on each destination element (first argument is the destination n-cell, second argument is the value) |
averager | A functor which computes the value of the destination element from an STL-compatible container holding the values of all adjacent source elements |
filter_src | A functor which returns true for all source elements considered for the transfer, false otherwise |
filter_dest | A functor which returns true for all destination elements considered for the transfer, false otherwise |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
point_accessor_in | Point accessor for input points |
vertex_copy_map_ | A vertex copy map for identifying vertices |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
edge_to_vertex_handle_accessor | Temporary accessor for refined edge to vertex mapping |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
point_accessor_in | Point accessor for input points |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
point_accessor_in | Point accessor for input points |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
vertex_copy_map_ | A vertex copy map for identifying vertices |
edge_to_vertex_handle_accessor | Temporary accessor for refined edge to vertex mapping |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
point_accessor_in | Point accessor for input points |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
point_accessor_in | Point accessor for input points |
vertex_copy_map_ | A vertex copy map for identifying vertices |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
edge_to_vertex_handle_accessor | Temporary accessor for refined edge to vertex mapping |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
point_accessor_in | Point accessor for input points |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
void viennagrid::refine_uniformly | ( | mesh< WrappedMeshConfigInT > const & | mesh_in, |
mesh< WrappedMeshConfigOutT > & | mesh_out | ||
) |
Public interface for uniform refinement of a mesh.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
point_accessor_in | Point accessor for input points |
vertex_copy_map_ | A vertex copy map for identifying vertices |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
edge_to_vertex_handle_accessor | Temporary accessor for refined edge to vertex mapping |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
point_accessor_in | Point accessor for input points |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
edge_refinement_flag_accessor | Accessor storing flags if an edge is marked for refinement |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
void viennagrid::scale | ( | MeshT & | mesh, |
ScalarT | factor, | ||
PointType const & | scaling_center | ||
) |
Function for scaling a mesh, uses scale_functor.
mesh | The input mesh |
factor | The scaling factor |
scaling_center | The center of the scaling operation |
void viennagrid::scale | ( | MeshT & | mesh, |
ScalarT | factor | ||
) |
Function for scaling a mesh, uses scale_functor. Scaling center is the origin.
mesh | The input mesh |
factor | The scaling factor |
viennagrid::result_of::container_of< typename viennagrid::detail::result_of::lookup< typename SegmentHandleT::segmentation_type::appendix_type, viennagrid::detail::element_segment_mapping_tag >::type, viennagrid::element<ElementTagT, WrappedConfigT> >::type::value_type::segment_element_info_type const* viennagrid::segment_element_info | ( | SegmentHandleT const & | segment, |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Returns a pointer to additional segment element information. Segment element information is meta information for a combination of a segment and an element, e.g. the orientation of a triangle in a segment in a 3D hull mesh.
SegmentHandleT | The segment type |
ElementTagT | The element tag of the element |
WrappedConfigT | The wrapped config of the element |
segment | The segment object |
element | The element object |
viennagrid::result_of::container_of< typename viennagrid::detail::result_of::lookup< typename SegmentHandleT::segmentation_type::appendix_type, viennagrid::detail::element_segment_mapping_tag >::type, viennagrid::element<ElementTagT, WrappedConfigT> >::type::value_type::segment_element_info_type* viennagrid::segment_element_info | ( | SegmentHandleT & | segment, |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Returns a pointer to additional segment element information. Segment element information is meta information for a combination of a segment and an element, e.g. the orientation of a triangle in a segment in a 3D hull mesh. Const version.
SegmentHandleT | The segment type |
ElementTagT | The element tag of the element |
WrappedConfigT | The wrapped config of the element |
segment | The segment object |
element | The element object |
result_of::segment_id_range< SegmentationT, viennagrid::element<ElementTagT, WrappedConfigT> >::type viennagrid::segment_ids | ( | SegmentationT const & | segmentation, |
viennagrid::element< ElementTagT, WrappedConfigT > const & | element | ||
) |
Obtains the segment ID range of an element within a segmentation. The segment ID range holds all IDs of segments in which the element is included.
SegmentationT | The host segmentation type |
ElementTagT | The element tag of the element for which the segment ID range is obtained |
WrappedConfigT | The wrapped config of the element for which the segment ID range is obtained |
segmentation | The host segmentation object |
element | The element object for which the segment ID range is obtained |
void viennagrid::set_base_container | ( | base_container_collection_type & | base_container_collection, |
view_container_collection_type & | view_container_collection | ||
) |
Sets the reference to the parent container for a view. Also supports views of views, etc.
void viennagrid::set_vertex | ( | viennagrid::element< ElementTag, WrappedConfigType > & | element, |
VertexHandleType | vertex_handle, | ||
unsigned int | pos | ||
) |
Function for setting a vertex within an element. Don't use this unless you know what you are doing!
ElementTag | Element tag of the host element type |
WrappedConfigType | Wrapped config of the host element type |
VertexHandleType | Vertex handle type |
element | The host element object where the vertex is to be set |
vertex_handle | A vertex handle which is to be used in the host element |
pos | The position of the vertex to be set within the host element |
viennagrid::result_of::coord<PointT1>::type viennagrid::signed_spanned_volume | ( | PointT1 const & | p1, |
PointT2 const & | p2 | ||
) |
Returns the volume of the 1-simplex (line) spanned by the two points.
viennagrid::result_of::coord<PointT1>::type viennagrid::signed_spanned_volume | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
PointT3 const & | p3 | ||
) |
Returns the two-dimensional volume of the 2-simplex (triangle) spanned by the three points.
viennagrid::result_of::coord<PointT1>::type viennagrid::signed_spanned_volume | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
PointT3 const & | p3, | ||
PointT4 const & | p4 | ||
) |
Returns the three-dimensional volume of the 3-simplex (tetrahedron) spanned by the four points.
viennagrid::result_of::coord<PointT1>::type viennagrid::signed_spanned_volume_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
CoordinateSystemT1 const & | , | ||
CoordinateSystemT2 const & | |||
) |
Dispatch facility for two points with possibly different coordinate systems.
viennagrid::result_of::coord<PointT1>::type viennagrid::signed_spanned_volume_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
PointT3 const & | p3, | ||
CoordinateSystemT1 const & | , | ||
CoordinateSystemT2 const & | , | ||
CoordinateSystemT3 const & | |||
) |
Dispatch facility for three points with possibly different coordinate systems.
viennagrid::result_of::coord<PointT1>::type viennagrid::signed_spanned_volume_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
PointT3 const & | p3, | ||
PointT4 const & | p4, | ||
CoordinateSystemT1 const & | , | ||
CoordinateSystemT2 const & | , | ||
CoordinateSystemT3 const & | , | ||
CoordinateSystemT4 const & | |||
) |
Dispatch facility for four points with possibly different coordinate systems.
viennagrid::result_of::coord<PointT1>::type viennagrid::signed_spanned_volume_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
cartesian_cs< DimV > | , | ||
cartesian_cs< DimV > | |||
) |
Dispatch facility for two points in Cartesian coordinates.
viennagrid::result_of::coord<PointT1>::type viennagrid::signed_spanned_volume_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
PointT3 const & | p3, | ||
cartesian_cs< DimV > | , | ||
cartesian_cs< DimV > | , | ||
cartesian_cs< DimV > | |||
) |
Dispatch facility for three points in Cartesian coordinates.
viennagrid::result_of::coord<PointT1>::type viennagrid::signed_spanned_volume_impl | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
PointT3 const & | p3, | ||
PointT4 const & | p4, | ||
cartesian_cs< DimV > | , | ||
cartesian_cs< DimV > | , | ||
cartesian_cs< DimV > | , | ||
cartesian_cs< DimV > | |||
) |
Dispatch facility for four points in Cartesian coordinates.
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
mesh_out | Output refined mesh |
vertex_copy_map_ | A vertex copy map for identifying vertices |
edge_refinement_flag_accessor | An accessor defining which edge should be refined. operator() takes an edge and returns a bool. |
edge_to_vertex_handle_accessor | An accessor defining the vertex handle of an edge to refine. operator() takes an edge and returns a vertex handle. |
void viennagrid::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.
ElementTypeOrTagT | The element type/tag which elements are refined |
mesh_in | Input mesh |
segmentation_in | Input segmentation |
mesh_out | Output refined mesh |
segmentation_out | Output refined segmentation |
vertex_copy_map_ | A vertex copy map for identifying vertices |
edge_refinement_flag_accessor | An accessor defining which edge should be refined. operator() takes an edge and returns a bool. |
edge_to_vertex_handle_accessor | An accessor defining the vertex handle of an edge to refine. operator() takes an edge and returns a vertex handle. |
viennagrid::result_of::handle<MeshT, BoundaryElementTTag>::type viennagrid::smallest_boundary_volume | ( | MeshT & | mesh_obj, |
ElementT & | element | ||
) |
Returns a handle to the boundary element with the smallest volume.
viennagrid::result_of::const_handle<MeshT, BoundaryElementTTag>::type viennagrid::smallest_boundary_volume | ( | MeshT const & | mesh_obj, |
ElementT const & | element | ||
) |
Returns a const handle to the boundary element with the smallest volume.
viennagrid::result_of::coord<PointT>::type viennagrid::solid_angle | ( | PointT const & | a, |
PointT const & | b, | ||
PointT const & | c | ||
) |
Implementation of the spanned (solid) angle by three points with respect to the origin (the solid angle defined by the tetrahedron (a, b, c, origin)
viennagrid::result_of::coord<PointT>::type viennagrid::solid_angle | ( | PointT const & | p0, |
PointT const & | p1, | ||
PointT const & | p2, | ||
PointT const & | origin | ||
) |
Implementation of the solid angle from an origin to p0, p1 and p2.
viennagrid::result_of::coord<PointT1>::type viennagrid::spanned_volume | ( | PointT1 const & | p1, |
PointT2 const & | p2 | ||
) |
Returns the volume of the 1-simplex (line) spanned by the two points.
viennagrid::result_of::coord<PointT1>::type viennagrid::spanned_volume | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
PointT3 const & | p3 | ||
) |
Returns the two-dimensional volume of the 2-simplex (triangle) spanned by the three points.
viennagrid::result_of::coord<PointT1>::type viennagrid::spanned_volume | ( | PointT1 const & | p1, |
PointT2 const & | p2, | ||
PointT3 const & | p3, | ||
PointT4 const & | p4 | ||
) |
Returns the three-dimensional volume of the 3-simplex (tetrahedron) spanned by the four points.
viennagrid::result_of::coord< typename PointAccessorT::value_type >::type viennagrid::surface | ( | PointAccessorT const | accessor, |
viennagrid::element< ElementTag, WrappedConfigT > const & | element | ||
) |
Returns the surface of a n-cell using the provided point accessor to obtain the spatial points from each vertex.
viennagrid::result_of::coord< viennagrid::element<ElementTag, WrappedConfigT> >::type viennagrid::surface | ( | viennagrid::element< ElementTag, WrappedConfigT > const & | element | ) |
Returns the surface of a n-cell using the default point accessor.
viennagrid::result_of::coord< mesh<WrappedConfigT> >::type viennagrid::surface | ( | mesh< WrappedConfigT > const & | d | ) |
Returns the surface of a mesh with explicit element type/tag.
viennagrid::result_of::coord< mesh<WrappedConfigT> >::type viennagrid::surface | ( | mesh< WrappedConfigT > const & | d | ) |
Returns the surface of a mesh.
viennagrid::result_of::coord< typename SegmentationT::mesh_type >::type viennagrid::surface | ( | segment_handle< SegmentationT > const & | segment | ) |
Returns the surface of a segment.
void viennagrid::swap | ( | static_array< T, N > & | x, |
static_array< T, N > & | y | ||
) | [inline] |
Swaps the entries of the two arrays.
result_of::element_range<SomethingT, tetrahedron_tag>::type viennagrid::tetrahedra | ( | SomethingT & | something | ) |
Function for retrieving a tetrahedron range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_element_range<SomethingT, tetrahedron_tag>::type viennagrid::tetrahedra | ( | SomethingT const & | something | ) |
Function for retrieving a const tetrahedron range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::cartesian_point<PointType>::type viennagrid::to_cartesian | ( | PointType const & | p | ) |
Convenience function for converting a point to Cartesian coordinates.
PointType | A point type for which the result_of::coordinate_system<> metafunction can deduce the coordinate system |
result_of::cartesian_point<PointType>::type viennagrid::to_cartesian_impl | ( | PointType const & | p, |
CoordinateSystem const & | |||
) |
Helper function for the conversion to Cartesian coordinates. Should not be called directly. Use to_cartesian() instead.
PointType const& viennagrid::to_cartesian_impl | ( | PointType const & | p, |
cartesian_cs< d > | |||
) |
Helper function for the transformation of any point to Cartesian coordinates. Should not be called directly - use to_cartesian() instead.
PointType& viennagrid::to_cartesian_impl | ( | PointType & | p, |
cartesian_cs< d > | |||
) |
Helper function for the transformation of any point to Cartesian coordinates. Should not be called directly - use to_cartesian() instead.
result_of::element_range<SomethingT, triangle_tag>::type viennagrid::triangles | ( | SomethingT & | something | ) |
Function for retrieving a triangle range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_element_range<SomethingT, triangle_tag>::type viennagrid::triangles | ( | SomethingT const & | something | ) |
Function for retrieving a const triangles range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
void viennagrid::unchecked_add | ( | SegmentHandleT & | segment, |
viennagrid::element< ElementTagT, WrappedConfigT > & | element | ||
) |
Adds an element to a segment, all boundary elements are added recursively, does guarantee that elements are only present once within the segment.
SegmentHandleT | The segment type |
ElementTagT | The element tag of the element |
WrappedConfigT | The wrapped config of the element |
segment | The segment object to which the elemen is added |
element | The element object to be added |
void viennagrid::unchecked_add | ( | SegmentHandleT & | segment, |
ElementHandleT | element_handle | ||
) |
Adds an element to a segment, all boundary elements are added recursively, does guarantee that elements are only present once within the segment.
SegmentHandleT | The segment type |
ElementHandleT | The element handle type |
segment | The segment object to which the elemen is added |
element_handle | A handle of the element object to be added |
result_of::element_range<SomethingT, vertex_tag>::type viennagrid::vertices | ( | SomethingT & | something | ) |
Function for retrieving a vertex range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
result_of::const_element_range<SomethingT, vertex_tag>::type viennagrid::vertices | ( | SomethingT const & | something | ) |
Function for retrieving a const vertex range object from a host object.
SomethingT | The host type, can be an element, a collection, a mesh, a segment or a segmentation |
something | The host object of type SomethingT |
viennagrid::result_of::coord< typename PointAccessorT::value_type >::type viennagrid::volume | ( | PointAccessorT const | accessor, |
ElementT const & | cell | ||
) |
Returns the n-dimensional volume of a n-cell.
viennagrid::result_of::coord< viennagrid::element<ElementTag, WrappedConfigT> >::type viennagrid::volume | ( | viennagrid::element< ElementTag, WrappedConfigT > const & | cell | ) |
Returns the n-dimensional volume of a n-cell.
viennagrid::result_of::coord< mesh<WrappedConfigT> >::type viennagrid::volume | ( | mesh< WrappedConfigT > const & | mesh_obj | ) |
Returns the n-dimensional volume of a whole mesh.
viennagrid::result_of::coord< MeshSegmentHandleType >::type viennagrid::volume | ( | MeshSegmentHandleType const & | mesh_obj | ) |
Returns the n-dimensional volume of a segment.