|
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 | CoordType = typename AdaptiveMeshType::CoordType |
| Coord type. 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... | |
| const AdaptiveMeshType & | adaptive_mesh () const |
| accessor for adaptive mesh More... | |
| std::shared_ptr< AdaptiveMeshType > | adaptive_mesh_ptr () const |
| 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... | |
| const AdaptiveMeshType::FoundationMeshType & | foundation_mesh () const |
| accessor for foundation mesh More... | |
| std::optional< Index > | get_child (Index elem, Index child) const |
| 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) const |
| 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 dim in 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 1122 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::AdaptiveMeshType = AdaptiveMeshType_ |
Type of underlying mesh.
Definition at line 1126 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::AdaptiveNeighborsType = AdaptiveNeighbors<AdaptiveMeshType> |
Type of neighbors wrapper.
Definition at line 1129 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::CoordType = typename AdaptiveMeshType::CoordType |
Coord type.
Definition at line 1143 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::IndexSetHolderType = AdaptiveIndexSetHolder<AdaptiveMeshType, ShapeType> |
IndexSetHolder type.
Definition at line 1146 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::MeshPermutationType = MeshPermutation<ShapeType> |
Mesh permutation type.
Definition at line 1158 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::ShapeType = typename AdaptiveMeshType::ShapeType |
Shape type.
Definition at line 1134 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::VertexSetType = AdaptiveVertexSet<AdaptiveMeshType> |
Vertex set type.
Definition at line 1137 of file adaptive_mesh_layer.hpp.
| using FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::VertexType = typename AdaptiveMeshType::VertexType |
Vertex type.
Definition at line 1140 of file adaptive_mesh_layer.hpp.
|
inline |
Constructor.
| [in] | mesh | Underlying adaptive mesh |
| [in] | Layer | Mesh layer |
Definition at line 1183 of file adaptive_mesh_layer.hpp.
|
inline |
accessor for adaptive mesh
Definition at line 1579 of file adaptive_mesh_layer.hpp.
|
inline |
accessor for adaptive mesh
Definition at line 1585 of file adaptive_mesh_layer.hpp.
|
inline |
accessor for adaptive mesh
Definition at line 1591 of file adaptive_mesh_layer.hpp.
|
inline |
Definition at line 1216 of file adaptive_mesh_layer.hpp.
|
inline |
Definition at line 1207 of file adaptive_mesh_layer.hpp.
|
inline |
Definition at line 1198 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 1282 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 1443 of file adaptive_mesh_layer.hpp.
|
inline |
accessor for foundation mesh
Definition at line 1567 of file adaptive_mesh_layer.hpp.
|
inline |
accessor for foundation mesh
Definition at line 1573 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 1536 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 1481 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 1493 of file adaptive_mesh_layer.hpp.
|
inline |
Returns a reference to the index set holder of this mesh.
Definition at line 1501 of file adaptive_mesh_layer.hpp.
|
inline |
Returns a reference to the index set holder of this mesh.
Definition at line 1509 of file adaptive_mesh_layer.hpp.
|
inline |
Returns the permutation applied to the mesh.
Definition at line 1260 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 1448 of file adaptive_mesh_layer.hpp.
|
inline |
Definition at line 1453 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 1546 of file adaptive_mesh_layer.hpp.
|
inline |
Returns the number of elements (highest dimension entities) in the mesh.
Definition at line 1242 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 1226 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 1234 of file adaptive_mesh_layer.hpp.
References FEAT::Geometry::AdaptiveMeshLayer< AdaptiveMeshType_ >::get_num_entities().
|
inline |
Definition at line 1514 of file adaptive_mesh_layer.hpp.
|
inline |
Definition at line 1519 of file adaptive_mesh_layer.hpp.
|
inline |
Returns the vertex set of this mesh.
Definition at line 1461 of file adaptive_mesh_layer.hpp.
|
inline |
Returns the vertex set of this mesh.
Definition at line 1469 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 1561 of file adaptive_mesh_layer.hpp.
|
inline |
Checks whether the mesh is permuted.
true if the mesh is permuted, otherwise false. Definition at line 1252 of file adaptive_mesh_layer.hpp.
References FEAT::Geometry::MeshPermutation< Shape_ >::empty().
|
inlinestatic |
Definition at line 1551 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 1313 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 1345 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 1395 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 1172 of file adaptive_mesh_layer.hpp.
|
private |
Definition at line 1169 of file adaptive_mesh_layer.hpp.
|
private |
Definition at line 1168 of file adaptive_mesh_layer.hpp.
|
private |
Definition at line 1174 of file adaptive_mesh_layer.hpp.
|
private |
Definition at line 1171 of file adaptive_mesh_layer.hpp.
|
staticconstexpr |
This is an unstructured mesh.
Definition at line 1155 of file adaptive_mesh_layer.hpp.
|
staticconstexpr |
Shape dimension.
Definition at line 1149 of file adaptive_mesh_layer.hpp.
|
staticconstexpr |
World dimension.
Definition at line 1152 of file adaptive_mesh_layer.hpp.