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

IndexSet interface for adaptive meshes. More...

#include <adaptive_mesh_layer.hpp>

Classes

class  AdaptiveIndexSetAdjactor
 Adjactor for AdaptiveIndexSet. More...
 

Public Types

using AdaptiveMeshType = AdaptiveMeshType_
 Type of underlying mesh. More...
 
using ImageIterator = AdaptiveIndexSetAdjactor
 Adjactor type. More...
 
using IndexTupleType = AdaptiveIndexTuple< AdaptiveMeshType, cell_dim_, face_dim_ >
 Tuple type. More...
 

Public Member Functions

 AdaptiveIndexSet (AdaptiveIndexSet &&other)=default
 
 AdaptiveIndexSet (const AdaptiveIndexSet &other)=default
 
 AdaptiveIndexSet (std::shared_ptr< AdaptiveMeshType > mesh, Layer layer)
 Constructor. More...
 
std::size_t bytes () const
 Returns the size of dynamically allocated memory in bytes. More...
 
AdaptiveIndexSet clone () const
 Returns a clone of this index set. More...
 
Index get_index_bound () const
 Returns the maximum index of any face returned by this index set. More...
 
Index get_num_entities () const
 Returns the number of entities. More...
 
int get_num_indices () const
 Returns the number of indices per entity. More...
 
Index get_num_nodes_domain () const
 
Index get_num_nodes_image () const
 
AdaptiveIndexSetAdjactor image_begin (Index domain_node) const
 
AdaptiveIndexSetAdjactor image_end (Index domain_node) const
 
Index operator() (Index i, int j)
 access operator More...
 
Index operator() (Index i, int j) const
 access operator More...
 
AdaptiveIndexSetoperator= (AdaptiveIndexSet &&other)=default
 
AdaptiveIndexSetoperator= (const AdaptiveIndexSet &other)=default
 
IndexTupleType operator[] (Index i)
 Returns an adaptive index tuple. More...
 
IndexTupleType operator[] (Index i) const
 Returns an adaptive index tuple. More...
 
void permute (const Adjacency::Permutation &perm, const Adjacency::Permutation &inv_perm_face)
 

Static Public Member Functions

static String name ()
 

Static Public Attributes

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

Private Attributes

std::optional< Adjacency::Permutation_inverse_face_permutation
 
Layer _layer
 
std::shared_ptr< AdaptiveMeshType_mesh
 
std::optional< Adjacency::Permutation_permutation
 

Detailed Description

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

IndexSet interface for adaptive meshes.

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

Author
Markus Muegge

Definition at line 276 of file adaptive_mesh_layer.hpp.

Member Typedef Documentation

◆ AdaptiveMeshType

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

Type of underlying mesh.

Definition at line 280 of file adaptive_mesh_layer.hpp.

◆ ImageIterator

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
using FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::ImageIterator = AdaptiveIndexSetAdjactor

Adjactor type.

Definition at line 329 of file adaptive_mesh_layer.hpp.

◆ IndexTupleType

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

Tuple type.

Definition at line 332 of file adaptive_mesh_layer.hpp.

Constructor & Destructor Documentation

◆ AdaptiveIndexSet()

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

Constructor.

Parameters
[in]meshUnderlying mesh
[in]LayerLayer this index set refers to

Definition at line 349 of file adaptive_mesh_layer.hpp.

Member Function Documentation

◆ bytes()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
std::size_t FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::bytes ( ) const
inline

Returns the size of dynamically allocated memory in bytes.

Definition at line 374 of file adaptive_mesh_layer.hpp.

◆ clone()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
AdaptiveIndexSet FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::clone ( ) const
inline

Returns a clone of this index set.

Warning
A AdaptiveIndexSet is a view into a underlying AdaptiveMesh. The returned clone will thus not be independent of this AdaptiveIndexSet.

Definition at line 366 of file adaptive_mesh_layer.hpp.

◆ get_index_bound()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
Index FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::get_index_bound ( ) const
inline

Returns the maximum index of any face returned by this index set.

Definition at line 458 of file adaptive_mesh_layer.hpp.

◆ get_num_entities()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
Index FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::get_num_entities ( ) const
inline

Returns the number of entities.

Definition at line 442 of file adaptive_mesh_layer.hpp.

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

◆ get_num_indices()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
int FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::get_num_indices ( ) const
inline

Returns the number of indices per entity.

Definition at line 450 of file adaptive_mesh_layer.hpp.

References FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::num_indices.

◆ get_num_nodes_domain()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
Index FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::get_num_nodes_domain ( ) const
inline

Definition at line 499 of file adaptive_mesh_layer.hpp.

◆ get_num_nodes_image()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
Index FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::get_num_nodes_image ( ) const
inline

Definition at line 504 of file adaptive_mesh_layer.hpp.

◆ image_begin()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
AdaptiveIndexSetAdjactor FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::image_begin ( Index  domain_node) const
inline

Definition at line 509 of file adaptive_mesh_layer.hpp.

◆ image_end()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
AdaptiveIndexSetAdjactor FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::image_end ( Index  domain_node) const
inline

Definition at line 514 of file adaptive_mesh_layer.hpp.

◆ name()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
static String FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::name ( )
inlinestatic

Definition at line 492 of file adaptive_mesh_layer.hpp.

◆ operator()() [1/2]

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
Index FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::operator() ( Index  i,
int  j 
)
inline

access operator

Definition at line 380 of file adaptive_mesh_layer.hpp.

◆ operator()() [2/2]

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
Index FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::operator() ( Index  i,
int  j 
) const
inline

access operator

Definition at line 394 of file adaptive_mesh_layer.hpp.

◆ operator[]() [1/2]

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
IndexTupleType FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::operator[] ( Index  i)
inline

Returns an adaptive index tuple.

Parameters
[in]iThe index of the tuples entity
Warning
This method need to copy the shared_ptr to the AdaptiveMesh on each call. Use operator() if possible.

Definition at line 414 of file adaptive_mesh_layer.hpp.

References ASSERT, and FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::get_num_entities().

◆ operator[]() [2/2]

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
IndexTupleType FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::operator[] ( Index  i) const
inline

Returns an adaptive index tuple.

Parameters
[in]iThe index of the tuples entity
Warning
This method need to copy the shared_ptr to the AdaptiveMesh on each call. Use operator() if possible.

Definition at line 427 of file adaptive_mesh_layer.hpp.

References ASSERT, and FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::get_num_entities().

◆ permute()

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
void FEAT::Geometry::AdaptiveIndexSet< AdaptiveMeshType_, cell_dim_, face_dim_ >::permute ( const Adjacency::Permutation perm,
const Adjacency::Permutation inv_perm_face 
)
inline

Definition at line 469 of file adaptive_mesh_layer.hpp.

Member Data Documentation

◆ _inverse_face_permutation

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

Definition at line 340 of file adaptive_mesh_layer.hpp.

◆ _layer

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

Definition at line 337 of file adaptive_mesh_layer.hpp.

◆ _mesh

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

Definition at line 336 of file adaptive_mesh_layer.hpp.

◆ _permutation

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

Definition at line 339 of file adaptive_mesh_layer.hpp.

◆ num_indices

template<typename AdaptiveMeshType_ , int cell_dim_, int face_dim_>
constexpr int FEAT::Geometry::AdaptiveIndexSet< 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: