| FEAT 3
    Finite Element Analysis Toolbox | 
ConformalMesh interface for adaptive meshes. More...
#include <adaptive_mesh_layer.hpp>
| Classes | |
| struct | IndexSet | 
| Used for return type of get_index_set.  More... | |
| Public Types | |
| using | AdaptiveMeshType = AdaptiveMeshType_ | 
| Type of underlying mesh.  More... | |
| using | AdaptiveNeighborsType = AdaptiveNeighbors< AdaptiveMeshType > | 
| Type of neighbors wrapper.  More... | |
| using | IndexSetHolderType = AdaptiveIndexSetHolder< AdaptiveMeshType, ShapeType > | 
| IndexSetHolder type.  More... | |
| using | MeshPermutationType = MeshPermutation< ShapeType > | 
| Mesh permutation type.  More... | |
| using | ShapeType = typename AdaptiveMeshType::ShapeType | 
| Shape type.  More... | |
| using | VertexSetType = AdaptiveVertexSet< AdaptiveMeshType > | 
| Vertex set type.  More... | |
| using | VertexType = typename AdaptiveMeshType::VertexType | 
| Vertex type.  More... | |
| Public Member Functions | |
| AdaptiveMeshLayer (AdaptiveMeshLayer &&other)=default | |
| AdaptiveMeshLayer (const AdaptiveMeshLayer &other)=default | |
| AdaptiveMeshLayer (std::shared_ptr< AdaptiveMeshType > mesh, Layer layer) | |
| Constructor.  More... | |
| AdaptiveMeshType & | adaptive_mesh () | 
| accessor for adaptive mesh  More... | |
| std::size_t | bytes () const | 
| AdaptiveMeshLayer | clone () const | 
| void | clone (const AdaptiveMeshLayer &other) | 
| void | create_permutation (PermutationStrategy strategy) | 
| Creates a mesh permutation based on one of the standard permutation strategies.  More... | |
| void | fill_neighbours () | 
| AdaptiveMeshType::FoundationMeshType & | foundation_mesh () | 
| accessor for foundation mesh  More... | |
| std::optional< Index > | get_child (Index elem, Index child) | 
| Retrieve index of a child element.  More... | |
| template<int cell_dim_, int face_dim_> | |
| auto & | get_index_set () | 
| Returns a reference to an index set of this mesh.  More... | |
| template<int cell_dim_, int face_dim_> | |
| const auto & | get_index_set () const | 
| Returns a reference to an index set of this mesh.  More... | |
| IndexSetHolderType & | get_index_set_holder () | 
| Returns a reference to the index set holder of this mesh.  More... | |
| const IndexSetHolderType & | get_index_set_holder () const | 
| Returns a reference to the index set holder of this mesh.  More... | |
| const MeshPermutation< ShapeType > & | get_mesh_permutation () const | 
| Returns the permutation applied to the mesh.  More... | |
| AdaptiveNeighborsType | get_neighbors () | 
| AdaptiveNeighborsType | get_neighbors () const | 
| Index | get_num_children (Index elem) | 
| Returns the number of children of mesh a mesh element.  More... | |
| Index | get_num_elements () const | 
| Returns the number of elements (highest dimension entities) in the mesh.  More... | |
| Index | get_num_entities (int dim) const | 
| Returns the number of entities of dimension dimin the mesh.  More... | |
| Index | get_num_vertices () const | 
| Returns the number of vertices in the mesh.  More... | |
| IndexSetHolderType & | get_topology () | 
| const IndexSetHolderType & | get_topology () const | 
| VertexSetType & | get_vertex_set () | 
| Returns the vertex set of this mesh.  More... | |
| const VertexSetType & | get_vertex_set () const | 
| Returns the vertex set of this mesh.  More... | |
| bool | has_vertex_changed (Index vertex_idx) const | 
| Indicates whether any mesh element adjacent to the given vertex has changed on the given layer.  More... | |
| bool | is_permuted () const | 
| Checks whether the mesh is permuted.  More... | |
| AdaptiveMeshLayer & | operator= (AdaptiveMeshLayer &&other)=default | 
| AdaptiveMeshLayer & | operator= (const AdaptiveMeshLayer &other)=default | 
| void | set_permutation (MeshPermutationType &&mesh_perm) | 
| Sets a custom mesh permutation for this mesh.  More... | |
| bool | validate_element_coloring () const | 
| Validates the element coloring.  More... | |
| bool | validate_element_layering () const | 
| Validates the element layering.  More... | |
| Static Public Member Functions | |
| static String | name () | 
| Static Public Attributes | |
| static constexpr bool | is_structured = false | 
| This is an unstructured mesh.  More... | |
| static constexpr int | shape_dim = AdaptiveMeshType::shape_dim | 
| Shape dimension.  More... | |
| static constexpr int | world_dim = AdaptiveMeshType::world_dim | 
| World dimension.  More... | |
| Private Attributes | |
| IndexSetHolderType | _index_set_holder | 
| Layer | _layer | 
| std::shared_ptr< AdaptiveMeshType > | _mesh | 
| MeshPermutation< ShapeType > | _permutation | 
| VertexSetType | _vertex_set | 
ConformalMesh interface for adaptive meshes.
This class template is a compatability layer between the AdaptiveMesh class and the rest of FEAT. It presents a normal ConformalMesh interface for a single layer of an AdaptiveMesh. This allows using the AdaptiveMeshLayer like any other mesh class.
Definition at line 1110 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::AdaptiveMeshType = AdaptiveMeshType_ | 
Type of underlying mesh.
Definition at line 1114 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::AdaptiveNeighborsType = AdaptiveNeighbors<AdaptiveMeshType> | 
Type of neighbors wrapper.
Definition at line 1117 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::IndexSetHolderType = AdaptiveIndexSetHolder<AdaptiveMeshType, ShapeType> | 
IndexSetHolder type.
Definition at line 1131 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::MeshPermutationType = MeshPermutation<ShapeType> | 
Mesh permutation type.
Definition at line 1143 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::ShapeType = typename AdaptiveMeshType::ShapeType | 
Shape type.
Definition at line 1122 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::VertexSetType = AdaptiveVertexSet<AdaptiveMeshType> | 
Vertex set type.
Definition at line 1125 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::VertexType = typename AdaptiveMeshType::VertexType | 
Vertex type.
Definition at line 1128 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Constructor.
| [in] | mesh | Underlying adaptive mesh | 
| [in] | Layer | Mesh layer | 
Definition at line 1168 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
accessor for adaptive mesh
Definition at line 1558 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Definition at line 1201 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Definition at line 1192 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Definition at line 1183 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Creates a mesh permutation based on one of the standard permutation strategies.
This function creates a new mesh permutation and also applies that permutation to the vertex set and all the index sets stored in this mesh object.
| [in] | strategy | The permutation strategy to use, see #MeshPermutation for more details. | 
Definition at line 1267 of file adaptive_mesh_layer.hpp.
References FEAT::Geometry::MeshPermutation< Shape_ >::create(), FEAT::Geometry::MeshPermutation< Shape_ >::empty(), FEAT::Geometry::MeshPermutation< Shape_ >::get_perm(), FEAT::Geometry::MeshPermutation< Shape_ >::get_perms(), FEAT::Geometry::AdaptiveVertexSet< AdaptiveMeshType_ >::permute(), and XASSERTM.
| 
 | inline | 
