ug4
Loading...
Searching...
No Matches
ug::arte::diamonds::DiamondsEstablish3D Class Reference

#include <DiamondsEstablish3D.h>

Public Types

using IndexType = unsigned short
 
using VecVolManifVrtxCombi = std::vector< VolManifVrtxCombi >
 
using VolManifVrtxCombi = diamonds::VolManifVrtxCombi< Volume *, Face *, Edge *, Vertex *, IndexType >
 
using VrtxPair = std::pair< Vertex *, Vertex * >
 

Public Member Functions

bool createTheDiamonds ()
 
 DiamondsEstablish3D (Grid &grid, SubsetHandler &sh, VecVolManifVrtxCombi const &vecVolManifVrtxC)
 
virtual ~DiamondsEstablish3D ()
 

Private Types

using AttElemGrpVrtx2BQuenchd = Attachment< ElemGroupVrtx2BQuenched4Diams >
 
using AttVecInt = Attachment< std::vector< IndexType > >
 
using AttVrtVec = Attachment< std::vector< Vertex * > >
 
using CombiCntrVrtxSudo = CombiCenterVrtxSudo< Vertex *, IndexType >
 
using CombiNewVolsProps = CombiEntitiesProperties< Volume *, Face *, Edge *, Vertex *, IndexType >
 
using CombiShiftVrtxMidVrtx = CombiPairSingle< Vertex * >
 
using EdgePair = std::pair< Edge *, Edge * >
 
using ElemGroupVrtx2BQuenched4Diams = ElemGroupVrtxToBeQuenched4DiamSpace< Volume *, Face *, Edge *, Vertex *, IndexType >
 
using Elems2BQuenched = ElemsToBeQuenched4DiamSpace< Volume *, Face *, Edge *, Vertex *, IndexType >
 
using IndxVec = std::vector< IndexType >
 
using PairVolFacVrtxCmb = std::pair< VolManifVrtxCombi, VolManifVrtxCombi >
 
using PairVolumeEdgeTwin = std::pair< VolumeEdgeTwin, VolumeEdgeTwin >
 
using VecCombiCntrVrtxSudo = std::vector< CombiCenterVrtxSudo< Vertex *, IndexType > >
 
using VecCombiNewVolsProps = std::vector< CombiNewVolsProps >
 
using VecCombiShiftVrtxMidVrtx = std::vector< CombiShiftVrtxMidVrtx >
 
using VecElemGroupVrtx2BQnchd4D = std::vector< ElemGroupVrtx2BQuenched4Diams >
 
using VecElems2BQuenched = std::vector< Elems2BQuenched >
 
using VecIndxVec = std::vector< IndxVec >
 
using VecVolumeElementFaceQuintuplet = std::vector< VolumeElementFaceQuintuplet >
 
using VolumeEdgeTwin = FulldimLowdimTwin< Volume *, Edge *, IndexType >
 
using VolumeElementFaceQuintuplet = FullLowDimManifQuintuplet< Volume *, Face *, Edge *, Vertex *, IndexType >
 
using VolumeElementTwin = FulldimLowdimTwin< Volume *, Edge *, IndexType >
 
using VrtxIndxCombi = std::vector< VrtxIndxPair >
 
using VrtxIndxPair = std::pair< Vertex *, IndxVec >
 

Private Member Functions

bool assignBasicAtts ()
 
bool assignMidPointOfShiftVrtcs (Elems2BQuenched &e2bq)
 
bool assignSudoOfNewVols2VolAndSubElems (Volume *&vol, IndexType sudo)
 
bool attachMarkers ()
 
bool checkAttsOfShiftFaceVrtcs (std::vector< Vertex * > const &centerVrtcs, std::vector< Vertex * > const &shiftVrtcs)
 
bool createConditionForNewVrtcs ()
 
bool createMidVrtx (VrtxPair const &shiftVrtcs, Vertex *&midVrtx)
 
void debugE2bQ (Elems2BQuenched &e2bq)
 
bool detachMarkers ()
 
bool detectRemovableEdges ()
 
bool determineShiftFaces ()
 
bool distributeInfosForShrinkingVols ()
 
bool establishElems2BeQuenched ()
 
