ViennaGrid - The Vienna Grid Library
2.1.0
|
Contains definition and implementation of mesh and mesh views. More...
#include <typeinfo>
#include "viennagrid/forwards.hpp"
#include "viennagrid/meta/algorithm.hpp"
#include "viennagrid/storage/id_generator.hpp"
#include "viennagrid/storage/inserter.hpp"
#include "viennagrid/storage/algorithm.hpp"
#include "viennagrid/config/element_config.hpp"
#include "viennagrid/config/mesh_config.hpp"
#include "viennagrid/element/element_view.hpp"
Go to the source code of this file.
Data Structures | |
struct | boundary_information_wrapper< container_type_, change_counter_type > |
For internal use only. More... | |
struct | cell< something > |
Metafunction for obtaining the cell type of something. Will fail if there is more than one cell type. More... | |
struct | cell_tag< something > |
Metafunction for obtaining the cell tag of something. Will fail if there is more than one cell type. More... | |
struct | cells< something > |
Metafunction for obtaining an element typelist of all cell types of something. More... | |
struct | coboundary_container_wrapper< container_type_, change_counter_type > |
For internal use only. More... | |
struct | const_element_range< MeshSegmentHandleType, element_type_or_tag > |
Metafunction for the type retrieval of a const element range. More... | |
struct | const_handle< MeshSegmentHandleType, element_type_or_tag > |
Metafunction for the type retrieval of a const element handle. More... | |
struct | copy_element_setters< MeshT, SourceElementT, DestinationElementT > |
For internal use only. More... | |
class | decorated_mesh_view_config< WrappedConfigType, ElementTypeList, ContainerConfig > |
For internal use only. More... | |
class | decorated_mesh_view_config< decorated_mesh_view_config< WrappedConfigType, E, C >, ElementTypeList, ContainerConfig > |
For internal use only. More... | |
class | dereference_handle_comparator< ContainerT > |
For internal use only. More... | |
struct | element< MeshSegmentHandleType, element_type_or_tag > |
Metafunction for the type retrieval of an element. More... | |
struct | element_range< MeshSegmentHandleType, element_type_or_tag > |
Metafunction for the type retrieval of an element range. More... | |
struct | element_taglist< SomethingT > |
Metafunction for obtaining the element typelist of something. More... | |
struct | element_typelist< SomethingT > |
Metafunction for obtaining the element typelist of something. More... | |
struct | elements_of_topologic_dim< something, topologic_dimension > |
Metafunction for obtaining an element typelist of all element with a specific topologic dimension of something. More... | |
struct | fix_handle_helper< null_type > |
struct | fix_handle_helper< typelist< SourceElementT, TailT > > |
struct | for_each_element_functor< MeshSegmentHandleT, FunctorT > |
For internal use only. More... | |
struct | handle< MeshSegmentHandleType, element_type_or_tag > |
Metafunction for the type retrieval of an element handle. More... | |
class | handle_mesh_functor< container_collection_type > |
For internal use only. More... | |
struct | is_boundary< HostElementT, BoundaryElementTypeOrTagT > |
Metafunction for query if an element type/tag is boundary element of another host element. More... | |
struct | mesh< WrappedConfigType > |
Metafunction for obtaining a mesh from a config. More... | |
class | mesh< WrappedConfigType > |
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_view< MeshT, Element0TypeOrTagT, Element1TypeOrTagT, Element2TypeOrTagT, Element3TypeOrTagT, Element4TypeOrTagT, Element5TypeOrTagT, Element6TypeOrTagT, Element7TypeOrTagT, Element8TypeOrTagT, Element9TypeOrTagT > |
Metafunction for obtaining a mesh view from a mesh. Elements can be directly given. If viennagrid::null_type is specified somewhere all following types will be ignored. The default type for all element types is viennagrid::null_type. More... | |
struct | mesh_view_from_typelist< MeshT, ElementTypelistT, ContainerConfigT > |
Metafunction for obtaining a mesh view from a mesh using an element type list and a container configuration. More... | |
struct | neighbor_container_wrapper< container_type_, change_counter_type > |
For internal use only. More... | |
struct | referencing_element_typelist< SomethingT, ElementTypeOrTagT > |
Metafunction for obtaining the an element typelist including all element which references a given element. e.g. in a default triangle mesh the referencing element typelist based on the mesh for a vertex contains a line type and a triangle type. The host type can also be an element in which case all boundary elements referening the given element are returned (in a default tetrahedron mesh the referencing elements for a vertex based on a triangle contains only a line type) More... | |
struct | topologic_cell_dimension< something > |
Metafunction for returning the topologic dimension of the cell in a mesh or segment. More... | |
class | view_mesh_setter< container_collection_type > |
For internal use only. More... | |
Namespaces | |
namespace | viennagrid |
The main ViennaGrid namespace. Most user functionality resides directly in this namespace rather than in sub-namespaces. | |
namespace | viennagrid::detail |
Namespace for implementation details. Not intended to be used directly by a library user. | |
namespace | viennagrid::result_of |
The metafunction layer. Provides type generators that derive the respective type from the mesh configuration. | |
Functions | |
template<typename element_tag , typename mesh_type > | |
viennagrid::detail::result_of::lookup < typename viennagrid::detail::result_of::lookup < typename mesh_type::appendix_type, boundary_information_collection_tag > ::type, element_tag >::type & | boundary_information_collection (mesh_type &mesh_obj) |
For internal use only. | |
template<typename element_tag , typename mesh_type > | |
viennagrid::detail::result_of::lookup < typename viennagrid::detail::result_of::lookup < typename mesh_type::appendix_type, boundary_information_collection_tag > ::type, element_tag >::type const & | boundary_information_collection (mesh_type const &mesh_obj) |
For internal use only. | |
template<typename WrappedConfigT > | |
void | clear (mesh< WrappedConfigT > &mesh_) |
Completely clears a mesh. | |
template<typename element_tag , typename coboundary_tag , typename mesh_type > | |
viennagrid::detail::result_of::lookup < typename viennagrid::detail::result_of::lookup < typename mesh_type::appendix_type, coboundary_collection_tag > ::type, viennagrid::static_pair < element_tag, coboundary_tag > >::type & | coboundary_collection (mesh_type &mesh_obj) |
For internal use only. | |
template<typename element_tag , typename coboundary_tag , typename mesh_type > | |
viennagrid::detail::result_of::lookup < typename viennagrid::detail::result_of::lookup < typename mesh_type::appendix_type, coboundary_collection_tag > ::type, viennagrid::static_pair < element_tag, coboundary_tag > >::type const & | coboundary_collection (mesh_type const &mesh_obj) |
For internal use only. | |
template<typename 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 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 ConfigType > | |
viennagrid::mesh< ConfigType > ::element_collection_type & | element_collection (viennagrid::mesh< ConfigType > &mesh_obj) |
For internal use only. | |
template<typename ConfigType > | |
viennagrid::mesh< ConfigType > ::element_collection_type const & | element_collection (viennagrid::mesh< ConfigType > const &mesh_obj) |
For internal use only. | |
template<typename 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 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 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<typename SourceWrappedConfigT , typename DestinationWrappedConfigT > | |
void | fix_handles (viennagrid::mesh< SourceWrappedConfigT > const &source_mesh_obj, viennagrid::mesh< DestinationWrappedConfigT > &destination_mesh) |
For internal use only. | |
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 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 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 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 ConfigType > | |
viennagrid::mesh< ConfigType > ::inserter_type::id_generator_type & | id_generator (viennagrid::mesh< ConfigType > &mesh_obj) |
For internal use only. | |
template<typename ConfigType > | |
viennagrid::mesh< ConfigType > ::inserter_type::id_generator_type const & | id_generator (viennagrid::mesh< ConfigType > const &mesh_obj) |
For internal use only. | |
template<typename 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 WrappedConfigType > | |
void | increment_change_counter (viennagrid::mesh< WrappedConfigType > &mesh_obj) |
For internal use only. | |
template<typename ConfigType > | |
viennagrid::mesh< ConfigType > ::inserter_type & | inserter (viennagrid::mesh< ConfigType > &mesh_obj) |
For internal use only. | |
template<typename ConfigType > | |
viennagrid::mesh< ConfigType > ::inserter_type const & | inserter (viennagrid::mesh< ConfigType > const &mesh_obj) |
For internal use only. | |
template<typename WrappedConfigType > | |
bool | is_obsolete (viennagrid::mesh< WrappedConfigType > const &mesh_obj, typename viennagrid::mesh< WrappedConfigType >::change_counter_type change_counter_to_check) |
For internal use only. | |
template<typename 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 element_tag , typename connector_element_tag , typename mesh_type > | |
viennagrid::detail::result_of::lookup < typename viennagrid::detail::result_of::lookup < typename mesh_type::appendix_type, neighbor_collection_tag > ::type, viennagrid::static_pair < element_tag, connector_element_tag > >::type & | neighbor_collection (mesh_type &mesh_obj) |
For internal use only. | |
template<typename element_tag , typename connector_element_tag , typename mesh_type > | |
viennagrid::detail::result_of::lookup < typename viennagrid::detail::result_of::lookup < typename mesh_type::appendix_type, neighbor_collection_tag > ::type, viennagrid::static_pair < element_tag, connector_element_tag > >::type const & | neighbor_collection (mesh_type const &mesh_obj) |
For internal use only. | |
template<typename 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<bool generate_id, bool call_callback, typename mesh_type , typename ElementTag , typename WrappedConfigType > | |
std::pair< typename viennagrid::result_of::container_of < typename viennagrid::result_of::element_collection < mesh_type >::type, viennagrid::element < ElementTag, WrappedConfigType > >::type::handle_type, bool > | push_element (mesh_type &mesh_obj, viennagrid::element< ElementTag, WrappedConfigType > const &element) |
For internal use only. | |
template<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 WrappedConfigType > | |
void | update_change_counter (viennagrid::mesh< WrappedConfigType > &mesh_obj, typename viennagrid::mesh< WrappedConfigType >::change_counter_type &change_counter_to_update) |
For internal use only. |
Contains definition and implementation of mesh and mesh views.