Definition at line 1428 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
accessor for foundation mesh
Definition at line 1552 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Retrieve index of a child element.
| [in] | element | Index of parent | 
| [in] | child | Child to retrieve index of. Should fulfill 0 <= child <= get_num_children(layer, parent_idx). | 
child children, std::nullopt else. Definition at line 1521 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Returns a reference to an index set of this mesh.
| cell_dim_ | Cell dimension of the index set | 
| face_dim_ | Face dimension of the index set | 
Definition at line 1466 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Returns a reference to an index set of this mesh.
| cell_dim_ | Cell dimension of the index set | 
| face_dim_ | Face dimension of the index set | 
Definition at line 1478 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Returns a reference to the index set holder of this mesh.
Definition at line 1486 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Returns a reference to the index set holder of this mesh.
Definition at line 1494 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Returns the permutation applied to the mesh.
Definition at line 1245 of file adaptive_mesh_layer.hpp.
Referenced by FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::validate_element_coloring(), and FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::validate_element_layering().
| 
 | inline | 
Definition at line 1433 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Definition at line 1438 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Returns the number of children of mesh a mesh element.
| [in] | elem | Element to return number of children of | 
Definition at line 1531 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Returns the number of elements (highest dimension entities) in the mesh.
Definition at line 1227 of file adaptive_mesh_layer.hpp.
References FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::get_num_entities().
| 
 | inline | 
