ug4
ug::GridObject Class Referenceabstract

The base class for all geometric objects, such as vertices, edges, faces, volumes, ... More...

#include <grid_base_objects.h>

+ Inheritance diagram for ug::GridObject:

Public Member Functions

virtual int base_object_id () const =0
 
virtual int container_section () const =0
 
virtual GridObjectcreate_empty_instance () const
 create an instance of the derived type More...
 
uint grid_data_index () const
 Returns the grid attachment data index of a geometric object. More...
 
virtual bool is_constrained () const
 returns true if the object is constrained by other objects. More...
 
virtual bool is_constraining () const
 returns the id of the reference-object. More...
 
virtual ReferenceObjectID reference_object_id () const =0
 
virtual ~GridObject ()
 
virtual void remove_constraint_link (const Vertex *vrt)
 removes a constraint link to the grid object. More...
 
virtual void remove_constraint_link (const Edge *e)
 removes a constraint link to the grid object. More...
 
virtual void remove_constraint_link (const Face *f)
 removes a constraint link to the grid object. More...
 

Protected Member Functions

void set_grid_data_index (uint index)
 ATTENTION: Use this method with extreme care! More...
 

Protected Attributes

uint m_gridDataIndex
 

Friends

class attachment_traits< Edge *, ElementStorage< Edge > >
 
class attachment_traits< Face *, ElementStorage< Face > >
 
class attachment_traits< Vertex *, ElementStorage< Vertex > >
 
class attachment_traits< Volume *, ElementStorage< Volume > >
 
class Grid
 

Detailed Description

The base class for all geometric objects, such as vertices, edges, faces, volumes, ...

In order to be used by libGrid, all derivatives of GridObject have to specialize geometry_traits<GeomObjectType>.

Constructor & Destructor Documentation

◆ ~GridObject()

virtual ug::GridObject::~GridObject ( )
inlinevirtual

Member Function Documentation

◆ base_object_id()

virtual int ug::GridObject::base_object_id ( ) const
pure virtual

Implemented in ug::Volume, ug::Face, ug::Edge, and ug::Vertex.

