Loading [MathJax]/extensions/tex2jax.js
ug4
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
ug::DoFDistribution Class Reference

#include <dof_distribution.h>

+ Inheritance diagram for ug::DoFDistribution:

Classes

struct  dim_traits
 
struct  traits
 

Public Member Functions

template<typename TBaseElem >
void collect_associated (std::vector< TBaseElem * > &vAssElem, GridObject *elem, bool clearContainer=true) const
 
template<typename TElem , typename TBaseElem >
void collect_associated (std::vector< TBaseElem * > &vAssElem, TElem *elem, bool clearContainer=true) const
 returns the adjacent elements
 
void copy_values (const std::vector< std::pair< size_t, size_t > > &vIndexMap, bool bDisjunct)
 swaps values in managed functions, if indices swapped
 
SurfaceView::SurfaceConstants defaultValidSurfState () const
 returns the default valid surface state
 
DoFCount dof_count () const
 
 DoFDistribution (SmartPtr< MultiGrid > spMG, SmartPtr< MGSubsetHandler > spMGSH, ConstSmartPtr< DoFDistributionInfo > spDDInfo, SmartPtr< SurfaceView > spSurfView, const GridLevel &level, bool bGrouped, SmartPtr< DoFIndexStorage > spDoFIndexStorage=SPNULL)
 constructor
 
void get_connections (std::vector< std::vector< size_t > > &vvConnection) const
 returns the connections
 
template<typename TBaseElem >
void get_connections (std::vector< std::vector< size_t > > &vvConnection) const
 
const GridLevelgrid_level () const
 returns grid level
 
bool grouped () const
 returns if dofs are grouped
 
size_t inner_algebra_indices_for_fct (GridObject *elem, std::vector< size_t > &ind, bool bClear, int fct) const
 
template<class TGeomObj >
bool is_contained (TGeomObj *obj) const
 returns if the grid object is part of the dof distribution
 
void manage_grid_function (IGridFunction &gridFct)
 registers a grid function for adaptation management
 
size_t num_indices () const
 return the number of dofs distributed
 
size_t num_indices (int si) const
 return the number of dofs distributed on subset si
 
void permute_indices (const std::vector< size_t > &vIndNew)
 renames the indices
 
void permute_values (const std::vector< size_t > &vIndNew)
 permutes values in managed functions, if indices permuted
 
void reinit ()
 initializes the indices
 
void resize_values (size_t newSize)
 changes values in managed functions, number of indices changed
 
ConstSmartPtr< SurfaceViewsurface_view () const
 returns the surface view
 
void unmanage_grid_function (IGridFunction &gridFct)
 unregisters a grid function for adaptation management
 
 ~DoFDistribution ()
 destructor
 
SmartPtr< MultiGridmulti_grid ()
 
ConstSmartPtr< MultiGridmulti_grid () const
 
template<typename TElem >
traits< TElem >::iterator begin ()
 
template<typename TElem >
traits< TElem >::iterator begin (SurfaceView::SurfaceConstants validStates)
 
template<typename TElem >
traits< TElem >::iterator end ()
 
template<typename TElem >
traits< TElem >::iterator end (SurfaceView::SurfaceConstants validStates)
 
template<typename TElem >
traits< TElem >::const_iterator begin () const
 
template<typename TElem >
traits< TElem >::const_iterator begin (SurfaceView::SurfaceConstants validStates) const
 
template<typename TElem >
traits< TElem >::const_iterator end () const
 
template<typename TElem >
traits< TElem >::const_iterator end (SurfaceView::SurfaceConstants validStates) const
 
template<typename TElem >
traits< TElem >::iterator begin (int si)
 
template<typename TElem >
traits< TElem >::iterator begin (int si, SurfaceView::SurfaceConstants validStates)
 
template<typename TElem >
traits< TElem >::iterator end (int si)
 
template<typename TElem >
traits< TElem >::iterator end (int si, SurfaceView::SurfaceConstants validStates)
 
template<typename TElem >
traits< TElem >::const_iterator begin (int si) const
 
template<typename TElem >
traits< TElem >::const_iterator begin (int si, SurfaceView::SurfaceConstants validStates) const
 
template<typename TElem >
traits< TElem >::const_iterator end (int si) const
 
template<typename TElem >
traits< TElem >::const_iterator end (int si, SurfaceView::SurfaceConstants validStates) const
 
void indices (GridObject *elem, LocalIndices &ind, bool bHang=false) const
 extracts all indices of the element (sorted)
 
void indices (Vertex *elem, LocalIndices &ind, bool bHang=false) const
 extracts all indices of the element (sorted)
 
void indices (Edge *elem, LocalIndices &ind, bool bHang=false) const
 extracts all indices of the element (sorted)
 
void indices (Face *elem, LocalIndices &ind, bool bHang=false) const
 extracts all indices of the element (sorted)
 
void indices (Volume *elem, LocalIndices &ind, bool bHang=false) const
 extracts all indices of the element (sorted)
 
size_t dof_indices (GridObject *elem, size_t fct, std::vector< DoFIndex > &ind, bool bHang=false, bool bClear=true) const
 extracts all multiindices for a function (sorted)
 
size_t dof_indices (Vertex *elem, size_t fct, std::vector< DoFIndex > &ind, bool bHang=false, bool bClear=true) const
 extracts all multiindices for a function (sorted)
 
size_t dof_indices (Edge *elem, size_t fct, std::vector< DoFIndex > &ind, bool bHang=false, bool bClear=true) const
 extracts all multiindices for a function (sorted)
 