bool establishNewVertex (Vertex *const &shiVrtxOne, Vertex *const &shiVrtxTwo, Vertex *&midVrtx)
 
bool figureOutTheEdges ()
 
bool findRegions2BShrinked ()
 
bool findShiftFaceVertices (Volume *&vol, std::vector< Vertex * > &centerVrtcs, std::vector< Vertex * > &midPtVrtcs)
 
bool generateNewDiamSudos (Vertex *&centerV, IndxVec sudoList)
 
bool initialize ()
 
bool postprocessNewDiamVols ()
 
bool setSelector ()
 
bool shrinkVolumes ()
 
bool sortElems2BQuenched ()
 
bool splitThreeCrossLargeDiams (CombiNewVolsProps &combiNewVolsProps)
 
bool teachMidVrtx2Vol (Volume *const &vol, Vertex *const &origVrtx, Vertex *const &midVrtx)
 
bool trafoCollectedInfo2Attachments ()
 
bool trafoQuintupleInfo2Attachments (VolumeElementFaceQuintuplet &vef5)
 
bool trafoVolFacVrtxCombiPair2FullLowDimManifQuintuplet (PairVolFacVrtxCmb &prVolFacVrtxC, VolumeElementFaceQuintuplet &vef5)
 

Private Attributes

Grid::VertexAttachmentAccessor< APositionm_aaPos
 
Grid::VertexAttachmentAccessor< AVertexm_attAccsCenterVrtxOfShiftVrtx
 
Grid::EdgeAttachmentAccessor< ABoolm_attAccsEdgeCanBeRemoved
 
Grid::EdgeAttachmentAccessor< ABoolm_attAccsEdgeIsShiftEdge
 
Grid::VertexAttachmentAccessor< AttElemGrpVrtx2BQuenchdm_attAccsElmGrpVrtx2BQnchd
 
Grid::FaceAttachmentAccessor< ABoolm_attAccsFacIsShiftFac
 
Grid::FaceAttachmentAccessor< ABoolm_attAccsFacIsShiftQuadriliteralFac
 
Grid::FaceAttachmentAccessor< ABoolm_attAccsFacIsShiftTriangleFac
 
Grid::FaceAttachmentAccessor< ABoolm_attAccsFacIsTwinFac
 
Grid::VertexAttachmentAccessor< AttVecIntm_attAccsInfoVecSudosTouchingVrtx
 
Grid::VertexAttachmentAccessor< AVertexm_attAccsMidPtVrtxOfShiftVrtx
 
Grid::VertexAttachmentAccessor< AIntm_attAccsNewSudoOfVrtx
 
Grid::VolumeAttachmentAccessor< ABoolm_attAccsVolGetsShrinked
 
Grid::VolumeAttachmentAccessor< AttVrtVecm_attAccsVrtVecVol
 
Grid::VertexAttachmentAccessor< ABoolm_attAccsVrtxIsCenterVrtx
 
Grid::VertexAttachmentAccessor< ABoolm_attAccsVrtxIsMidPtOfShiftVrtcs
 
Grid::VertexAttachmentAccessor< ABoolm_attAccsVrtxIsShiftVrtx
 
AVertex m_attCenterVrtxOfShiftVrtx
 
ABool m_attEdgeCanBeRemoved
 
AttElemGrpVrtx2BQuenchd m_attElmGrpVrtx2BQnchd
 
AttVecInt m_attInfoVecSudosTouchingVrtx
 
ABool m_attMarkEdgeIsShiftEdge
 
ABool m_attMarkShiftFace
 
ABool m_attMarkShiftQuadriliteralFace
 
ABool m_attMarkShiftTriangleFace
 
ABool m_attMarkTwinFace
 
ABool m_attMarkVolGetsShrinked
 
ABool m_attMarkVrtxIsCenterVrtx
 
ABool m_attMarkVrtxIsShiftVrtx
 
AVertex m_attMidPtVrtxOfShiftVrtx
 
AInt m_attNewSudoOfVrtx
 
AttVrtVec m_attVrtVec
 
ABool m_attVrtxIsMidPtOfShiftVrtx
 
std::vector< Face * > m_disappearingFacs
 
std::vector< Volume * > m_disappearingVols
 
std::vector< Edge * > m_edges2BDeletedAtLastStep
 
std::vector< Face * > m_faces2BDeletedAtLastStep
 
Gridm_grid
 
Selector m_sel
 
SubsetHandlerm_sh
 
VecIndxVec m_sudosTable
 
VecCombiCntrVrtxSudo m_vecCombiCntrVrtxSudo
 
VecCombiNewVolsProps m_vecCombiNewVolsThreeCross
 
VecCombiNewVolsProps m_vecCombiNewVolsTwoCross
 
VecCombiShiftVrtxMidVrtx m_vecCombiShiftVrtxMidVrtx
 
VecElemGroupVrtx2BQnchd4D m_vecElemGroupVrtx2BQuenched
 
VecElems2BQuenched m_vecElems2BQuenched
 
VecVolumeElementFaceQuintuplet m_vecVolElmFac5
 
VecVolManifVrtxCombi m_vecVolManifVrtxCombiToShrink4Diams
 

Member Typedef Documentation

◆ AttElemGrpVrtx2BQuenchd

◆ AttVecInt

◆ AttVrtVec

◆ CombiCntrVrtxSudo

◆ CombiNewVolsProps

◆ CombiShiftVrtxMidVrtx

◆ EdgePair

◆ ElemGroupVrtx2BQuenched4Diams

◆ Elems2BQuenched

◆ IndexType

◆ IndxVec

◆ PairVolFacVrtxCmb

◆ PairVolumeEdgeTwin

◆ VecCombiCntrVrtxSudo

◆ VecCombiNewVolsProps

◆ VecCombiShiftVrtxMidVrtx

◆ VecElemGroupVrtx2BQnchd4D

◆ VecElems2BQuenched

◆ VecIndxVec

◆ VecVolManifVrtxCombi

◆ VecVolumeElementFaceQuintuplet

◆ VolManifVrtxCombi

◆ VolumeEdgeTwin

◆ VolumeElementFaceQuintuplet

◆ VolumeElementTwin

◆ VrtxIndxCombi

◆ VrtxIndxPair

◆ VrtxPair

Constructor & Destructor Documentation

◆ DiamondsEstablish3D()

ug::arte::diamonds::DiamondsEstablish3D::DiamondsEstablish3D ( Grid grid,
SubsetHandler sh,
DiamondsEstablish3D::VecVolManifVrtxCombi const &  vecVolManifVrtxC 
)

References m_sel.

◆ ~DiamondsEstablish3D()

ug::arte::diamonds::DiamondsEstablish3D::~DiamondsEstablish3D ( )
virtual

Member Function Documentation

◆ assignBasicAtts()

◆ assignMidPointOfShiftVrtcs()

◆ assignSudoOfNewVols2VolAndSubElems()

◆ attachMarkers()

◆ checkAttsOfShiftFaceVrtcs()

bool ug::arte::diamonds::DiamondsEstablish3D::checkAttsOfShiftFaceVrtcs ( std::vector< Vertex * > const &  centerVrtcs,
std::vector< Vertex * > const &  shiftVrtcs 
)
private

◆ createConditionForNewVrtcs()

bool ug::arte::diamonds::DiamondsEstablish3D::createConditionForNewVrtcs ( )
private

◆ createMidVrtx()

bool ug::arte::diamonds::DiamondsEstablish3D::createMidVrtx ( VrtxPair const &  shiftVrtcs,
Vertex *&  midVrtx 
)
private

◆ createTheDiamonds()

◆ debugE2bQ()

◆ detachMarkers()

◆ detectRemovableEdges()

◆ determineShiftFaces()

◆ distributeInfosForShrinkingVols()

bool ug::arte::diamonds::DiamondsEstablish3D::distributeInfosForShrinkingVols ( )
private

◆ establishElems2BeQuenched()

◆ establishNewVertex()

bool ug::arte::diamonds::DiamondsEstablish3D::establishNewVertex ( Vertex *const &  shiVrtxOne,
Vertex *const &  shiVrtxTwo,
Vertex *&  midVrtx 
)
private

◆ figureOutTheEdges()

bool ug::arte::diamonds::DiamondsEstablish3D::figureOutTheEdges ( )
private

◆ findRegions2BShrinked()

◆ findShiftFaceVertices()