Referenced by ug::AdaptionSurfaceGridFunction< TDomain >::ValueAccessor::access_closure(), ug::DoFDistribution::algebra_indices(), ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation(), ug::StdTransfer< TDomain, TAlgebra >::assemble_restriction(), ug::ISubsetHandler::assign_subset(), ug::MultiGrid::associate_parent(), ug::CalculateGridObjectCenter(), ug::CalculateOuterNormal(), ug::CheckLocalParentTypes(), ug::CollectAssociated(), ug::CollectEdgesSorted(), ug::CollectFacesSorted(), ug::CollectVertices(), ug::StdExplicitGridFunctionData< TImpl, TData, TGridFunction >::compute(), ug::GlobAttachmentElementUserData< WDim, TData >::compute(), ug::StdDataLinker< TImpl, TData, dim >::compute(), ug::StdDependentUserData< TImpl, TData, dim >::compute(), ug::ISelector::deselect(), ug::DeselectFamily(), ug::DeserializeMultiGridElements(), ug::NeuriteProjector::direction_at_grid_object(), ug::DoFDistribution::dof_indices(), ug::DoFPosition(), ug::DelaunayInfo< TAAPos >::edge_created(), ug::MultiGrid::edge_created(), ug::BoolMarker::edge_created(), ug::ISelector::edge_created(), ug::ISubsetHandler::edge_created(), ug::MultiGrid::edge_to_be_erased(), ug::ElementDebugInfo(), ug::ElementDiameterSq(), ug::Grid::erase(), ug::ComPol_CheckDistributedParentStates< TLayout >::extract(), ug::DelaunayInfo< TAAPos >::face_created(), ug::MultiGrid::face_created(), ug::BoolMarker::face_created(), ug::ISelector::face_created(), ug::ISubsetHandler::face_created(), ug::MultiGrid::face_to_be_erased(), ug::DistInfoSupplier::get(), ug::Grid::get_associated(), ug::MultiGrid::get_child(), ug::IRefiner::get_mark(), ug::MultiGrid::get_parent(), ug::ISelector::get_selection_status(), ug::DistributedGridManager::get_status(), ug::ISubsetHandler::get_subset_index(), ug::GetGridObjectCenter(), ug::DistributedGridManager::handle_created_element(), ug::PeriodicBoundaryManager::handle_creation_cast_wrapper(), ug::DoFDistribution::indices(), ug::DoFDistribution::inner_algebra_indices(), ug::DoFDistribution::inner_dof_indices(), ug::InnerDoFPosition(), ug::BoolMarker::is_marked(), ug::Grid::is_marked(), ug::IRefiner::mark(), ug::Grid::mark(), ug::MultiGrid::num_children(), ug::DoFIndexStorage::obj_index(), ug::MultiElementAttachmentAccessor< TAttachment >::operator[](), ug::HangingNodeRefiner_MultiGrid::perform_coarsening(), ug::DistributedGridManager::perform_ordered_element_insertion(), ug::ISelector::select(), ug::AdaptionSurfaceGridFunction< TDomain >::select_parents(), ug::ConstrainedVertex::set_constraining_object(), ug::ConstrainedEdge::set_constraining_object(), ug::ConstrainedFace::set_constraining_object(), ug::ShapesAtGlobalPosition(), ug::Grid::unmark(), ug::DelaunayInfo< TAAPos >::vertex_created(), ug::MultiGrid::vertex_created(), ug::BoolMarker::vertex_created(), ug::ISelector::vertex_created(), ug::ISubsetHandler::vertex_created(), ug::MultiGrid::vertex_to_be_erased(), ug::MultiGrid::volume_created(), ug::BoolMarker::volume_created(), ug::ISelector::volume_created(), ug::ISubsetHandler::volume_created(), ug::MultiGrid::volume_to_be_erased(), and ug::WriteParent().

◆ container_section()

◆ create_empty_instance()

◆ grid_data_index()

uint ug::GridObject::grid_data_index ( ) const
inline

Returns the grid attachment data index of a geometric object.

Beware that this index is for internal use in the grid management and can be changed by some operations (e.g. by Grid::defragment). But this function can be used for debugging, when one wants to identify an element at several places in the code.

Referenced by ug::attachment_traits< Vertex *, ElementStorage< Vertex > >::get_data_index(), ug::attachment_traits< Edge *, ElementStorage< Edge > >::get_data_index(), ug::attachment_traits< Face *, ElementStorage< Face > >::get_data_index(), and ug::attachment_traits< Volume *, ElementStorage< Volume > >::get_data_index().

◆ is_constrained()

virtual bool ug::GridObject::is_constrained ( ) const
inlinevirtual

◆ is_constraining()

virtual bool ug::GridObject::is_constraining ( ) const
inlinevirtual

returns the id of the reference-object.

returns true if the object constrains other objects. This is normally only the case for special constraining objects. The default implementation returns false.

Reimplemented in ug::ConstrainingFace, and ug::ConstrainingEdge.

Referenced by ug::CheckElementConsistency(), ug::CheckHangingNodeConsistency(), ug::HangingNodeRefiner_MultiGrid::perform_coarsening(), ug::LocalMarkAdjuster::ref_marks_changed(), and ug::HangingNodeRefiner_MultiGrid::refinement_is_allowed().

◆ reference_object_id()

virtual ReferenceObjectID ug::GridObject::reference_object_id ( ) const
pure virtual

A reference object represents a class of geometric objects. Tetrahedrons, Triangles etc are such classes. Reference ids should be defined in the file in which concrete geometric objects are defined.