size_t dof_indices (Face *elem, size_t fct, std::vector< DoFIndex > &ind, bool bHang=false, bool bClear=true) const
 extracts all multiindices for a function (sorted)
 
size_t dof_indices (Volume *elem, size_t fct, std::vector< DoFIndex > &ind, bool bHang=false, bool bClear=true) const
 extracts all multiindices for a function (sorted)
 
size_t inner_dof_indices (GridObject *elem, size_t fct, std::vector< DoFIndex > &ind, bool bClear=true) const
 extracts all multiindices of a function in the inner (sorted)
 
size_t inner_dof_indices (Vertex *elem, size_t fct, std::vector< DoFIndex > &ind, bool bClear=true) const
 extracts all multiindices of a function in the inner (sorted)
 
size_t inner_dof_indices (Edge *elem, size_t fct, std::vector< DoFIndex > &ind, bool bClear=true) const
 extracts all multiindices of a function in the inner (sorted)
 
size_t inner_dof_indices (Face *elem, size_t fct, std::vector< DoFIndex > &ind, bool bClear=true) const
 extracts all multiindices of a function in the inner (sorted)
 
size_t inner_dof_indices (Volume *elem, size_t fct, std::vector< DoFIndex > &ind, bool bClear=true) const
 extracts all multiindices of a function in the inner (sorted)
 