bool ug::arte::diamonds::DiamondsEstablish3D::findShiftFaceVertices ( Volume *&  vol,
std::vector< Vertex * > &  centerVrtcs,
std::vector< Vertex * > &  midPtVrtcs 
)
private

References m_attAccsVrtVecVol.

Referenced by shrinkVolumes().

◆ generateNewDiamSudos()

bool ug::arte::diamonds::DiamondsEstablish3D::generateNewDiamSudos ( Vertex *&  centerV,
IndxVec  sudoList 
)
private

◆ initialize()

bool ug::arte::diamonds::DiamondsEstablish3D::initialize ( )
private

◆ postprocessNewDiamVols()

◆ setSelector()

◆ shrinkVolumes()

◆ sortElems2BQuenched()

◆ splitThreeCrossLargeDiams()

bool ug::arte::diamonds::DiamondsEstablish3D::splitThreeCrossLargeDiams ( CombiNewVolsProps combiNewVolsProps)
private

◆ teachMidVrtx2Vol()

bool ug::arte::diamonds::DiamondsEstablish3D::teachMidVrtx2Vol ( Volume *const &  vol,
Vertex *const &  origVrtx,
Vertex *const &  midVrtx 
)
private

◆ trafoCollectedInfo2Attachments()

bool ug::arte::diamonds::DiamondsEstablish3D::trafoCollectedInfo2Attachments ( )
private

◆ trafoQuintupleInfo2Attachments()

◆ trafoVolFacVrtxCombiPair2FullLowDimManifQuintuplet()

Member Data Documentation

◆ m_aaPos

◆ m_attAccsCenterVrtxOfShiftVrtx

Grid::VertexAttachmentAccessor<AVertex> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsCenterVrtxOfShiftVrtx
private

◆ m_attAccsEdgeCanBeRemoved

Grid::EdgeAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsEdgeCanBeRemoved
private

◆ m_attAccsEdgeIsShiftEdge

Grid::EdgeAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsEdgeIsShiftEdge
private

◆ m_attAccsElmGrpVrtx2BQnchd

Grid::VertexAttachmentAccessor<AttElemGrpVrtx2BQuenchd> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsElmGrpVrtx2BQnchd
private

Referenced by assignBasicAtts(), and attachMarkers().

◆ m_attAccsFacIsShiftFac

Grid::FaceAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsFacIsShiftFac
private

◆ m_attAccsFacIsShiftQuadriliteralFac

Grid::FaceAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsFacIsShiftQuadriliteralFac
private

◆ m_attAccsFacIsShiftTriangleFac

Grid::FaceAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsFacIsShiftTriangleFac
private

◆ m_attAccsFacIsTwinFac

Grid::FaceAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsFacIsTwinFac
private

◆ m_attAccsInfoVecSudosTouchingVrtx

Grid::VertexAttachmentAccessor<AttVecInt> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsInfoVecSudosTouchingVrtx
private

◆ m_attAccsMidPtVrtxOfShiftVrtx

Grid::VertexAttachmentAccessor<AVertex> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsMidPtVrtxOfShiftVrtx
private

◆ m_attAccsNewSudoOfVrtx

Grid::VertexAttachmentAccessor<AInt> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsNewSudoOfVrtx
private

◆ m_attAccsVolGetsShrinked

Grid::VolumeAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsVolGetsShrinked
private

◆ m_attAccsVrtVecVol

Grid::VolumeAttachmentAccessor<AttVrtVec> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsVrtVecVol
private

◆ m_attAccsVrtxIsCenterVrtx

Grid::VertexAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsVrtxIsCenterVrtx
private

◆ m_attAccsVrtxIsMidPtOfShiftVrtcs

Grid::VertexAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsVrtxIsMidPtOfShiftVrtcs
private

◆ m_attAccsVrtxIsShiftVrtx

Grid::VertexAttachmentAccessor<ABool> ug::arte::diamonds::DiamondsEstablish3D::m_attAccsVrtxIsShiftVrtx
private

◆ m_attCenterVrtxOfShiftVrtx

AVertex ug::arte::diamonds::DiamondsEstablish3D::m_attCenterVrtxOfShiftVrtx
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attEdgeCanBeRemoved

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attEdgeCanBeRemoved
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attElmGrpVrtx2BQnchd

