|
ViennaGrid
1.0.1
|
Contains forward declarations and definition of small classes that must be defined at an early stage. More...
#include <iostream>#include <vector>#include <map>#include <cstddef>#include <cstdlib>#include "viennadata/api.hpp"Go to the source code of this file.
Data Structures | |
| struct | dimension_tag< d > |
| A helper tag for dispatches based on the geometrical or topological dimension. More... | |
| struct | full_handling_tag |
| A tag denoting full storage of (boundary) k-cells of a certain topological dimension. More... | |
| struct | no_handling_tag |
| A tag denoting that the (boundary) k-cells should not be stored. More... | |
| class | coboundary_key< T, dim > |
| A key used for ViennaData to store coboundary information on n-cells. More... | |
| class | segment_mapping_key< SegmentType > |
| class | const_ncell_proxy< T > |
| A proxy class for retrieving const n-cell ranges. More... | |
| class | ncell_proxy< T > |
| A proxy class for retrieving n-cell ranges. More... | |
| class | pointer_id |
| ID handler class for IDs based on the n-cell address. More... | |
| class | integral_id |
| ID handler class for IDs of type long. Has to be used for dense quantity storage with ViennaData. More... | |
| struct | bndcells< ElementTag, level > |
| Holds the topological information about boundary cells for a n-cell. More... | |
| struct | bndcell_filler< ElementTag, k > |
| Worker class that sets up the boundary k-cells of a n-cell. More... | |
| struct | element_id_handler< ConfigType, ElementTag > |
| Metafunction that returns the ID handling class of an n-cell. More... | |
| struct | config< T > |
| Metafunction returning the configuration class of a topological element. More... | |
| struct | config< domain_t< ConfigType > > |
| Metafunction returning the configuration class of a topological element. Specialization for a domain. More... | |
| struct | config< segment_t< ConfigType > > |
| Metafunction returning the configuration class of a topological element. Specialization for a segment. More... | |
| struct | config< element_t< ConfigType, ElementTag > > |
| Metafunction returning the configuration class of a topological element. Specialization for a n-cell. More... | |
| struct | ncell< Config, dim, cell_level > |
| Metafunction for the type retrieval of n-cells. More... | |
| struct | ncell< Config, cell_level, cell_level > |
| Metafunction for the type retrieval of n-cells. Specialization for the cells. More... | |
| struct | point< Config > |
| Metafunction returning the type of a geometric point as used by vertices of the domain. More... | |
| struct | point< point_t< CoordType, CoordinateSystem > > |
| (Trivial) Convenience overload for retrieving the point type from a point More... | |
| struct | point< element_t< Config, ElementTag > > |
| Convenience overload for retrieving the point type from an element. More... | |
| struct | point< segment_t< Config > > |
| Convenience overload for retrieving the point type from a segment. More... | |
| struct | point< domain_t< Config > > |
| Convenience overload for retrieving the point type from a domain. More... | |
| struct | numeric< Config > |
| Metafunction returning the numeric type from the domain config. More... | |
| struct | numeric< point_t< CoordType, CoordinateSystem > > |
| Convenience overload for retrieving the numeric type (value_type) from a point. More... | |
| struct | numeric< element_t< Config, ElementTag > > |
| Convenience overload for retrieving the numeric type (value_type) from an element. More... | |
| struct | numeric< segment_t< Config > > |
| Convenience overload for retrieving the numeric type (value_type) from a segment. More... | |
| struct | numeric< domain_t< Config > > |
| Convenience overload for retrieving the numeric type (value_type) from a domain. More... | |
| struct | bndcell_orientation< ConfigType, T, dim > |
| Metafunction for local-to-global-orienters: By default, orienters are stored on n-cells. More... | |
| struct | bndcell_handling< ConfigType, T, dim > |
| Metafunction for the storage of boundary k-cells of an n-cell. By default, pointers to boundary k-cells are stored on n-cells. More... | |
| struct | bndcell_handling< ConfigType, T, 0 > |
| Specialization of the boundary k-cell handling for vertices. Vertex level always uses full handling (it is the defining entity of an element). More... | |
| struct | bndcell_handling< ConfigType, domain_t< ConfigType >, dim > |
| Specialization of the k-cell handling for the domain. More... | |
| struct | bndcell_handling< ConfigType, domain_t< ConfigType >, 0 > |
| Specialization of the k-cell handling for the domain. Vertices always uses full handling (it is the defining entity of an element). More... | |
| struct | bndcell_handling< ConfigType, segment_t< ConfigType >, dim > |
| Specialization of the k-cell handling for segments. More... | |
| struct | bndcell_handling< ConfigType, segment_t< ConfigType >, 0 > |
| Specialization of the k-cell handling for segments. Vertices always uses full handling (it is the defining entity of an element). More... | |
| struct | one_tag |
| Tag for denoting the 1-norm. More... | |
| struct | two_tag |
| Tag for denoting the 2-norm. More... | |
| struct | inf_tag |
| Tag for denoting the infinity-norm. More... | |
| struct | seg_cell_normal_tag |
| Types for cell normals in algorithm/cell_normals.hpp (to be added in afuture release) More... | |
| struct | seg_cell_normal_data |
| Data type for cell normals in algorithm/cell_normals.hpp (to be added in afuture release) More... | |
| struct | refinement_key |
| A key type used for tagging edges for refinement using ViennaData. More... | |
| struct | uniform_refinement_tag |
| A tag denoting uniform refinement. More... | |
| struct | local_refinement_tag |
| A tag denoting local refinement. More... | |
| struct | voronoi_interface_area_key |
| ViennaData key for the Voronoi interface area associated with an edge. More... | |
| struct | voronoi_box_volume_key |
| ViennaData key for the Voronoi box volume associated with an edge or vertex. More... | |
Namespaces | |
| namespace | viennagrid |
The main ViennaGrid namespace. Most functionality resides in this namespace. | |
| namespace | viennagrid::topology |
Namespace for definition and handling of the individual topological elements (triangles, hexahedra, etc.) | |
| namespace | viennagrid::result_of |
The metafunction layer. Provides type generators that derive the respective type from the domain configuration. | |
| namespace | viennagrid::detail |
The namespace holding the implementations of domains, segments and ncells as well as some algorithm implementations. Not of interest for library users. | |
Defines | |
| #define | VIENNAGRID_DISABLE_BOUNDARY_NCELL(arg_CONFIG, arg_TAG, arg_DIM) |
| Convenience macro for disabling boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG. | |
| #define | VIENNAGRID_ENABLE_BOUNDARY_NCELL(arg_CONFIG, arg_TAG, arg_DIM) |
| Convenience macro for enabling boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG. | |
| #define | VIENNAGRID_GLOBAL_DISABLE_BOUNDARY_NCELL(arg_TAG, arg_DIM) |
| Convenience macro for disabling boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG for all configuration classes. | |
| #define | VIENNAGRID_DISABLE_BOUNDARY_NCELL_ORIENTATION(arg_CONFIG, arg_TAG, arg_DIM) |
| Convenience macro for disabling local orientation storage for boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG. | |
| #define | VIENNAGRID_ENABLE_BOUNDARY_NCELL_ORIENTATION(arg_CONFIG, arg_TAG, arg_DIM) |
| Convenience macro for enabling local orientation storage for boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG. | |
| #define | VIENNAGRID_GLOBAL_DISABLE_BOUNDARY_NCELL_ORIENTATION(arg_TAG, arg_DIM) |
| Convenience macro for disabling local orientation storage for boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG for all configuration classes. | |
| #define | VIENNAGRID_DISABLE_NCELL_ID(arg_CONFIG, arg_TAG) |
| Convenience macro for disabling the storage of an ID for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG. | |
| #define | VIENNAGRID_ENABLE_NCELL_ID(arg_CONFIG, arg_TAG) |
| Convenience macro for enabling the storage of an ID for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG. | |
| #define | VIENNAGRID_GLOBAL_DISABLE_NCELL_ID(arg_TAG) |
| Convenience macro for disabling the storage of an ID for a n-cell identified by arg_TAG for all configuration classes. | |
| #define | VIENNAGRID_DISABLE_DOMAIN_NCELL(arg_CONFIG, arg_DIM) |
| Disable the storage of n-cells for the domain with a certain configuration class arg_CONFIG. Requires disabled storage of boundary n-cells. | |
| #define | VIENNAGRID_ENABLE_DOMAIN_NCELL(arg_CONFIG, arg_DIM) |
| Selectively enable the storage of n-cells for the domain with a certain configuration class arg_CONFIG. | |
| #define | VIENNAGRID_GLOBAL_DISABLE_DOMAIN_NCELL(arg_DIM) |
| Disable the storage of n-cells for the domain for all configuration classes. Requires disabled storage of boundary n-cells. | |
| #define | VIENNAGRID_ENABLE_NCELL_ID_FOR_DATA(arg_CONFIG, arg_CELLTAG) |
| Enable the use of the n-cell ID for ViennaData for a certain configuration class arg_CONFIG. Required for dense storage with ViennaData. arg_CELLTAG denotes the n-cell tag. | |
| #define | VIENNAGRID_ENABLE_ALL_NCELL_ID_FOR_DATA(arg_CONFIG) |
| Enable the use of the n-cell ID for ViennaData for all n-cells using a certain configuration class arg_CONFIG. Required for dense storage with ViennaData. | |
| #define | VIENNAGRID_GLOBAL_ENABLE_NCELL_ID_FOR_DATA(arg_CELLTAG) |
| Enable the use of the n-cell ID for ViennaData for n-cells identified by the tag arg_CELLTAG, irrespective of the configuration class. Required for dense storage with ViennaData. | |
| #define | VIENNAGRID_GLOBAL_ENABLE_ALL_NCELL_ID_FOR_DATA() |
| Enable the use of the n-cell ID for ViennaData for all n-cells and all configuration classes. Required for dense storage with ViennaData. | |
Typedefs | |
| typedef std::size_t | dim_type |
| A global size_type equivalent for use throughout ViennaData. | |
| typedef simplex_tag< 1 > | line_tag |
| Convenience type definition for a line. | |
| typedef simplex_tag< 2 > | triangle_tag |
| Convenience type definition for a triangle. | |
| typedef simplex_tag< 3 > | tetrahedron_tag |
| Convenience type definition for a tetrahedron. | |
| typedef hypercube_tag< 2 > | quadrilateral_tag |
| Convenience type definition for a quadrilateral. | |
| typedef hypercube_tag< 3 > | hexahedron_tag |
| Convenience type definition for a hexahedron. | |
Functions | |
| template<long dim, typename DomainConfig > | |
| ncell_range< domain_t < DomainConfig >, dim > | ncells (domain_t< DomainConfig > &d) |
| Main function for range retrieval. Specialization for iteration over k-cells on the domain. | |
| template<typename DomainConfig > | |
| ncell_proxy< domain_t < DomainConfig > > | ncells (domain_t< DomainConfig > &d) |
| Main function for range retrieval. Specialization for iteration over k-cells on the domain. Returns only a proxy that must be assigned to a range object. | |
| template<long dim, typename DomainConfig > | |
| ncell_range< segment_t < DomainConfig >, dim > | ncells (segment_t< DomainConfig > &d) |
| Main function for range retrieval. Specialization for iteration over n-cells of a segment. | |
| template<typename DomainConfig > | |
| ncell_proxy< segment_t < DomainConfig > > | ncells (segment_t< DomainConfig > &d) |
| Main function for range retrieval. Specialization for iteration over n-cells of a segment. Returns only a proxy that must be assigned to a range object. | |
| template<long dim, typename Config , typename ElementTag > | |
| result_of::ncell_range < element_t< Config, ElementTag >, dim >::type | ncells (element_t< Config, ElementTag > &d) |
| Main function for range retrieval. Specialization for iteration over k-cells of a n-cell. | |
| template<typename Config , typename ElementTag > | |
| ncell_proxy< element_t< Config, ElementTag > > | ncells (element_t< Config, ElementTag > &d) |
| Main function for range retrieval. Specialization for iteration over k-cells of a n-cell. Returns only a proxy that must be assigned to a range object. | |
| template<long dim, typename DomainConfig > | |
| const_ncell_range< domain_t < DomainConfig >, dim > | ncells (domain_t< DomainConfig > const &d) |
| Main function for const range retrieval. Specialization for iteration over k-cells on the domain. | |
| template<typename DomainConfig > | |
| const_ncell_proxy< domain_t < DomainConfig > > | ncells (domain_t< DomainConfig > const &d) |
| Main function for const range retrieval. Specialization for iteration over k-cells on the domain. Returns only a proxy that must be assigned to a range object. | |
| template<long dim, typename DomainConfig > | |
| const_ncell_range< segment_t < DomainConfig >, dim > | ncells (segment_t< DomainConfig > const &d) |
| Main function for range retrieval. Specialization for iteration over n-cells of a segment. | |
| template<typename DomainConfig > | |
| const_ncell_proxy< segment_t < DomainConfig > > | ncells (segment_t< DomainConfig > const &d) |
| Main function for const-range retrieval. Specialization for iteration over n-cells of a segment. Returns only a proxy that must be assigned to a range object. | |
| template<long dim, typename Config , typename ElementTag > | |
| result_of::const_ncell_range < element_t< Config, ElementTag >, dim >::type | ncells (element_t< Config, ElementTag > const &d) |
| Main function for const range retrieval. Specialization for iteration over k-cells of a n-cell. | |
| template<typename Config , typename ElementTag > | |
| const_ncell_proxy< element_t < Config, ElementTag > > | ncells (element_t< Config, ElementTag > const &d) |
| Main function for const range retrieval. Specialization for iteration over k-cells of a n-cell. Returns only a proxy that must be assigned to a range object. | |
| template<typename ConfigTypeIn , typename ConfigTypeOut > | |
| void | refine_impl (domain_t< ConfigTypeIn > const &domain_in, domain_t< ConfigTypeOut > &domain_out, uniform_refinement_tag) |
| Implementation of uniform refinement. Responsible for all the book-keeping. | |
| template<typename ConfigTypeIn , typename ConfigTypeOut > | |
| void | refine_impl (domain_t< ConfigTypeIn > const &domain_in, domain_t< ConfigTypeOut > &domain_out, local_refinement_tag) |
| Implementation of adaptive refinement. Responsible for all the book-keeping. | |
Contains forward declarations and definition of small classes that must be defined at an early stage.
| #define VIENNAGRID_DISABLE_BOUNDARY_NCELL | ( | arg_CONFIG, | |
| arg_TAG, | |||
| arg_DIM | |||
| ) |
namespace viennagrid { namespace result_of { \ template <> \ struct bndcell_handling<arg_CONFIG, arg_TAG, arg_DIM> { \ typedef no_handling_tag type; \ }; \ } }
Convenience macro for disabling boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG.
| #define VIENNAGRID_DISABLE_BOUNDARY_NCELL_ORIENTATION | ( | arg_CONFIG, | |
| arg_TAG, | |||
| arg_DIM | |||
| ) |
namespace viennagrid { namespace result_of { \ template <> \ struct bndcell_orientation<arg_CONFIG, arg_TAG, arg_DIM> { \ typedef no_handling_tag type; \ }; \ } }
Convenience macro for disabling local orientation storage for boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG.
| #define VIENNAGRID_DISABLE_DOMAIN_NCELL | ( | arg_CONFIG, | |
| arg_DIM | |||
| ) |
namespace viennagrid { namespace result_of { \ template <> \ struct bndcell_handling<arg_CONFIG, domain_t<arg_CONFIG>, arg_DIM> { \ typedef no_handling_tag type; \ }; \ } }
Disable the storage of n-cells for the domain with a certain configuration class arg_CONFIG. Requires disabled storage of boundary n-cells.
| #define VIENNAGRID_DISABLE_NCELL_ID | ( | arg_CONFIG, | |
| arg_TAG | |||
| ) |
namespace viennagrid { namespace result_of { \ template <> \ struct element_id_handler<arg_CONFIG, arg_TAG> { \ typedef pointer_id type; \ }; \ } }
Convenience macro for disabling the storage of an ID for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG.
| #define VIENNAGRID_ENABLE_ALL_NCELL_ID_FOR_DATA | ( | arg_CONFIG | ) |
namespace viennadata { namespace config { \ template <typename CellTag> struct object_identifier<viennagrid::element_t<arg_CONFIG, CellTag> > { \ typedef object_provided_id tag; \ typedef size_t id_type; \ static size_t get(viennagrid::element_t<arg_CONFIG, CellTag> const & obj) { return obj.id(); } \ }; } }
Enable the use of the n-cell ID for ViennaData for all n-cells using a certain configuration class arg_CONFIG. Required for dense storage with ViennaData.
| #define VIENNAGRID_ENABLE_BOUNDARY_NCELL | ( | arg_CONFIG, | |
| arg_TAG, | |||
| arg_DIM | |||
| ) |
namespace viennagrid { namespace result_of { \ template <> \ struct bndcell_handling<arg_CONFIG, arg_TAG, arg_DIM> { \ typedef full_handling_tag type; \ }; \ } }
Convenience macro for enabling boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG.
| #define VIENNAGRID_ENABLE_BOUNDARY_NCELL_ORIENTATION | ( | arg_CONFIG, | |
| arg_TAG, | |||
| arg_DIM | |||
| ) |
namespace viennagrid { namespace result_of { \ template <> \ struct bndcell_orientation<arg_CONFIG, arg_TAG, arg_DIM> { \ typedef full_handling_tag type; \ }; \ } }
Convenience macro for enabling local orientation storage for boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG.
| #define VIENNAGRID_ENABLE_DOMAIN_NCELL | ( | arg_CONFIG, | |
| arg_DIM | |||
| ) |
namespace viennagrid { namespace result_of { \ template <> \ struct bndcell_handling<arg_CONFIG, domain_t<arg_CONFIG>, arg_DIM> { \ typedef full_handling_tag type; \ }; \ } }
Selectively enable the storage of n-cells for the domain with a certain configuration class arg_CONFIG.
| #define VIENNAGRID_ENABLE_NCELL_ID | ( | arg_CONFIG, | |
| arg_TAG | |||
| ) |
namespace viennagrid { namespace result_of { \ template <> \ struct element_id_handler<arg_CONFIG, arg_TAG> { \ typedef integral_id type; \ }; \ } }
Convenience macro for enabling the storage of an ID for a n-cell identified by arg_TAG when used with a certain configuration class arg_CONFIG.
| #define VIENNAGRID_ENABLE_NCELL_ID_FOR_DATA | ( | arg_CONFIG, | |
| arg_CELLTAG | |||
| ) |
namespace viennadata { namespace config { \ template <> struct object_identifier<viennagrid::element_t<arg_CONFIG, arg_CELLTAG> > { \ typedef object_provided_id tag; \ typedef size_t id_type; \ static size_t get(viennagrid::element_t<arg_CONFIG, arg_CELLTAG> const & obj) { return obj.id(); } \ }; } }
Enable the use of the n-cell ID for ViennaData for a certain configuration class arg_CONFIG. Required for dense storage with ViennaData. arg_CELLTAG denotes the n-cell tag.
| #define VIENNAGRID_GLOBAL_DISABLE_BOUNDARY_NCELL | ( | arg_TAG, | |
| arg_DIM | |||
| ) |
namespace viennagrid { namespace result_of { \ template <typename ConfigType> \ struct bndcell_handling<ConfigType, arg_TAG, arg_DIM> { \ typedef no_handling_tag type; \ }; \ } }
Convenience macro for disabling boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG for all configuration classes.
| #define VIENNAGRID_GLOBAL_DISABLE_BOUNDARY_NCELL_ORIENTATION | ( | arg_TAG, | |
| arg_DIM | |||
| ) |
namespace viennagrid { namespace result_of { \ template <typename ConfigType> \ struct bndcell_orientation<ConfigType, arg_TAG, arg_DIM> { \ typedef no_handling_tag type; \ }; \ } }
Convenience macro for disabling local orientation storage for boundary k-cells of dimension arg_DIM for a n-cell identified by arg_TAG for all configuration classes.
| #define VIENNAGRID_GLOBAL_DISABLE_DOMAIN_NCELL | ( | arg_DIM | ) |
namespace viennagrid { namespace result_of { \ template <typename ConfigType> \ struct bndcell_handling<ConfigType, domain_t<ConfigType>, arg_DIM> { \ typedef no_handling_tag type; \ }; \ } }
Disable the storage of n-cells for the domain for all configuration classes. Requires disabled storage of boundary n-cells.
| #define VIENNAGRID_GLOBAL_DISABLE_NCELL_ID | ( | arg_TAG | ) |
namespace viennagrid { namespace result_of { \ template <typename ConfigType> \ struct element_id_handler<ConfigType, arg_TAG> { \ typedef pointer_id type; \ }; \ } }
Convenience macro for disabling the storage of an ID for a n-cell identified by arg_TAG for all configuration classes.
| #define VIENNAGRID_GLOBAL_ENABLE_ALL_NCELL_ID_FOR_DATA | ( | ) |
namespace viennadata { namespace config { \ template <typename ConfigType, typename CellTag> struct object_identifier<viennagrid::element_t<ConfigType, CellTag> > { \ typedef object_provided_id tag; \ typedef size_t id_type; \ static size_t get(viennagrid::element_t<ConfigType, CellTag> const & obj) { return obj.id(); } \ }; } }
Enable the use of the n-cell ID for ViennaData for all n-cells and all configuration classes. Required for dense storage with ViennaData.
| #define VIENNAGRID_GLOBAL_ENABLE_NCELL_ID_FOR_DATA | ( | arg_CELLTAG | ) |
namespace viennadata { namespace config { \ template <typename ConfigType> struct object_identifier<viennagrid::element_t<ConfigType, arg_CELLTAG> > { \ typedef object_provided_id tag; \ typedef size_t id_type; \ static size_t get(viennagrid::element_t<ConfigType, arg_CELLTAG> const & obj) { return obj.id(); } \ }; } }
Enable the use of the n-cell ID for ViennaData for n-cells identified by the tag arg_CELLTAG, irrespective of the configuration class. Required for dense storage with ViennaData.
1.7.6.1