Implemented in ug::Octahedron, ug::Pyramid, ug::Prism, ug::Hexahedron, ug::Tetrahedron, ug::CustomQuadrilateral< ConstrainedQuadrilateral, ConstrainedFace, ConstrainedTriangle, ConstrainedQuadrilateral >, ug::CustomQuadrilateral< Quadrilateral, Face, Triangle, Quadrilateral >, ug::CustomQuadrilateral< ConstrainingQuadrilateral, ConstrainingFace, ConstrainingTriangle, ConstrainingQuadrilateral >, ug::CustomTriangle< ConstrainedTriangle, ConstrainedFace, ConstrainedTriangle, ConstrainedQuadrilateral >, ug::CustomTriangle< ConstrainingTriangle, ConstrainingFace, ConstrainingTriangle, ConstrainingQuadrilateral >, ug::CustomTriangle< Triangle, Face, Triangle, Quadrilateral >, ug::ConstrainingEdge, ug::ConstrainedEdge, ug::RegularEdge, ug::ConstrainedVertex, ug::RegularVertex, ug::Volume, ug::Face, ug::Edge, and ug::Vertex.

Referenced by ug::IElemAssembleFuncs< TLeaf, TDomain >::add_def_A_elem(), ug::IElemAssembleFuncs< TLeaf, TDomain >::add_def_M_elem(), ug::IElemAssembleFuncs< TLeaf, TDomain >::add_jac_A_elem(), ug::IElemAssembleFuncs< TLeaf, TDomain >::add_jac_M_elem(), ug::IElemAssembleFuncs< TLeaf, TDomain >::add_rhs_elem(), ug::SideAndElemErrEstData< TDomain >::all_side_global_ips(), ug::ApplySmoothManifoldPosToTopLevelButterflyScheme(), ug::ApplySmoothManifoldPosToTopLevelLoopScheme(), ug::StdTransfer< TDomain, TAlgebra >::assemble_prolongation_p1(), ug::NeumannBoundaryFV1< TDomain >::compute_err_est_rhs_elem(), ug::DoFPosition(), ug::SideAndElemErrEstData< TDomain >::elem_global_ips(), ug::GridFunctionVectorData< TGridFunction >::eval_and_deriv(), ug::GridFunctionGradientData< TGridFunction >::eval_and_deriv(), ug::GradientDataExport< dim >::eval_and_deriv(), ug::VectorDataExport< dim >::eval_and_deriv(), ug::ProjectionLinker< dim >::eval_and_deriv(), ug::GridFunctionNumberData< TGridFunction >::eval_and_deriv(), ug::GridFunctionGradientComponentData< TGridFunction >::eval_and_deriv(), ug::ValueDataExport< dim >::eval_and_deriv(), ug::DataExport< TData, dim >::eval_and_deriv(), ug::ExplicitGridFunctionVector< TGridFunction >::evaluate(), ug::ExplicitGridFunctionGradient< TGridFunction >::evaluate(), ug::ProjectionLinker< dim >::evaluate(), ug::ExplicitGridFunctionValue< TGridFunction >::evaluate(), ug::L2DistIntegrand< TGridFunction >::evaluate(), ug::H1SemiDistIntegrand< TGridFunction >::evaluate(), ug::H1EnergyDistIntegrand< TGridFunction >::evaluate(), ug::H1DistIntegrand< TGridFunction >::evaluate(), ug::MaximumDistIntegrand< TGridFunction >::evaluate(), ug::L2ErrorIntegrand< TGridFunction >::evaluate(), ug::H1ErrorIntegrand< TGridFunction >::evaluate(), ug::L2Integrand< TGridFunction >::evaluate(), ug::H1SemiIntegrand< TGridFunction >::evaluate(), ug::H1EnergyIntegrand< TGridFunction >::evaluate(), ug::H1NormIntegrand< TGridFunction >::evaluate(), ug::StdFuncIntegrand< TGridFunction >::evaluate(), ug::UserDataDistIntegrandSq< TData, TGridFunction >::evaluate(), ug::OutNormCmp< TDomain >::evaluate(), ug::SideAndElemErrEstData< TDomain >::get_elem_error_indicator(), ug::DoFDistribution::inner_algebra_indices_for_fct(), ug::InnerDoFPosition(), ug::IElemAssembleFuncs< TLeaf, TDomain >::prep_elem(), ug::FV1InnerBoundaryElemDisc< TImpl, TDomain >::prep_err_est_elem(), ug::NeumannBoundaryFV1< TDomain >::prep_err_est_elem(), ug::ProlongateP1(), ug::ShapesAtGlobalPosition(), ug::SideAndElemErrEstData< TDomain >::side_global_ips(), ug::DimFV1Geometry< TDim, TWorldDim >::update(), ug::DimFV1IBGeometry< TDim, TWorldDim >::update(), ug::DimCRFVGeometry< TDim, TWorldDim >::update(), ug::DimFEGeometry< TWorldDim, TRefDim >::update(), ug::DimFVGeometry< TWorldDim, TDim >::update(), ug::DimFV1IBGeometry< TDim, TWorldDim >::update_boundary_faces(), ug::DimFEGeometry< TWorldDim, TRefDim >::update_boundary_faces(), ug::DimCRFVGeometry< TDim, TWorldDim >::update_geometric_data(), ug::DimCRFVGeometry< TDim, TWorldDim >::update_hanging(), and ug::GridWriterVTU::write_cells().