size_t algebra_indices (GridObject *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices of an element (not sorted)
 
size_t algebra_indices (Vertex *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices of an element (not sorted)
 
size_t algebra_indices (Edge *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices of an element (not sorted)
 
size_t algebra_indices (Face *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices of an element (not sorted)
 
size_t algebra_indices (Volume *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices of an element (not sorted)
 
size_t inner_algebra_indices (GridObject *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices in the inner of the element (not sorted)
 
size_t inner_algebra_indices (Vertex *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices in the inner of the element (not sorted)
 
size_t inner_algebra_indices (Edge *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices in the inner of the element (not sorted)
 
size_t inner_algebra_indices (Face *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices in the inner of the element (not sorted)
 
size_t inner_algebra_indices (Volume *elem, std::vector< size_t > &ind, bool bClear=true) const
 extracts all algebra indices in the inner of the element (not sorted)
 
ConstSmartPtr< AlgebraLayoutslayouts () const
 
SmartPtr< AlgebraLayoutslayouts ()
 
- Public Member Functions inherited from ug::DoFDistributionInfoProvider
SubsetGroup all_subsets_grp_except_for (const char *names) const
 returns subset group of all the subsets except for (by name)
 
int dim (size_t fct) const
 returns the dimension in which solution lives
 
int dim_subset (int si) const
 returns dimension of subset
 
ConstSmartPtr< DoFDistributionInfodof_distribution_info () const
 returns underlying info
 
 DoFDistributionInfoProvider ()
 constructor
 
 DoFDistributionInfoProvider (ConstSmartPtr< DoFDistributionInfo > spDDI)
 constructor
 
FunctionGroup fct_grp_by_name (const char *names) const
 returns a function group to a string of functions
 
size_t fct_id_by_name (const char *name) const
 returns fct id by name
 
ConstSmartPtr< FunctionPatternfunction_pattern () const
 returns the function pattern
 
bool is_def_everywhere (size_t fct) const
 returns true if the discrete function nr_fct is defined everywhere
 
bool is_def_in_subset (size_t fct, int si) const
 returns if a function is defined on a subset
 
size_t max_dofs (const GridBaseObjectId gbo) const
 returns the maximum number of dofs on a grid base object type
 
size_t max_dofs (const GridBaseObjectId gbo, const int si) const
 returns the maximum number of dofs on a grid base object on a subset
 
size_t max_dofs (const int dim) const
 returns the maximum number of dofs on grid objects in a dimension
 
size_t max_dofs (const int dim, const int si) const
 returns the maximum number of dofs in a dimension on a subset
 
size_t max_dofs (const ReferenceObjectID roid) const
 returns the maximum number of dofs on reference object type
 
size_t max_fct_dofs (const size_t fct, const GridBaseObjectId gbo) const
 returns the maximal number of dofs on a base object type for a function component
 
size_t max_fct_dofs (const size_t fct, const GridBaseObjectId gbo, const int si) const
 returns the maximum number of dofs on a grid base object on a subset for a function component
 
size_t max_fct_dofs (const size_t fct, const int dim, const int si) const
 returns the maximum number of dofs in a dimension on a subset for a function component
 
size_t max_fct_dofs (const size_t fct, const ReferenceObjectID roid) const
 returns the number of dofs on a reference object for a function component
 
size_t max_fct_dofs (const size_t fct, int dim) const
 returns the maximal number of dofs on a dimension for a function component
 
std::string name (size_t fct) const
 returns the name of the discrete function nr_fct
 
std::vector< std::string > names () const
 returns the names of the discrete functions
 
size_t num_dofs (const ReferenceObjectID roid, const int si) const
 returns the number of dofs on a Reference Object on a subset
 
size_t num_fct () const
 number of discrete functions on subset si
 
size_t num_fct (int si) const
 number of discrete functions on subset si
 
size_t num_fct_dofs (const size_t fct, const ReferenceObjectID roid, const int si) const
 returns the number of dofs on a Reference Object on a subset for a function component
 
int num_subsets () const
 returns number of subsets
 
size_t offset (const ReferenceObjectID roid, const int si, const size_t fct) const
 returns the offset for reference element, subset and function
 
void print_local_dof_statistic () const
 prints statistic on local dof distribution
 
void print_local_dof_statistic (int verboseLev) const
 prints informations
 
void set_dof_distribution_info (ConstSmartPtr< DoFDistributionInfo > spDDI)
 sets the dd info
 
SubsetGroup subset_grp_by_name (const char *names) const
 returns subset group by name
 
ConstSmartPtr< ISubsetHandlersubset_handler () const
 returns the subset handler
 
int subset_id_by_name (const char *name) const
 returns the subset id
 
std::string subset_name (int si) const
 returns subset name
 
const LFEIDlocal_finite_element_id (size_t fct) const
 
const LFEIDlfeid (size_t fct) const
 

Protected Member Functions

template<typename TBaseElem >
size_t _algebra_indices (TBaseElem *elem, std::vector< size_t > &ind, bool bClear=true) const
 
template<typename TBaseElem >
size_t _dof_indices (TBaseElem *elem, size_t fct, std::vector< DoFIndex > &ind, bool bHang=false, bool bClear=true) const
 
template<typename TBaseElem >
void _indices (TBaseElem *elem, LocalIndices &ind, bool bHang=false) const
 
template<typename TBaseElem >
size_t _inner_algebra_indices (TBaseElem *elem, std::vector< size_t > &ind, bool bClear=true) const
 
template<typename TBaseElem >
size_t _inner_dof_indices (TBaseElem *elem, size_t fct, std::vector< DoFIndex > &ind, bool bClear=true) const
 
template<typename TBaseObject >
void add (TBaseObject *obj, const ReferenceObjectID roid, const int si)
 adds indices to a geometric object
 
template<typename TBaseElem >
void add_indices_from_layouts (IndexLayout &indexLayout, int keyType)
 
template<typename TBaseElem >
void changable_indices (std::vector< size_t > &vIndex, const std::vector< TBaseElem * > &vElem) const
 returns indices, that can be changed on the element
 
void check_subsets ()
 checks that subset assignment is ok
 
template<typename TBaseElem , typename TConstraining , typename TConstrained , typename TSubElem >
void constrained_edge_dof_indices (TBaseElem *elem, size_t fct, std::vector< DoFIndex > &ind, const typename Grid::traits< TSubElem >::secure_container &vSubElem) const
 multi indices on constrained edges
 
template<typename TBaseElem , typename TConstraining , typename TConstrained , typename TSubElem >
void constrained_edge_indices (TBaseElem *elem, LocalIndices &ind, const typename Grid::traits< TSubElem >::secure_container &vSubElem) const
 
template<typename TBaseElem , typename TConstraining , typename TConstrained , typename TSubElem >
void constrained_face_dof_indices (TBaseElem *elem, size_t fct, std::vector< DoFIndex > &ind, const typename Grid::traits< TSubElem >::secure_container &vSubElem) const
 multi indices on constrained faces
 
template<typename TBaseElem , typename TConstraining , typename TConstrained , typename TSubElem >
void constrained_face_indices (TBaseElem *elem, LocalIndices &ind, const typename Grid::traits< TSubElem >::secure_container &vSubElem) const
 
template<typename TConstraining , typename TConstrained , typename TBaseElem >
void constrained_vertex_dof_indices (size_t fct, std::vector< DoFIndex > &ind, const typename Grid::traits< TBaseElem >::secure_container &vSubElem) const
 multi indices on constrained vertices
 
template<typename TConstraining , typename TConstrained , typename TBaseElem >
void constrained_vertex_indices (LocalIndices &ind, const typename Grid::traits< TBaseElem >::secure_container &vSubElem) const
 extract dofs on constrained objects
 
template<typename TBaseElem , typename TSubBaseElem >
void dof_indices (TBaseElem *elem, const ReferenceObjectID roid, size_t fct, std::vector< DoFIndex > &ind, const typename Grid::traits< TSubBaseElem >::secure_container &vElem) const
 extracts the indices of a subelement of an element
 
template<typename TBaseElem >
void extract_inner_algebra_indices (const typename Grid::traits< TBaseElem >::secure_container &vElem, std::vector< size_t > &ind) const
 adds all algebra indices of a set of geometric objects
 
template<typename TBaseElem >
size_t extract_inner_algebra_indices (TBaseElem *elem, std::vector< size_t > &ind) const
 adds all algebra indices of an geom object to the LocalIndices
 
template<typename TBaseElem , typename TSubBaseElem >
void indices (TBaseElem *elem, const ReferenceObjectID roid, LocalIndices &ind, const typename Grid::traits< TSubBaseElem >::secure_container &vElem) const
 extracts the indices of the subelement of an element
 
template<typename TBaseElem >
void indices_on_vertex (TBaseElem *elem, const ReferenceObjectID roid, LocalIndices &ind, const Grid::SecureVertexContainer &vElem) const
 extracts the indices of the vertices
 
template<typename TBaseElem >
void permute_indices (const std::vector< size_t > &vNewInd)
 
template<typename TBaseElem >
void reinit ()
 initializes the indices
 
void reinit_index_layout (IndexLayout &layout, int keyType)
 
void reinit_layouts_and_communicator ()
 
template<typename TBaseElem , typename TConstraining , typename TConstrained >
void sort_constrained_edges (std::vector< size_t > &sortedInd, TBaseElem *elem, TConstraining *constrainingObj, size_t objIndex) const
 
template<typename TBaseElem , typename TConstraining , typename TConstrained >
void sort_constrained_faces (std::vector< size_t > &sortedInd, TBaseElem *elem, TConstraining *constrainingObj, size_t objIndex) const
 
template<typename TBaseElem >
void sum_dof_count (DoFCount &cnt) const
 
template<typename TElem >
size_t & obj_index (TElem *obj)
 
template<typename TElem >
const size_t & obj_index (TElem *obj) const
 

Protected Attributes

bool m_bGrouped
 grouping
 
GridLevel m_gridLevel
 Grid level.
 
size_t m_numIndex
 number of distributed indices on whole domain
 
MultiGridm_pMG
 
SmartPtr< AlgebraLayoutsm_spAlgebraLayouts
 algebra layouts
 
SmartPtr< DoFIndexStoragem_spDoFIndexStorage
 DoF-Index Memory Storage.
 
SmartPtr< MultiGridm_spMG
 Multi Grid.
 
SmartPtr< MGSubsetHandlerm_spMGSH
 Subset Handler.
 
SmartPtr< SurfaceViewm_spSurfView
 MultiGrid Subset Handler.
 
std::vector< size_t > m_vNumIndexOnSubset
 number of distributed indices on each subset
 
std::vector< IGridFunction * > m_vpGridFunction
 managed grid functions
 
- Protected Attributes inherited from ug::DoFDistributionInfoProvider
ConstSmartPtr< DoFDistributionInfom_spDDI
 Function Pattern.
 

Constructor & Destructor Documentation

◆ DoFDistribution()

ug::DoFDistribution::DoFDistribution ( SmartPtr< MultiGrid spMG,
SmartPtr< MGSubsetHandler spMGSH,
ConstSmartPtr< DoFDistributionInfo spDDInfo,
SmartPtr< SurfaceView spSurfView,
const GridLevel level,
bool  bGrouped,
SmartPtr< DoFIndexStorage spDoFIndexStorage = SPNULL 
)

◆ ~DoFDistribution()

ug::DoFDistribution::~DoFDistribution ( )

destructor

Member Function Documentation

◆ _algebra_indices()

template<typename TBaseElem >
size_t ug::DoFDistribution::_algebra_indices ( TBaseElem *  elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const
protected

◆ _dof_indices()

template<typename TBaseElem >
size_t ug::DoFDistribution::_dof_indices ( TBaseElem *  elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bHang = false,
bool  bClear = true 
) const
protected

◆ _indices()

◆ _inner_algebra_indices()

template<typename TBaseElem >
size_t ug::DoFDistribution::_inner_algebra_indices ( TBaseElem *  elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const
protected

◆ _inner_dof_indices()

template<typename TBaseElem >
size_t ug::DoFDistribution::_inner_dof_indices ( TBaseElem *  elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bClear = true 
) const
protected

◆ add()

template<typename TBaseObject >
void ug::DoFDistribution::add ( TBaseObject *  obj,
const ReferenceObjectID  roid,
const int  si 
)
protected

◆ add_indices_from_layouts()

◆ algebra_indices() [1/5]

size_t ug::DoFDistribution::algebra_indices ( Edge elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices of an element (not sorted)

All Algebra-Indices of the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

◆ algebra_indices() [2/5]

size_t ug::DoFDistribution::algebra_indices ( Face elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices of an element (not sorted)

All Algebra-Indices of the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

◆ algebra_indices() [3/5]

size_t ug::DoFDistribution::algebra_indices ( GridObject elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices of an element (not sorted)

All Algebra-Indices of the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

References algebra_indices(), ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, UG_THROW, ug::VERTEX, and ug::VOLUME.

Referenced by algebra_indices().

◆ algebra_indices() [4/5]

size_t ug::DoFDistribution::algebra_indices ( Vertex elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices of an element (not sorted)

All Algebra-Indices of the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

◆ algebra_indices() [5/5]

size_t ug::DoFDistribution::algebra_indices ( Volume elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices of an element (not sorted)

All Algebra-Indices of the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

◆ begin() [1/8]

template<typename TElem >
traits< TElem >::iterator ug::DoFDistribution::begin ( )
inline

iterator for elements where dofs are defined

References defaultValidSurfState(), m_gridLevel, and m_spSurfView.

Referenced by get_connections().

◆ begin() [2/8]

template<typename TElem >
traits< TElem >::const_iterator ug::DoFDistribution::begin ( ) const
inline

iterator for elements where dofs are defined

References defaultValidSurfState(), m_gridLevel, and m_spSurfView.

◆ begin() [3/8]

template<typename TElem >
traits< TElem >::iterator ug::DoFDistribution::begin ( int  si)
inline

iterator for elements where dofs are defined

References defaultValidSurfState(), m_gridLevel, and m_spSurfView.

◆ begin() [4/8]

template<typename TElem >
traits< TElem >::const_iterator ug::DoFDistribution::begin ( int  si) const
inline

iterator for elements where dofs are defined

References defaultValidSurfState(), m_gridLevel, and m_spSurfView.

◆ begin() [5/8]

template<typename TElem >
traits< TElem >::iterator ug::DoFDistribution::begin ( int  si,
SurfaceView::SurfaceConstants  validStates 
)
inline

iterator for elements where dofs are defined

References m_gridLevel, and m_spSurfView.

◆ begin() [6/8]

template<typename TElem >
traits< TElem >::const_iterator ug::DoFDistribution::begin ( int  si,
SurfaceView::SurfaceConstants  validStates 
) const
inline

iterator for elements where dofs are defined

References m_gridLevel, and m_spSurfView.

◆ begin() [7/8]

template<typename TElem >
traits< TElem >::iterator ug::DoFDistribution::begin ( SurfaceView::SurfaceConstants  validStates)
inline

iterator for elements where dofs are defined

References m_gridLevel, and m_spSurfView.

◆ begin() [8/8]

template<typename TElem >
traits< TElem >::const_iterator ug::DoFDistribution::begin ( SurfaceView::SurfaceConstants  validStates) const
inline

iterator for elements where dofs are defined

References m_gridLevel, and m_spSurfView.

◆ changable_indices()

template<typename TBaseElem >
void ug::DoFDistribution::changable_indices ( std::vector< size_t > &  vIndex,
const std::vector< TBaseElem * > &  vElem 
) const
protected

returns indices, that can be changed on the element

References m_spMGSH, obj_index(), and UG_ASSERT.

◆ check_subsets()

void ug::DoFDistribution::check_subsets ( )
protected

checks that subset assignment is ok

References ug::ElementDebugInfo(), m_spMGSH, multi_grid(), UG_LOGN, and UG_THROW.

Referenced by DoFDistribution().

◆ collect_associated() [1/2]

template<typename TBaseElem >
void ug::DoFDistribution::collect_associated ( std::vector< TBaseElem * > &  vAssElem,
GridObject elem,
bool  clearContainer = true 
) const
inline

References UG_THROW.

◆ collect_associated() [2/2]

template<typename TElem , typename TBaseElem >
void ug::DoFDistribution::collect_associated ( std::vector< TBaseElem * > &  vAssElem,
TElem *  elem,
bool  clearContainer = true 
) const
inline

◆ constrained_edge_dof_indices()

template<typename TBaseElem , typename TConstraining , typename TConstrained , typename TSubElem >
void ug::DoFDistribution::constrained_edge_dof_indices ( TBaseElem *  elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
const typename Grid::traits< TSubElem >::secure_container &  vSubElem 
) const
protected

◆ constrained_edge_indices()

template<typename TBaseElem , typename TConstraining , typename TConstrained , typename TSubElem >
void ug::DoFDistribution::constrained_edge_indices ( TBaseElem *  elem,
LocalIndices ind,
const typename Grid::traits< TSubElem >::secure_container &  vSubElem 
) const
protected

◆ constrained_face_dof_indices()

template<typename TBaseElem , typename TConstraining , typename TConstrained , typename TSubElem >
void ug::DoFDistribution::constrained_face_dof_indices ( TBaseElem *  elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
const typename Grid::traits< TSubElem >::secure_container &  vSubElem 
) const
protected

◆ constrained_face_indices()

template<typename TBaseElem , typename TConstraining , typename TConstrained , typename TSubElem >
void ug::DoFDistribution::constrained_face_indices ( TBaseElem *  elem,
LocalIndices ind,
const typename Grid::traits< TSubElem >::secure_container &  vSubElem 
) const
protected

◆ constrained_vertex_dof_indices()

template<typename TConstraining , typename TConstrained , typename TBaseElem >
void ug::DoFDistribution::constrained_vertex_dof_indices ( size_t  fct,
std::vector< DoFIndex > &  ind,
const typename Grid::traits< TBaseElem >::secure_container &  vSubElem 
) const
protected

◆ constrained_vertex_indices()

template<typename TConstraining , typename TConstrained , typename TBaseElem >
void ug::DoFDistribution::constrained_vertex_indices ( LocalIndices ind,
const typename Grid::traits< TBaseElem >::secure_container &  vSubElem 
) const
protected

◆ copy_values()

void ug::DoFDistribution::copy_values ( const std::vector< std::pair< size_t, size_t > > &  vIndexMap,
bool  bDisjunct 
)

swaps values in managed functions, if indices swapped

References copy_values(), and m_vpGridFunction.

Referenced by copy_values().

◆ defaultValidSurfState()

SurfaceView::SurfaceConstants ug::DoFDistribution::defaultValidSurfState ( ) const

◆ dof_count()

◆ dof_indices() [1/6]

size_t ug::DoFDistribution::dof_indices ( Edge elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bHang = false,
bool  bClear = true 
) const

extracts all multiindices for a function (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constrained Objects belonging to the constraining Subelements are extracted and added at the end of the indices. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bHangflag if extracting of constrained dofs required
[in]bClearflag if vector has to be clear before insertion

◆ dof_indices() [2/6]

size_t ug::DoFDistribution::dof_indices ( Face elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bHang = false,
bool  bClear = true 
) const

extracts all multiindices for a function (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constrained Objects belonging to the constraining Subelements are extracted and added at the end of the indices. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bHangflag if extracting of constrained dofs required
[in]bClearflag if vector has to be clear before insertion

◆ dof_indices() [3/6]

size_t ug::DoFDistribution::dof_indices ( GridObject elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bHang = false,
bool  bClear = true 
) const

extracts all multiindices for a function (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constrained Objects belonging to the constraining Subelements are extracted and added at the end of the indices. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bHangflag if extracting of constrained dofs required
[in]bClearflag if vector has to be clear before insertion

References ug::GridObject::base_object_id(), dof_indices(), ug::EDGE, ug::FACE, UG_THROW, ug::VERTEX, and ug::VOLUME.

Referenced by ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation(), ug::StdTransfer< TDomain, TAlgebra >::assemble_restriction(), and dof_indices().

◆ dof_indices() [4/6]

template<typename TBaseElem , typename TSubBaseElem >
void ug::DoFDistribution::dof_indices ( TBaseElem *  elem,
const ReferenceObjectID  roid,
size_t  fct,
std::vector< DoFIndex > &  ind,
const typename Grid::traits< TSubBaseElem >::secure_container &  vElem 
) const
protected

◆ dof_indices() [5/6]

size_t ug::DoFDistribution::dof_indices ( Vertex elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bHang = false,
bool  bClear = true 
) const

extracts all multiindices for a function (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constrained Objects belonging to the constraining Subelements are extracted and added at the end of the indices. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bHangflag if extracting of constrained dofs required
[in]bClearflag if vector has to be clear before insertion

◆ dof_indices() [6/6]

size_t ug::DoFDistribution::dof_indices ( Volume elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bHang = false,
bool  bClear = true 
) const

extracts all multiindices for a function (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constrained Objects belonging to the constraining Subelements are extracted and added at the end of the indices. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bHangflag if extracting of constrained dofs required
[in]bClearflag if vector has to be clear before insertion

◆ end() [1/8]

template<typename TElem >
traits< TElem >::iterator ug::DoFDistribution::end ( )
inline

iterator for elements where dofs are defined

References defaultValidSurfState(), m_gridLevel, and m_spSurfView.

Referenced by get_connections().

◆ end() [2/8]

template<typename TElem >
traits< TElem >::const_iterator ug::DoFDistribution::end ( ) const
inline

iterator for elements where dofs are defined

References defaultValidSurfState(), m_gridLevel, and m_spSurfView.

◆ end() [3/8]

template<typename TElem >
traits< TElem >::iterator ug::DoFDistribution::end ( int  si)
inline

iterator for elements where dofs are defined

References defaultValidSurfState(), m_gridLevel, and m_spSurfView.

◆ end() [4/8]

template<typename TElem >
traits< TElem >::const_iterator ug::DoFDistribution::end ( int  si) const
inline

iterator for elements where dofs are defined

References defaultValidSurfState(), m_gridLevel, and m_spSurfView.

◆ end() [5/8]

template<typename TElem >
traits< TElem >::iterator ug::DoFDistribution::end ( int  si,
SurfaceView::SurfaceConstants  validStates 
)
inline

iterator for elements where dofs are defined

References m_gridLevel, and m_spSurfView.

◆ end() [6/8]

template<typename TElem >
traits< TElem >::const_iterator ug::DoFDistribution::end ( int  si,
SurfaceView::SurfaceConstants  validStates 
) const
inline

iterator for elements where dofs are defined

References m_gridLevel, and m_spSurfView.

◆ end() [7/8]

template<typename TElem >
traits< TElem >::iterator ug::DoFDistribution::end ( SurfaceView::SurfaceConstants  validStates)
inline

iterator for elements where dofs are defined

References m_gridLevel, and m_spSurfView.

◆ end() [8/8]

template<typename TElem >
traits< TElem >::const_iterator ug::DoFDistribution::end ( SurfaceView::SurfaceConstants  validStates) const
inline

iterator for elements where dofs are defined

References m_gridLevel, and m_spSurfView.

◆ extract_inner_algebra_indices() [1/2]

template<typename TBaseElem >
void ug::DoFDistribution::extract_inner_algebra_indices ( const typename Grid::traits< TBaseElem >::secure_container &  vElem,
std::vector< size_t > &  ind 
) const
protected

adds all algebra indices of a set of geometric objects

References inner_algebra_indices().

◆ extract_inner_algebra_indices() [2/2]

template<typename TBaseElem >
size_t ug::DoFDistribution::extract_inner_algebra_indices ( TBaseElem *  elem,
std::vector< size_t > &  ind 
) const
protected

◆ get_connections() [1/2]

void ug::DoFDistribution::get_connections ( std::vector< std::vector< size_t > > &  vvConnection) const

◆ get_connections() [2/2]

template<typename TBaseElem >
void ug::DoFDistribution::get_connections ( std::vector< std::vector< size_t > > &  vvConnection) const

◆ grid_level()

const GridLevel & ug::DoFDistribution::grid_level ( ) const
inline

◆ grouped()

bool ug::DoFDistribution::grouped ( ) const
inline

returns if dofs are grouped

References m_bGrouped.

Referenced by get_connections().

◆ indices() [1/6]

void ug::DoFDistribution::indices ( Edge elem,
LocalIndices ind,
bool  bHang = false 
) const

extracts all indices of the element (sorted)

All Indices of the element (including the subelements) are extracted and stored in the LocalIndices structure. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constained Objects belonging to the constraining Subelements are extracted and added at the end of the indices.

Parameters
[in]elemthe element
[out]indLocal indices
[in]bHangflag if extracting of constrained dofs required

◆ indices() [2/6]

void ug::DoFDistribution::indices ( Face elem,
LocalIndices ind,
bool  bHang = false 
) const

extracts all indices of the element (sorted)

All Indices of the element (including the subelements) are extracted and stored in the LocalIndices structure. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constained Objects belonging to the constraining Subelements are extracted and added at the end of the indices.

Parameters
[in]elemthe element
[out]indLocal indices
[in]bHangflag if extracting of constrained dofs required

◆ indices() [3/6]

void ug::DoFDistribution::indices ( GridObject elem,
LocalIndices ind,
bool  bHang = false 
) const

extracts all indices of the element (sorted)

All Indices of the element (including the subelements) are extracted and stored in the LocalIndices structure. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constained Objects belonging to the constraining Subelements are extracted and added at the end of the indices.

Parameters
[in]elemthe element
[out]indLocal indices
[in]bHangflag if extracting of constrained dofs required

References ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, indices(), UG_THROW, ug::VERTEX, and ug::VOLUME.

Referenced by indices().

◆ indices() [4/6]

template<typename TBaseElem , typename TSubBaseElem >
void ug::DoFDistribution::indices ( TBaseElem *  elem,
const ReferenceObjectID  roid,
LocalIndices ind,
const typename Grid::traits< TSubBaseElem >::secure_container &  vElem 
) const
protected

◆ indices() [5/6]

void ug::DoFDistribution::indices ( Vertex elem,
LocalIndices ind,
bool  bHang = false 
) const

extracts all indices of the element (sorted)

All Indices of the element (including the subelements) are extracted and stored in the LocalIndices structure. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constained Objects belonging to the constraining Subelements are extracted and added at the end of the indices.

Parameters
[in]elemthe element
[out]indLocal indices
[in]bHangflag if extracting of constrained dofs required

◆ indices() [6/6]

void ug::DoFDistribution::indices ( Volume elem,
LocalIndices ind,
bool  bHang = false 
) const

extracts all indices of the element (sorted)

All Indices of the element (including the subelements) are extracted and stored in the LocalIndices structure. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bHang is set to true, also the DoFs on the Constained Objects belonging to the constraining Subelements are extracted and added at the end of the indices.

Parameters
[in]elemthe element
[out]indLocal indices
[in]bHangflag if extracting of constrained dofs required

◆ indices_on_vertex()

◆ inner_algebra_indices() [1/5]

size_t ug::DoFDistribution::inner_algebra_indices ( Edge elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices in the inner of the element (not sorted)

All Algebra-Indices of the element (excluding the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

◆ inner_algebra_indices() [2/5]

size_t ug::DoFDistribution::inner_algebra_indices ( Face elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices in the inner of the element (not sorted)

All Algebra-Indices of the element (excluding the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

◆ inner_algebra_indices() [3/5]

size_t ug::DoFDistribution::inner_algebra_indices ( GridObject elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices in the inner of the element (not sorted)

All Algebra-Indices of the element (excluding the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

References ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, inner_algebra_indices(), UG_THROW, ug::VERTEX, and ug::VOLUME.

Referenced by add_indices_from_layouts(), ug::AddEntriesToIndexLayout_DomainDecomposition(), ug::AddEntriesToLevelIndexLayout(), ug::AddEntriesToSurfaceIndexLayout(), ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation(), ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation_p1(), ug::StdTransfer< TDomain, TAlgebra >::assemble_restriction(), ug::AssembleInjectionByAverageOfChildren(), ug::AssembleInjectionForP1Lagrange(), extract_inner_algebra_indices(), inner_algebra_indices(), and ug::StdInjection< TDomain, TAlgebra >::set_identity_on_pure_surface().

◆ inner_algebra_indices() [4/5]

size_t ug::DoFDistribution::inner_algebra_indices ( Vertex elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices in the inner of the element (not sorted)

All Algebra-Indices of the element (excluding the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

◆ inner_algebra_indices() [5/5]

size_t ug::DoFDistribution::inner_algebra_indices ( Volume elem,
std::vector< size_t > &  ind,
bool  bClear = true 
) const

extracts all algebra indices in the inner of the element (not sorted)

All Algebra-Indices of the element (excluding the subelements) are extracted and stored in a std::vector. The order of the indices is not sorted, no constrained DoFs are extracted. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[out]indvector of algebra indices
[in]bClearflag if vector has to be clear before insertion

◆ inner_algebra_indices_for_fct()

◆ inner_dof_indices() [1/5]

size_t ug::DoFDistribution::inner_dof_indices ( Edge elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bClear = true 
) const

extracts all multiindices of a function in the inner (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bClearflag if vector has to be clear before insertion

◆ inner_dof_indices() [2/5]

size_t ug::DoFDistribution::inner_dof_indices ( Face elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bClear = true 
) const

extracts all multiindices of a function in the inner (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bClearflag if vector has to be clear before insertion

◆ inner_dof_indices() [3/5]

size_t ug::DoFDistribution::inner_dof_indices ( GridObject elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bClear = true 
) const

extracts all multiindices of a function in the inner (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bClearflag if vector has to be clear before insertion

References ug::GridObject::base_object_id(), ug::EDGE, ug::FACE, inner_dof_indices(), UG_THROW, ug::VERTEX, and ug::VOLUME.

Referenced by ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation(), ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation_p1(), ug::StdTransfer< TDomain, TAlgebra >::assemble_restriction(), and inner_dof_indices().

◆ inner_dof_indices() [4/5]

size_t ug::DoFDistribution::inner_dof_indices ( Vertex elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bClear = true 
) const

extracts all multiindices of a function in the inner (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bClearflag if vector has to be clear before insertion

◆ inner_dof_indices() [5/5]

size_t ug::DoFDistribution::inner_dof_indices ( Volume elem,
size_t  fct,
std::vector< DoFIndex > &  ind,
bool  bClear = true 
) const

extracts all multiindices of a function in the inner (sorted)

All Multi-Indices of a function living on the element (including the subelements) are extracted and stored in a std::vector. The order of the indices is sorted, i.e. the dofs are provided as specified in the local dof set of the local finite element trial space. If bClear is set to true, the vector is cleared before insertion.

Parameters
[in]elemthe element
[in]fctthe function
[out]indvector of multi indices
[in]bClearflag if vector has to be clear before insertion

◆ is_contained()

template<class TGeomObj >
bool ug::DoFDistribution::is_contained ( TGeomObj *  obj) const
inline

◆ layouts() [1/2]

SmartPtr< AlgebraLayouts > ug::DoFDistribution::layouts ( )
inline

returns algebra layouts

References m_spAlgebraLayouts.

◆ layouts() [2/2]

ConstSmartPtr< AlgebraLayouts > ug::DoFDistribution::layouts ( ) const
inline

returns algebra layouts

References m_spAlgebraLayouts.

Referenced by reinit_layouts_and_communicator().

◆ manage_grid_function()

void ug::DoFDistribution::manage_grid_function ( IGridFunction gridFct)

registers a grid function for adaptation management

References m_vpGridFunction.

◆ multi_grid() [1/2]

◆ multi_grid() [2/2]

ConstSmartPtr< MultiGrid > ug::DoFDistribution::multi_grid ( ) const
inline

returns the multigrid

References m_spMG.

◆ num_indices() [1/2]

◆ num_indices() [2/2]

size_t ug::DoFDistribution::num_indices ( int  si) const
inline

return the number of dofs distributed on subset si

References m_vNumIndexOnSubset.

◆ obj_index() [1/2]

◆ obj_index() [2/2]

template<typename TElem >
const size_t & ug::DoFDistribution::obj_index ( TElem *  obj) const
inlineprotected

returns the index assigned to a grid object

References m_spDoFIndexStorage.

◆ permute_indices() [1/2]

void ug::DoFDistribution::permute_indices ( const std::vector< size_t > &  vIndNew)

◆ permute_indices() [2/2]

template<typename TBaseElem >
void ug::DoFDistribution::permute_indices ( const std::vector< size_t > &  vNewInd)
protected

◆ permute_values()

void ug::DoFDistribution::permute_values ( const std::vector< size_t > &  vIndNew)

permutes values in managed functions, if indices permuted

References m_vpGridFunction, and permute_values().

Referenced by permute_indices(), and permute_values().

◆ reinit() [1/2]

◆ reinit() [2/2]

◆ reinit_index_layout()

void ug::DoFDistribution::reinit_index_layout ( IndexLayout layout,
int  keyType 
)
protected

◆ reinit_layouts_and_communicator()

◆ resize_values()

void ug::DoFDistribution::resize_values ( size_t  newSize)

changes values in managed functions, number of indices changed

References m_vpGridFunction, and resize_values().

Referenced by resize_values().

◆ sort_constrained_edges()

template<typename TBaseElem , typename TConstraining , typename TConstrained >
void ug::DoFDistribution::sort_constrained_edges ( std::vector< size_t > &  sortedInd,
TBaseElem *  elem,
TConstraining *  constrainingObj,
size_t  objIndex 
) const
protected

◆ sort_constrained_faces()

template<typename TBaseElem , typename TConstraining , typename TConstrained >
void ug::DoFDistribution::sort_constrained_faces ( std::vector< size_t > &  sortedInd,
TBaseElem *  elem,
TConstraining *  constrainingObj,
size_t  objIndex 
) const
protected

◆ sum_dof_count()

◆ surface_view()

ConstSmartPtr< SurfaceView > ug::DoFDistribution::surface_view ( ) const
inline

returns the surface view

References m_spSurfView.

◆ unmanage_grid_function()

void ug::DoFDistribution::unmanage_grid_function ( IGridFunction gridFct)

unregisters a grid function for adaptation management

References m_vpGridFunction.

Member Data Documentation

◆ m_bGrouped

◆ m_gridLevel

GridLevel ug::DoFDistribution::m_gridLevel
protected

◆ m_numIndex

size_t ug::DoFDistribution::m_numIndex
protected

number of distributed indices on whole domain

Referenced by add(), num_indices(), and reinit().

◆ m_pMG

MultiGrid* ug::DoFDistribution::m_pMG
protected

◆ m_spAlgebraLayouts

SmartPtr<AlgebraLayouts> ug::DoFDistribution::m_spAlgebraLayouts
protected

algebra layouts

Referenced by DoFDistribution(), layouts(), and layouts().

◆ m_spDoFIndexStorage

SmartPtr<DoFIndexStorage> ug::DoFDistribution::m_spDoFIndexStorage
protected

DoF-Index Memory Storage.

Referenced by DoFDistribution(), obj_index(), and obj_index().

◆ m_spMG

SmartPtr<MultiGrid> ug::DoFDistribution::m_spMG
protected

◆ m_spMGSH

◆ m_spSurfView

◆ m_vNumIndexOnSubset

std::vector<size_t> ug::DoFDistribution::m_vNumIndexOnSubset
protected

number of distributed indices on each subset

Referenced by add(), DoFDistribution(), num_indices(), and reinit().

◆ m_vpGridFunction

std::vector<IGridFunction*> ug::DoFDistribution::m_vpGridFunction
protected

managed grid functions

This vector holds a pointer to all grid functions, that should be managed (i.e. adapted), when the dof distribution is changed. NOTE: No SmartPtr is used here on purpose. The GridFunction stores a SmartPtr to the DoFDistribution. If we would use a SmartPtr here those objects would reference each other and would never be deleted.

Referenced by copy_values(), manage_grid_function(), permute_values(), resize_values(), and unmanage_grid_function().


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