Returns the number of entities of dimension dim in the mesh. 
| [in] | dim | Dimension to query | 
Definition at line 1211 of file adaptive_mesh_layer.hpp.
Referenced by FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::get_num_elements(), FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::get_num_vertices(), and FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::set_permutation().
| 
 | inline | 
Returns the number of vertices in the mesh.
Definition at line 1219 of file adaptive_mesh_layer.hpp.
References FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::get_num_entities().
| 
 | inline | 
Definition at line 1499 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Definition at line 1504 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Returns the vertex set of this mesh.
Definition at line 1446 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Returns the vertex set of this mesh.
Definition at line 1454 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Indicates whether any mesh element adjacent to the given vertex has changed on the given layer.
This is intended to be used with the BPX solver to determine which vertices participate on the given layer.
Definition at line 1546 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Checks whether the mesh is permuted.
true if the mesh is permuted, otherwise false. Definition at line 1237 of file adaptive_mesh_layer.hpp.
References FEAT::Geometry::MeshPermutation< Shape_ >::empty().
| 
 | inlinestatic | 
Definition at line 1536 of file adaptive_mesh_layer.hpp.
| 
 | inline | 
Sets a custom mesh permutation for this mesh.
This function can be used to apply a mesh permutation that is created using some other approach than the predefined standard permutation strategies.
This function also applies that permutation to the vertex set and all the index sets stored in this mesh object.
| [in] | mesh_perm | The mesh permutation to use. | 
Definition at line 1298 of file adaptive_mesh_layer.hpp.
References FEAT::Geometry::MeshPermutation< Shape_ >::empty(), FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::get_num_entities(), FEAT::Geometry::MeshPermutation< Shape_ >::get_perm(), FEAT::Geometry::MeshPermutation< Shape_ >::get_perms(), FEAT::Geometry::AdaptiveVertexSet< AdaptiveMeshType_ >::permute(), and XASSERTM.
| 
 | inline | 
Validates the element coloring.
An element coloring is valid, if any pair of two different elements, which share at least one common vertex, have different colors.
true, if the element coloring is either valid or empty, otherwise false. Definition at line 1330 of file adaptive_mesh_layer.hpp.
References FEAT::Geometry::MeshPermutation< Shape_ >::get_element_coloring(), FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::get_mesh_permutation(), FEAT::Adjacency::Graph::image_begin(), FEAT::Adjacency::Graph::image_end(), and FEAT::Adjacency::transpose.
| 
 | inline | 
Validates the element layering.
An element layering is valid, if any pair of two different elements, which share at least one common vertex, have different colors.
true, if the element layering is either valid or empty, otherwise false. Definition at line 1380 of file adaptive_mesh_layer.hpp.
References FEAT::Geometry::MeshPermutation< Shape_ >::get_element_layering(), FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::get_mesh_permutation(), FEAT::Adjacency::Graph::image_begin(), FEAT::Adjacency::Graph::image_end(), FEAT::Math::max(), FEAT::Math::min(), and FEAT::Adjacency::transpose.
| 
 | private | 
Definition at line 1157 of file adaptive_mesh_layer.hpp.
| 
 | private | 
Definition at line 1154 of file adaptive_mesh_layer.hpp.
| 
 | private | 
Definition at line 1153 of file adaptive_mesh_layer.hpp.
| 
 | private | 
Definition at line 1159 of file adaptive_mesh_layer.hpp.
| 
 | private | 
Definition at line 1156 of file adaptive_mesh_layer.hpp.
| 
 | staticconstexpr | 
This is an unstructured mesh.
Definition at line 1140 of file adaptive_mesh_layer.hpp.
| 
 | staticconstexpr | 
Shape dimension.
Definition at line 1134 of file adaptive_mesh_layer.hpp.
| 
 | staticconstexpr | 
World dimension.
Definition at line 1137 of file adaptive_mesh_layer.hpp.