◆ remove_constraint_link() [1/3]

virtual void ug::GridObject::remove_constraint_link ( const Edge e)
inlinevirtual

removes a constraint link to the grid object.

This method is e.g. called on the constraining edges of a constrained vertex as soon as the constrained vertex is deleted.

Reimplemented in ug::ConstrainingFace, ug::ConstrainingEdge, ug::ConstrainedEdge, and ug::ConstrainedVertex.

◆ remove_constraint_link() [2/3]

virtual void ug::GridObject::remove_constraint_link ( const Face f)
inlinevirtual

removes a constraint link to the grid object.

This method is e.g. called on the constraining edges of a constrained vertex as soon as the constrained vertex is deleted.

Reimplemented in ug::ConstrainingFace, ug::ConstrainedFace, ug::ConstrainedEdge, and ug::ConstrainedVertex.

◆ remove_constraint_link() [3/3]

virtual void ug::GridObject::remove_constraint_link ( const Vertex vrt)
inlinevirtual

removes a constraint link to the grid object.

This method is e.g. called on the constraining edges of a constrained vertex as soon as the constrained vertex is deleted.

Reimplemented in ug::ConstrainingFace, and ug::ConstrainingEdge.

◆ set_grid_data_index()

void ug::GridObject::set_grid_data_index ( uint  index)
inlineprotected

ATTENTION: Use this method with extreme care!

This method is for internal use only and should almost never be called by a user of lib_grid. The method sets the attachment data index and is mainly used by attachment-traits classes.

Referenced by ug::attachment_traits< Vertex *, ElementStorage< Vertex > >::set_data_index(), ug::attachment_traits< Edge *, ElementStorage< Edge > >::set_data_index(), ug::attachment_traits< Face *, ElementStorage< Face > >::set_data_index(), and ug::attachment_traits< Volume *, ElementStorage< Volume > >::set_data_index().

Friends And Related Function Documentation

◆ attachment_traits< Edge *, ElementStorage< Edge > >

friend class attachment_traits< Edge *, ElementStorage< Edge > >
friend

◆ attachment_traits< Face *, ElementStorage< Face > >

friend class attachment_traits< Face *, ElementStorage< Face > >
friend

◆ attachment_traits< Vertex *, ElementStorage< Vertex > >

friend class attachment_traits< Vertex *, ElementStorage< Vertex > >
friend

◆ attachment_traits< Volume *, ElementStorage< Volume > >

friend class attachment_traits< Volume *, ElementStorage< Volume > >
friend

◆ Grid

friend class Grid
friend

Member Data Documentation

◆ m_gridDataIndex

uint ug::GridObject::m_gridDataIndex
protected

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