AttElemGrpVrtx2BQuenchd ug::arte::diamonds::DiamondsEstablish3D::m_attElmGrpVrtx2BQnchd
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attInfoVecSudosTouchingVrtx

AttVecInt ug::arte::diamonds::DiamondsEstablish3D::m_attInfoVecSudosTouchingVrtx
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attMarkEdgeIsShiftEdge

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attMarkEdgeIsShiftEdge
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attMarkShiftFace

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attMarkShiftFace
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attMarkShiftQuadriliteralFace

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attMarkShiftQuadriliteralFace
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attMarkShiftTriangleFace

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attMarkShiftTriangleFace
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attMarkTwinFace

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attMarkTwinFace
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attMarkVolGetsShrinked

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attMarkVolGetsShrinked
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attMarkVrtxIsCenterVrtx

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attMarkVrtxIsCenterVrtx
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attMarkVrtxIsShiftVrtx

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attMarkVrtxIsShiftVrtx
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attMidPtVrtxOfShiftVrtx

AVertex ug::arte::diamonds::DiamondsEstablish3D::m_attMidPtVrtxOfShiftVrtx
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attNewSudoOfVrtx

AInt ug::arte::diamonds::DiamondsEstablish3D::m_attNewSudoOfVrtx
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attVrtVec

AttVrtVec ug::arte::diamonds::DiamondsEstablish3D::m_attVrtVec
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_attVrtxIsMidPtOfShiftVrtx

ABool ug::arte::diamonds::DiamondsEstablish3D::m_attVrtxIsMidPtOfShiftVrtx
private

Referenced by attachMarkers(), and detachMarkers().

◆ m_disappearingFacs

std::vector<Face*> ug::arte::diamonds::DiamondsEstablish3D::m_disappearingFacs
private

◆ m_disappearingVols

std::vector<Volume*> ug::arte::diamonds::DiamondsEstablish3D::m_disappearingVols
private

◆ m_edges2BDeletedAtLastStep

std::vector<Edge*> ug::arte::diamonds::DiamondsEstablish3D::m_edges2BDeletedAtLastStep
private

◆ m_faces2BDeletedAtLastStep

std::vector<Face*> ug::arte::diamonds::DiamondsEstablish3D::m_faces2BDeletedAtLastStep
private

◆ m_grid

◆ m_sel

◆ m_sh

SubsetHandler& ug::arte::diamonds::DiamondsEstablish3D::m_sh
private

◆ m_sudosTable

VecIndxVec ug::arte::diamonds::DiamondsEstablish3D::m_sudosTable
private

Referenced by generateNewDiamSudos().

◆ m_vecCombiCntrVrtxSudo

VecCombiCntrVrtxSudo ug::arte::diamonds::DiamondsEstablish3D::m_vecCombiCntrVrtxSudo
private

◆ m_vecCombiNewVolsThreeCross

VecCombiNewVolsProps ug::arte::diamonds::DiamondsEstablish3D::m_vecCombiNewVolsThreeCross
private

◆ m_vecCombiNewVolsTwoCross

VecCombiNewVolsProps ug::arte::diamonds::DiamondsEstablish3D::m_vecCombiNewVolsTwoCross
private

◆ m_vecCombiShiftVrtxMidVrtx

VecCombiShiftVrtxMidVrtx ug::arte::diamonds::DiamondsEstablish3D::m_vecCombiShiftVrtxMidVrtx
private

Referenced by createMidVrtx().

◆ m_vecElemGroupVrtx2BQuenched

VecElemGroupVrtx2BQnchd4D ug::arte::diamonds::DiamondsEstablish3D::m_vecElemGroupVrtx2BQuenched
private

◆ m_vecElems2BQuenched

VecElems2BQuenched ug::arte::diamonds::DiamondsEstablish3D::m_vecElems2BQuenched
private

◆ m_vecVolElmFac5

VecVolumeElementFaceQuintuplet ug::arte::diamonds::DiamondsEstablish3D::m_vecVolElmFac5
private

◆ m_vecVolManifVrtxCombiToShrink4Diams

VecVolManifVrtxCombi ug::arte::diamonds::DiamondsEstablish3D::m_vecVolManifVrtxCombiToShrink4Diams
private

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