FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Geometry::OrientationMapping Class Reference

Mapping between different orientations of a refinement template. More...

#include <template_builder.hpp>

Public Member Functions

std::vector< std::pair< Index, int > > & get_mapping ()
 Accessor for full orientation mapping. More...
 
const std::vector< std::pair< Index, int > > & get_mapping () const
 Const accessor for full orientation mapping. More...
 
std::pair< Index, int > operator() (Index idx) const
 Apply operator. More...
 

Private Attributes

std::vector< std::pair< Index, int > > _mapping
 Index -> Index mapping. More...
 

Detailed Description

Mapping between different orientations of a refinement template.

During adaptive mesh refinements, certain entities are shared between multiple entities of the mesh. To deal with these shared elements in an orderly fashion, the adaptive mesh refines them standalone, starting with edges and working upward. Adjacent entities can then retrieve the shared entities during their own construction. Because the orientation of entities can differ between the local orientation seen by a hihger-dimensional entity and the entities actual orientation, we need to correct for orientation when retrieving such a shared entity.

Consider for example an edge shared between two faces

2—3 0 | | | 0—1 1

Face 1 Edge

By the usual FEAT convention the right edge of face 1 runs from bottom to top, that is aginst the actual direction of the edge. When retrieving a child of the edge, the order of the children as seen by the face and as seen by the edge are thus reversed. The OrientationMappings correct for this discrepancy.

A OrientationMapping represents a function between the local child-indices of some shared entity and the actual child entities. The OrientationMappingHolder and OrienationMappingWrapper use the OrientationMapping to build the full Type x Orientation x Index -> Index mapping required for orientation-correction.

Definition at line 782 of file template_builder.hpp.

Member Function Documentation

◆ get_mapping() [1/2]

std::vector< std::pair< Index, int > > & FEAT::Geometry::OrientationMapping::get_mapping ( )
inline

Accessor for full orientation mapping.

Definition at line 795 of file template_builder.hpp.

References _mapping.

Referenced by FEAT::Geometry::TemplateBuilder< RawData_ >::_fill_orientation_mappings().

◆ get_mapping() [2/2]

const std::vector< std::pair< Index, int > > & FEAT::Geometry::OrientationMapping::get_mapping ( ) const
inline

Const accessor for full orientation mapping.

Definition at line 801 of file template_builder.hpp.

References _mapping.

◆ operator()()

std::pair< Index, int > FEAT::Geometry::OrientationMapping::operator() ( Index  idx) const
inline

Apply operator.

Definition at line 789 of file template_builder.hpp.

References _mapping.

Member Data Documentation

◆ _mapping

std::vector<std::pair<Index, int> > FEAT::Geometry::OrientationMapping::_mapping
private

Index -> Index mapping.

Definition at line 785 of file template_builder.hpp.

Referenced by get_mapping(), and operator()().


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