FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ > Class Template Reference

IndexTuple interface for adaptive meshes. More...

#include <adaptive_mesh_layer.hpp>

Public Types

using AdaptiveMeshType = AdaptiveMeshType_
 Type of underlying adaptive mesh. More...
 

Public Member Functions

 AdaptiveIndexTuple (AdaptiveIndexTuple &&other)=default
 
 AdaptiveIndexTuple (const AdaptiveIndexTuple &other)=default
 
 AdaptiveIndexTuple (std::shared_ptr< AdaptiveMeshType > mesh, Layer layer, Index entity_idx)
 Constructor. More...
 
AdaptiveIndexTupleoperator= (AdaptiveIndexTuple &&other)=default
 
AdaptiveIndexTupleoperator= (const AdaptiveIndexTuple &other)=default
 
Index operator[] (int idx) const
 access operator More...
 
void permute_map (const Adjacency::Permutation &inv_perm)
 Permute this index tuple. More...
 

Static Public Attributes

static constexpr int num_indices = Shape::FaceTraits<Shape::Hypercube<cell_dim_>, face_dim_>::count
 Number of indices per tuple. More...
 

Private Attributes

Index _entity_idx
 Index of entity this tuple refers to. More...
 
std::optional< Adjacency::Permutation_inv_perm
 Permutation of this tuple. More...
 
Layer _layer
 Layer this tuple refers to. More...
 
std::shared_ptr< AdaptiveMeshType_mesh
 Pointer to underlying mesh. More...
 

Detailed Description

template<typename AdaptiveMeshType_, int cell_dim_, int face_dim_>
class FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >

IndexTuple interface for adaptive meshes.

This class template is a compatability layer between the AdaptiveMesh class and the rest of FEAT. It presents a normal IndexTuple interface for a single layer of an AdaptiveMesh. This allows using the AdaptiveMeshLayer like any other mesh class.

Author
Markus Muegge

Definition at line 185 of file adaptive_mesh_layer.hpp.

Member Typedef Documentation

◆ AdaptiveMeshType

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
using FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::AdaptiveMeshType = AdaptiveMeshType_

Type of underlying adaptive mesh.

Definition at line 189 of file adaptive_mesh_layer.hpp.

Constructor & Destructor Documentation

◆ AdaptiveIndexTuple()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::AdaptiveIndexTuple ( std::shared_ptr< AdaptiveMeshType mesh,
Layer  layer,
Index  entity_idx 
)
inline

Constructor.

Parameters
[in]meshUnderlying mesh
[in]layerLayer this tuple refers to
[in]entity_idxEntity this tuple refers to

Definition at line 214 of file adaptive_mesh_layer.hpp.

Member Function Documentation

◆ operator[]()

◆ permute_map()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
void FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::permute_map ( const Adjacency::Permutation inv_perm)
inline

Permute this index tuple.

Warning
Does not permute the underlying memory. The permutation is applied by mapping indices one each future access.
Does not apply to any other AdaptiveIndexTuple, even if the other AdaptiveIndexTuple points to the same mesh entity.

Definition at line 252 of file adaptive_mesh_layer.hpp.

References FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::_inv_perm, and FEAT::Adjacency::Permutation::clone().

Member Data Documentation

◆ _entity_idx

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
Index FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::_entity_idx
private

Index of entity this tuple refers to.

Definition at line 197 of file adaptive_mesh_layer.hpp.

Referenced by FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::operator[]().

◆ _inv_perm

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
std::optional<Adjacency::Permutation> FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::_inv_perm
private

◆ _layer

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
Layer FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::_layer
private

◆ _mesh

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
std::shared_ptr<AdaptiveMeshType> FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::_mesh
private

◆ num_indices

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
constexpr int FEAT::Geometry::AdaptiveIndexTuple< AdaptiveMeshType_, cell_dim_, face_dim_ >::num_indices = Shape::FaceTraits<Shape::Hypercube<cell_dim_>, face_dim_>::count
staticconstexpr

The documentation for this class was generated from the following file: