FEI Package Browser (Single Doxygen Collection) Version of the Day
Loading...
Searching...
No Matches
fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder > Class Template Reference

#include <fei_DofMapper.hpp>

Public Types

typedef std::map< Dof< LocalOrdinal, GlobalOrdinal >, GlobalOrdinal, DofOrder > DofMap
typedef std::map< GlobalOrdinal, const Dof< LocalOrdinal, GlobalOrdinal > * > IdxMap
typedef std::map< LocalOrdinal, LocalOrdinal > FieldSizeMap

Public Member Functions

 DofMapper ()
 ~DofMapper ()
void addDOF (LocalOrdinal rank, GlobalOrdinal id, LocalOrdinal field)
void setFieldSize (LocalOrdinal field, LocalOrdinal field_size)
LocalOrdinal getFieldSize (LocalOrdinal field) const
GlobalOrdinal getGlobalIndex (LocalOrdinal rank, GlobalOrdinal id, LocalOrdinal field) const
std::pair< const Dof< LocalOrdinal, GlobalOrdinal > *, LocalOrdinal > getDof (GlobalOrdinal global_index) const
bool maps_are_valid () const
void set_maps_are_valid (bool flag)
DofMap::const_iterator begin_dof () const
DofMap::const_iterator end_dof () const
DofMap::iterator begin_dof ()
DofMap::iterator end_dof ()
IdxMap::const_iterator begin_idx () const
IdxMap::const_iterator end_idx () const
IdxMap::iterator begin_idx ()
IdxMap::iterator end_idx ()
const DofMapget_dof_idx_map () const
DofMapget_dof_idx_map ()
const IdxMapget_idx_dof_map () const
IdxMapget_idx_dof_map ()
const FieldSizeMapgetFieldSizeMap () const

Private Member Functions

 DofMapper (const DofMapper< LocalOrdinal, GlobalOrdinal > &src)
DofMapperoperator= (const DofMapper< LocalOrdinal, GlobalOrdinal > &src)

Private Attributes

std::map< Dof< LocalOrdinal, GlobalOrdinal >, GlobalOrdinal, DofOrder > m_dof_idx
std::map< GlobalOrdinal, const Dof< LocalOrdinal, GlobalOrdinal > * > m_idx_dof
bool m_maps_are_valid
std::map< LocalOrdinal, LocalOrdinal > m_field_sizes

Detailed Description

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
class fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >

A mapping from mesh-degrees-of-freedom (dofs) to equation-numbers.

Mesh-dofs are represented by fei::Dof, see fei_Dof.hpp for details.

Equation numbers are also called global indices. They are globally-unique and zero-based.

A 'dof' may correspond to multiple global-indices if the dof's field has multiple scalar components, e.g. a vector field such as velocity in 3D.

  • The index returned by getGlobalIndex is the eqn-number for the first component of the dof's field.
  • The return-value of getDof is a pair<Dof,component> where component indicates which component of the dof's field corresponds to the input global-index.

Fields are assumed to be scalar fields (have 1 component) unless a field-size is set using the setFieldSize method.

Definition at line 42 of file fei_DofMapper.hpp.

Member Typedef Documentation

◆ DofMap

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
typedef std::map<Dof<LocalOrdinal,GlobalOrdinal>,GlobalOrdinal,DofOrder> fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::DofMap

Definition at line 74 of file fei_DofMapper.hpp.

◆ IdxMap

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
typedef std::map<GlobalOrdinal,const Dof<LocalOrdinal,GlobalOrdinal>*> fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::IdxMap

Definition at line 88 of file fei_DofMapper.hpp.

◆ FieldSizeMap

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
typedef std::map<LocalOrdinal,LocalOrdinal> fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::FieldSizeMap

Definition at line 108 of file fei_DofMapper.hpp.

Constructor & Destructor Documentation

◆ DofMapper() [1/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::DofMapper ( )
inline

constructor

Definition at line 45 of file fei_DofMapper.hpp.

References m_dof_idx, m_field_sizes, m_idx_dof, and m_maps_are_valid.

Referenced by DofMapper(), and operator=().

◆ ~DofMapper()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::~DofMapper ( )
inline

destructor

Definition at line 49 of file fei_DofMapper.hpp.

◆ DofMapper() [2/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::DofMapper ( const DofMapper< LocalOrdinal, GlobalOrdinal > & src)
private

References DofMapper().

Member Function Documentation

◆ addDOF()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
void fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::addDOF ( LocalOrdinal rank,
GlobalOrdinal id,
LocalOrdinal field )
inline

Definition at line 51 of file fei_DofMapper.hpp.

References m_dof_idx, m_field_sizes, and m_maps_are_valid.

◆ setFieldSize()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder>
void fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::setFieldSize ( LocalOrdinal field,
LocalOrdinal field_size )

Set the specified field to have the specified field_size. 'field' is added to the internal field map if not already present. If 'field' is already present, its field_size is reset to the new value.

Definition at line 124 of file fei_DofMapper.hpp.

References m_field_sizes.

◆ getFieldSize()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder>
LocalOrdinal fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::getFieldSize ( LocalOrdinal field) const

Definition at line 137 of file fei_DofMapper.hpp.

References m_field_sizes.

Referenced by fei::set_dof_mappings().

◆ getGlobalIndex()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder>
GlobalOrdinal fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::getGlobalIndex ( LocalOrdinal rank,
GlobalOrdinal id,
LocalOrdinal field ) const

Definition at line 151 of file fei_DofMapper.hpp.

References m_dof_idx.

◆ getDof()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder>
std::pair< const Dof< LocalOrdinal, GlobalOrdinal > *, LocalOrdinal > fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::getDof ( GlobalOrdinal global_index) const

Definition at line 167 of file fei_DofMapper.hpp.

References m_field_sizes, and m_idx_dof.

◆ maps_are_valid()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
bool fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::maps_are_valid ( ) const
inline

Definition at line 71 of file fei_DofMapper.hpp.

References m_maps_are_valid.

◆ set_maps_are_valid()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
void fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::set_maps_are_valid ( bool flag)
inline

Definition at line 72 of file fei_DofMapper.hpp.

References m_maps_are_valid.

Referenced by fei::set_dof_mappings().

◆ begin_dof() [1/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
DofMap::const_iterator fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::begin_dof ( ) const
inline

Definition at line 76 of file fei_DofMapper.hpp.

References m_dof_idx.

Referenced by fei::set_dof_mappings().

◆ end_dof() [1/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
DofMap::const_iterator fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::end_dof ( ) const
inline

Definition at line 79 of file fei_DofMapper.hpp.

References m_dof_idx.

Referenced by fei::set_dof_mappings().

◆ begin_dof() [2/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
DofMap::iterator fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::begin_dof ( )
inline

Definition at line 82 of file fei_DofMapper.hpp.

References m_dof_idx.

◆ end_dof() [2/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
DofMap::iterator fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::end_dof ( )
inline

Definition at line 85 of file fei_DofMapper.hpp.

References m_dof_idx.

◆ begin_idx() [1/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
IdxMap::const_iterator fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::begin_idx ( ) const
inline

Definition at line 90 of file fei_DofMapper.hpp.

References m_idx_dof.

◆ end_idx() [1/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
IdxMap::const_iterator fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::end_idx ( ) const
inline

Definition at line 93 of file fei_DofMapper.hpp.

References m_idx_dof.

◆ begin_idx() [2/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
IdxMap::iterator fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::begin_idx ( )
inline

Definition at line 96 of file fei_DofMapper.hpp.

References m_idx_dof.

◆ end_idx() [2/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
IdxMap::iterator fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::end_idx ( )
inline

Definition at line 99 of file fei_DofMapper.hpp.

References m_idx_dof.

◆ get_dof_idx_map() [1/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
const DofMap & fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::get_dof_idx_map ( ) const
inline

Definition at line 102 of file fei_DofMapper.hpp.

References m_dof_idx.

◆ get_dof_idx_map() [2/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
DofMap & fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::get_dof_idx_map ( )
inline

Definition at line 103 of file fei_DofMapper.hpp.

References m_dof_idx.

◆ get_idx_dof_map() [1/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
const IdxMap & fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::get_idx_dof_map ( ) const
inline

Definition at line 105 of file fei_DofMapper.hpp.

References m_idx_dof.

Referenced by fei::set_dof_mappings().

◆ get_idx_dof_map() [2/2]

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
IdxMap & fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::get_idx_dof_map ( )
inline

Definition at line 106 of file fei_DofMapper.hpp.

References m_idx_dof.

◆ getFieldSizeMap()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
const FieldSizeMap & fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::getFieldSizeMap ( ) const
inline

Definition at line 109 of file fei_DofMapper.hpp.

References m_field_sizes.

◆ operator=()

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
DofMapper & fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::operator= ( const DofMapper< LocalOrdinal, GlobalOrdinal > & src)
private

References DofMapper().

Member Data Documentation

◆ m_dof_idx

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
std::map<Dof<LocalOrdinal, GlobalOrdinal>, GlobalOrdinal, DofOrder > fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::m_dof_idx
private

◆ m_idx_dof

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
std::map<GlobalOrdinal, const Dof<LocalOrdinal, GlobalOrdinal>*> fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::m_idx_dof
private

◆ m_maps_are_valid

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
bool fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::m_maps_are_valid
private

Definition at line 115 of file fei_DofMapper.hpp.

Referenced by addDOF(), DofMapper(), maps_are_valid(), and set_maps_are_valid().

◆ m_field_sizes

template<class LocalOrdinal, class GlobalOrdinal, class DofOrder = less_rank_id_field<LocalOrdinal, GlobalOrdinal>>
std::map<LocalOrdinal,LocalOrdinal> fei::DofMapper< LocalOrdinal, GlobalOrdinal, DofOrder >::m_field_sizes
private

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