|
FEAT 3
Finite Element Analysis Toolbox
|
Subdivision level markings for meshes. More...
#include <subdivision_levels.hpp>
Public Member Functions | |
| SubdivisionLevels (const SubdivisionLevels &other)=delete | |
| deleted copy-constructor | |
| SubdivisionLevels (Index num_vertices) | |
| Constructor. More... | |
| SubdivisionLevels (Index num_vertices, std::uint64_t default_level) | |
| Constructor. More... | |
| SubdivisionLevels (SubdivisionLevels &&other) noexcept | |
| move-constructor More... | |
| ~SubdivisionLevels ()=default | |
| destructor | |
| template<int n> | |
| SubdivisionLevelTuple< n > | get_levels (const IndexTuple< n > &indices) const |
| Retrieve SubdivisionLevelTuple. More... | |
| std::uint64_t | maximum_level () |
| Returns the maximum refinement level assigned to any vertex. More... | |
| void | merge (const SubdivisionLevels &other) |
| Adds up two SubdivisionLevels. More... | |
| SubdivisionLevels & | operator= (const SubdivisionLevels &other)=delete |
| deleted copy-assign operator | |
| SubdivisionLevels & | operator= (SubdivisionLevels &&other) noexcept |
| move-assign operator More... | |
| std::uint64_t & | operator[] (Index idx) |
| access operator More... | |
| const std::uint64_t & | operator[] (Index idx) const |
| access operator More... | |
| template<typename MeshType > | |
| void | set_level_for_element (const MeshType &mesh, Index element, std::uint64_t element_level) |
| Set subdivision level for a mesh element. More... | |
| template<typename MeshType > | |
| void | set_per_element (const MeshType &mesh, std::function< std::uint64_t(Index)> f) |
| Sets subdivision levels for each cell of the given mesh. More... | |
| std::size_t | size () const |
Private Attributes | |
| std::vector< std::uint64_t > | _levels |
| Level markings. More... | |
Friends | |
| std::ostream & | operator<< (std::ostream &, const SubdivisionLevels &) |
| Debug output operator. More... | |
Subdivision level markings for meshes.
Used to assign a subdivision level to each vertex of a mesh.
Definition at line 74 of file subdivision_levels.hpp.
|
inlineexplicit |
Constructor.
| [in] | num_vertices | Number of vertices to mark |
Definition at line 85 of file subdivision_levels.hpp.
|
inline |
Constructor.
| [in] | num_vertices | Number of vertices to mark |
| [in] | default_level | Default subdivision level for each vertex |
Definition at line 95 of file subdivision_levels.hpp.
|
inlinenoexcept |
move-constructor
Definition at line 100 of file subdivision_levels.hpp.
|
inline |
Retrieve SubdivisionLevelTuple.
| [in] | indices | Vertex-Indices to retrieve levels for |
Definition at line 231 of file subdivision_levels.hpp.
References _levels, and FEAT::Geometry::IndexTuple< num_indices_ >::num_indices.
|
inline |
Returns the maximum refinement level assigned to any vertex.
Definition at line 144 of file subdivision_levels.hpp.
References _levels.
Referenced by FEAT::Control::Domain::AdaptivePartiDomainControl< DomainLevel_, TemplateSet_ >::refine_partially().
|
inline |
Adds up two SubdivisionLevels.
Definition at line 216 of file subdivision_levels.hpp.
References _levels, and FEAT::Geometry::other.
|
inlinenoexcept |
move-assign operator
Definition at line 106 of file subdivision_levels.hpp.
References _levels, and FEAT::Geometry::other.
|
inline |
access operator
Definition at line 128 of file subdivision_levels.hpp.
|
inline |
access operator
Definition at line 135 of file subdivision_levels.hpp.
|
inline |
Set subdivision level for a mesh element.
Assigns maximum of current level and element level to all vertices making up the chosen element.
| [in] | mesh | Mesh to take elements from |
| [in] | element | Element to set level for |
| [in] | element_level | Level to set |
Definition at line 200 of file subdivision_levels.hpp.
References _levels.
Referenced by set_per_element().
|
inline |
Sets subdivision levels for each cell of the given mesh.
Vertices will be set to the maximum level of any cell they are contained in.
| MeshType | The type of the given mesh |
| [in] | mesh | The mesh for whose cells levels should be set |
| [in] | f | A function assigning a level to each cell of mesh |
Definition at line 173 of file subdivision_levels.hpp.
References _levels, and set_level_for_element().
|
inline |
Definition at line 154 of file subdivision_levels.hpp.
|
friend |
Debug output operator.
Definition at line 247 of file subdivision_levels.hpp.
|
private |
Level markings.
Definition at line 243 of file subdivision_levels.hpp.
Referenced by get_levels(), maximum_level(), merge(), operator=(), operator[](), set_level_for_element(), and set_per_element().