ug4
Loading...
Searching...
No Matches
ug::arte Namespace Reference

Namespaces

namespace  diamonds
 
namespace  support
 

Classes

class  ArteExpandFracs3D
 
class  CrossingVertexInfo
 
class  MatrixTwoIndices
 
class  T_min
 
class  VertexFractureProperties
 
class  VertexFractureTriple
 

Typedefs

using AttVrtVec = Attachment< std::vector< Vertex * > >
 
using CrossVertInf = CrossingVertexInfo< Vertex *, IndexType >
 
using ExpandCrossFracInfo = VertexFractureTriple< std::pair< Edge *, Edge * >, Face *, std::pair< Vertex *, Vertex * > >
 
using IndexType = unsigned short
 
using SegmentsFractExtrus = std::vector< VecVertexOfFaceInfo >
 
using VecEdge = std::vector< Edge * >
 
using VecExpandCrossFracInfo = std::vector< ExpandCrossFracInfo >
 
using VecFace = std::vector< Face * >
 
using VecVertexOfFaceInfo = std::vector< VertexOfFaceInfo >
 
using VecVertFracTrip = std::vector< VertFracTrip >
 
using VertexOfFaceInfo = VertexFractureTriple< std::pair< Edge *, Edge * >, Face *, std::pair< vector3, vector3 > >
 
using VertFracTrip = VertexFractureTriple< Edge *, Face *, vector3 >
 

Functions

void assignFaceSubsetToClosedFace (std::vector< Face * > &faceVec, Grid &grid, SubsetHandler &sh)
 
void computeDiamondPointXCrossType (ExpandCrossFracInfo &expCFIBeforeFracEdg, ExpandCrossFracInfo &expCFIAfterFracEdg, Vertex *const &crossPt, Grid::VertexAttachmentAccessor< APosition > &aaPos, SubsetHandler &sh, Grid &grid, IndexType const &diamantSubsNum, vector3 &distVecNewVrt2SCrossPt, bool useTrianglesInDiamonds=false)
 
void createDiamondFacesXCrossType (ExpandCrossFracInfo &expCFIBeforeFracEdg, ExpandCrossFracInfo &expCFIAfterFracEdg, std::vector< Face * > &newDiamFaceVec, SubsetHandler &sh, Grid &grid, IndexType diamantSubsNum, Vertex *&crossPt, bool isFreeTEnd=false)
 
void createNewFacesForExtXCrossFracs (ExpandCrossFracInfo const &ecf, std::vector< Face * > &newFracFaceVec, bool &boundAtShiftVrtEdg, SubsetHandler &sh, Grid &grid, Vertex *const &crossPt, std::vector< IndexType > const &subdomList)
 
bool determineOrderOfFaces (VecVertFracTrip const &vecVertFracTrip, VecFace const &assoFaces, VecVertexOfFaceInfo &orderedFaces, SegmentsFractExtrus &segments, IndexType startIndex, std::vector< Edge * > const &allAssoEdges, SubsetHandler &sh, Grid::EdgeAttachmentAccessor< ABool > const &aaMarkEdgeB, std::vector< Edge * > const &adjBndEdgs=std::vector< Edge * >(), Face *const &attFaceOf1stBndEdg=nullptr)
 
bool ExpandFractures2dArte (Grid &grid, SubsetHandler &sh, std::vector< FractureInfo > const &fracInfos, bool useTrianglesInDiamonds, bool establishDiamonds)
 
bool ExpandFractures2dArte (Grid &grid, SubsetHandler &sh, vector< FractureInfo > const &fracInfos, bool useTrianglesInDiamonds, bool establishDiamonds)
 
bool ExpandFractures3dArte (Grid &grid, SubsetHandler &sh, std::vector< FractureInfo > const &fracInfos, bool useTrianglesInDiamonds, bool establishDiamonds)
 
template<typename ASOF >
bool expandSingleFractureAtGivenSide (vector3 const &nOne, vector3 const &nTwo, Edge *edgeOne, Edge *edgeTwo, Face *facOne, Face *facTwo, vector< FractureInfo > const &fracInfosBySubset, vector3 const &posOldVrt, Grid::VertexAttachmentAccessor< APosition > &aaPos, Grid &grid, SubsetHandler &sh, ASOF const &assoFaces, std::vector< Vertex * > const &nextFracVrt, Grid::FaceAttachmentAccessor< AttVrtVec > &aaVrtVecFace, int &dbg_flachen_passiert, Vertex *iterV)
 
template<typename ASOF >
bool expandSingleFractureAtGivenSide (vector3 const &nOne, vector3 const &nTwo, Edge *edgeOne, Edge *edgeTwo, Face *facOne, Face *facTwo, vector< FractureInfo > const &fracInfosBySubset, vector3 const &posOldVrt, Grid::VertexAttachmentAccessor< APosition > &aaPos, Grid &grid, SubsetHandler &sh, ASOF const &assoFaces, std::vector< Vertex * > const &nextFracVrt, Grid::FaceAttachmentAccessor< AttVrtVec > &aaVrtVecFace, int &dbg_flachen_passiert, Vertex *iterV, CrossVertInf &crossVrtInf, bool insertCrossVrtInf=true)
 
template<>
bool expandSingleFractureAtGivenSide< VecVertexOfFaceInfo > (vector3 const &nOne, vector3 const &nTwo, Edge *edgeOne, Edge *edgeTwo, Face *facOne, Face *facTwo, vector< FractureInfo > const &fracInfosBySubset, vector3 const &posOldVrt, Grid::VertexAttachmentAccessor< APosition > &aaPos, Grid &grid, SubsetHandler &sh, VecVertexOfFaceInfo const &segPart, std::vector< Vertex * > const &nextFracVrt, Grid::FaceAttachmentAccessor< AttVrtVec > &aaVrtVecFace, int &dbg_flachen_passiert, Vertex *crossPt, CrossVertInf &crossVrtInf, bool insertCrossVrtInf)
 
template<>
bool expandSingleFractureAtGivenSide< VecVertexOfFaceInfo > (vector3 const &nOne, vector3 const &nTwo, Edge *edgeOne, Edge *edgeTwo, Face *facOne, Face *facTwo, vector< FractureInfo > const &fracInfosBySubset, vector3 const &posOldVrt, Grid::VertexAttachmentAccessor< APosition > &aaPos, Grid &grid, SubsetHandler &sh, VecVertexOfFaceInfo const &segPart, std::vector< Vertex * > const &nextFracVrt, Grid::FaceAttachmentAccessor< AttVrtVec > &aaVrtVecFace, int &dbg_flachen_passiert, Vertex *iterV)
 
bool SortFaces4DiamondCreation (SubsetHandler &sh, std::vector< Face * > &assoFacCrossCop, Edge *&firstEdgeFac, Edge *&secondEdgeFac, Face *&assoFacConsider, VecEdge const &origFracEdg, std::vector< Vertex * > const &shiftVrtcs, Vertex *const &crossPt, Edge *&assoFacEdgBeg2Fix, Edge *&assoFacEdgEnd2Fix, Grid &grid, VecExpandCrossFracInfo &vecExpCrossFI, bool isXCross=true)
 
void teachAssoFacesNewVrtx (VecVertexOfFaceInfo const &segPart, Grid::FaceAttachmentAccessor< AttVrtVec > &aaVrtVecFace, Vertex *const &crossPt, Vertex *const &newShiftVrtx)
 

Typedef Documentation

◆ AttVrtVec

using ug::arte::AttVrtVec = typedef Attachment<std::vector<Vertex*> >

◆ CrossVertInf

◆ ExpandCrossFracInfo

using ug::arte::ExpandCrossFracInfo = typedef VertexFractureTriple< std::pair<Edge*, Edge*>, Face*, std::pair<Vertex*, Vertex*> >

◆ IndexType

using ug::arte::IndexType = typedef unsigned short

◆ SegmentsFractExtrus

using ug::arte::SegmentsFractExtrus = typedef std::vector<VecVertexOfFaceInfo>

◆ VecEdge

using ug::arte::VecEdge = typedef std::vector<Edge*>

◆ VecExpandCrossFracInfo

◆ VecFace

using ug::arte::VecFace = typedef std::vector<Face*>

◆ VecVertexOfFaceInfo

using ug::arte::VecVertexOfFaceInfo = typedef std::vector<VertexOfFaceInfo>

◆ VecVertFracTrip

using ug::arte::VecVertFracTrip = typedef std::vector<VertFracTrip>

◆ VertexOfFaceInfo

using ug::arte::VertexOfFaceInfo = typedef VertexFractureTriple< std::pair<Edge*, Edge*>, Face*, std::pair<vector3,vector3> >

◆ VertFracTrip

Function Documentation

◆ assignFaceSubsetToClosedFace()

void ug::arte::assignFaceSubsetToClosedFace ( std::vector< Face * > &  faceVec,
Grid grid,
SubsetHandler sh 
)

◆ computeDiamondPointXCrossType()

void ug::arte::computeDiamondPointXCrossType ( ExpandCrossFracInfo expCFIBeforeFracEdg,
ExpandCrossFracInfo expCFIAfterFracEdg,
Vertex *const &  crossPt,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
SubsetHandler sh,
Grid grid,
IndexType const &  diamantSubsNum,
vector3 distVecNewVrt2SCrossPt,
bool  useTrianglesInDiamonds = false 
)

◆ createDiamondFacesXCrossType()

void ug::arte::createDiamondFacesXCrossType ( ExpandCrossFracInfo expCFIBeforeFracEdg,
ExpandCrossFracInfo expCFIAfterFracEdg,
std::vector< Face * > &  newDiamFaceVec,
SubsetHandler sh,
Grid grid,
IndexType  diamantSubsNum,
Vertex *&  crossPt,
bool  isFreeTEnd = false 
)

◆ createNewFacesForExtXCrossFracs()

◆ determineOrderOfFaces()

bool ug::arte::determineOrderOfFaces ( VecVertFracTrip const &  vecVertFracTrip,
VecFace const &  assoFaces,
VecVertexOfFaceInfo orderedFaces,
SegmentsFractExtrus segments,
IndexType  startIndex,
std::vector< Edge * > const &  allAssoEdges,
SubsetHandler sh,
Grid::EdgeAttachmentAccessor< ABool > const &  aaMarkEdgeB,
std::vector< Edge * > const &  adjBndEdgs = std::vector<Edge* >(),
Face *const &  attFaceOf1stBndEdg = nullptr 
)

◆ ExpandFractures2dArte() [1/2]

bool ug::arte::ExpandFractures2dArte ( Grid grid,
SubsetHandler sh,
std::vector< FractureInfo > const &  fracInfos,
bool  useTrianglesInDiamonds,
bool  establishDiamonds 
)

2 dimensional fracture expansion for finite extensions, using the Arte algorithm

References ug::aPosition, ug::GridSubsetHandler::assign_subset(), assignFaceSubsetToClosedFace(), ug::Grid::associated_edges_begin(), ug::Grid::associated_edges_end(), ug::Grid::associated_faces_begin(), ug::Grid::associated_faces_end(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces(), ug::Grid::attach_to_vertices_dv(), ug::Selector::begin(), ug::GridSubsetHandler::begin(), ug::CalculateCenter(), ug::CalculateCreaseNormal(), computeDiamondPointXCrossType(), ug::Grid::create(), ug::Grid::create_by_cloning(), createDiamondFacesXCrossType(), createNewFacesForExtXCrossFracs(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), determineOrderOfFaces(), ug::DropAPerpendicular(), ug::EdgeContains(), ug::Selector::edges_begin(), ug::Selector::edges_end(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::Selector::end(), ug::GridSubsetHandler::end(), ug::Grid::erase(), expandSingleFractureAtGivenSide(), ug::FaceContains(), ug::FACEOPT_AUTOGENERATE_EDGES, ug::Selector::faces_begin(), ug::Selector::faces_end(), ug::Grid::get_edge(), ug::ISubsetHandler::get_subset_index(), ug::ISubsetHandler::get_subset_name(), ug::arte::VertexFractureTriple< ECKENTYP, GESICHTSTYP, SENKRECHTENTYP >::getNewNormal(), ug::arte::VertexFractureTriple< ECKENTYP, GESICHTSTYP, SENKRECHTENTYP >::getNormal(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), ug::IsBoundaryEdge2D(), ug::IsBoundaryVertex2D(), ug::Face::num_edges(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::FaceDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ug::ISelector::select(), ug::FaceDescriptor::set_num_vertices(), ug::ISubsetHandler::set_subset_name(), ug::FaceDescriptor::set_vertex(), SortFaces4DiamondCreation(), teachAssoFacesNewVrtx(), UG_LOG, UG_THROW, ug::VecAdd(), ug::VecDot(), ug::VecLength(), ug::VecNormalize(), ug::VecScale(), ug::VecSubtract(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertex(), ug::Selector::vertices_begin(), and ug::Selector::vertices_end().

◆ ExpandFractures2dArte() [2/2]

bool ug::arte::ExpandFractures2dArte ( Grid grid,
SubsetHandler sh,
std::vector< FractureInfo > const &  fracInfos,
bool  useTrianglesInDiamonds,
bool  establishDiamonds 
)

2 dimensional fracture expansion for finite extensions, using the Arte algorithm

References ug::aPosition, ug::GridSubsetHandler::assign_subset(), assignFaceSubsetToClosedFace(), ug::Grid::associated_edges_begin(), ug::Grid::associated_edges_end(), ug::Grid::associated_faces_begin(), ug::Grid::associated_faces_end(), ug::Grid::attach_to_edges_dv(), ug::Grid::attach_to_faces(), ug::Grid::attach_to_vertices_dv(), ug::Selector::begin(), ug::GridSubsetHandler::begin(), ug::CalculateCenter(), ug::CalculateCreaseNormal(), computeDiamondPointXCrossType(), ug::Grid::create(), ug::Grid::create_by_cloning(), createDiamondFacesXCrossType(), createNewFacesForExtXCrossFracs(), ug::Grid::detach_from_edges(), ug::Grid::detach_from_faces(), ug::Grid::detach_from_vertices(), determineOrderOfFaces(), ug::DropAPerpendicular(), ug::EdgeContains(), ug::Selector::edges_begin(), ug::Selector::edges_end(), ug::ISelector::enable_autoselection(), ug::Grid::enable_options(), ug::ISelector::enable_selection_inheritance(), ug::Selector::end(), ug::GridSubsetHandler::end(), ug::Grid::erase(), expandSingleFractureAtGivenSide(), ug::FaceContains(), ug::FACEOPT_AUTOGENERATE_EDGES, ug::Selector::faces_begin(), ug::Selector::faces_end(), ug::Grid::get_edge(), ug::ISubsetHandler::get_subset_index(), ug::ISubsetHandler::get_subset_name(), ug::arte::VertexFractureTriple< ECKENTYP, GESICHTSTYP, SENKRECHTENTYP >::getNewNormal(), ug::arte::VertexFractureTriple< ECKENTYP, GESICHTSTYP, SENKRECHTENTYP >::getNormal(), ug::Grid::has_vertex_attachment(), ug::ISelector::is_selected(), ug::IsBoundaryEdge2D(), ug::IsBoundaryVertex2D(), ug::Face::num_edges(), ug::ISubsetHandler::num_subsets(), ug::FaceVertices::num_vertices(), ug::FaceDescriptor::num_vertices(), ug::Grid::option_is_enabled(), ug::ISelector::select(), ug::FaceDescriptor::set_num_vertices(), ug::ISubsetHandler::set_subset_name(), ug::FaceDescriptor::set_vertex(), SortFaces4DiamondCreation(), teachAssoFacesNewVrtx(), UG_LOG, UG_THROW, ug::VecAdd(), ug::VecDot(), ug::VecLength(), ug::VecNormalize(), ug::VecScale(), ug::VecSubtract(), ug::EdgeVertices::vertex(), ug::FaceVertices::vertex(), ug::Selector::vertices_begin(), and ug::Selector::vertices_end().

◆ ExpandFractures3dArte()

bool ug::arte::ExpandFractures3dArte ( Grid grid,
SubsetHandler sh,
std::vector< FractureInfo > const &  fracInfos,
bool  useTrianglesInDiamonds,
bool  establishDiamonds 
)

◆ expandSingleFractureAtGivenSide() [1/2]

template<typename ASOF >
bool ug::arte::expandSingleFractureAtGivenSide ( vector3 const &  nOne,
vector3 const &  nTwo,
Edge edgeOne,
Edge edgeTwo,
Face facOne,
Face facTwo,
vector< FractureInfo > const &  fracInfosBySubset,
vector3 const &  posOldVrt,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
Grid grid,
SubsetHandler sh,
ASOF const &  assoFaces,
std::vector< Vertex * > const &  nextFracVrt,
Grid::FaceAttachmentAccessor< AttVrtVec > &  aaVrtVecFace,
int &  dbg_flachen_passiert,
Vertex iterV 
)

◆ expandSingleFractureAtGivenSide() [2/2]

template<typename ASOF >
bool ug::arte::expandSingleFractureAtGivenSide ( vector3 const &  nOne,
vector3 const &  nTwo,
Edge edgeOne,
Edge edgeTwo,
Face facOne,
Face facTwo,
vector< FractureInfo > const &  fracInfosBySubset,
vector3 const &  posOldVrt,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
Grid grid,
SubsetHandler sh,
ASOF const &  assoFaces,
std::vector< Vertex * > const &  nextFracVrt,
Grid::FaceAttachmentAccessor< AttVrtVec > &  aaVrtVecFace,
int &  dbg_flachen_passiert,
Vertex iterV,
CrossVertInf crossVrtInf,
bool  insertCrossVrtInf = true 
)

◆ expandSingleFractureAtGivenSide< VecVertexOfFaceInfo >() [1/2]

template<>
bool ug::arte::expandSingleFractureAtGivenSide< VecVertexOfFaceInfo > ( vector3 const &  nOne,
vector3 const &  nTwo,
Edge edgeOne,
Edge edgeTwo,
Face facOne,
Face facTwo,
vector< FractureInfo > const &  fracInfosBySubset,
vector3 const &  posOldVrt,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
Grid grid,
SubsetHandler sh,
VecVertexOfFaceInfo const &  segPart,
std::vector< Vertex * > const &  nextFracVrt,
Grid::FaceAttachmentAccessor< AttVrtVec > &  aaVrtVecFace,
int &  dbg_flachen_passiert,
Vertex crossPt,
CrossVertInf crossVrtInf,
bool  insertCrossVrtInf 
)

◆ expandSingleFractureAtGivenSide< VecVertexOfFaceInfo >() [2/2]

template<>
bool ug::arte::expandSingleFractureAtGivenSide< VecVertexOfFaceInfo > ( vector3 const &  nOne,
vector3 const &  nTwo,
Edge edgeOne,
Edge edgeTwo,
Face facOne,
Face facTwo,
vector< FractureInfo > const &  fracInfosBySubset,
vector3 const &  posOldVrt,
Grid::VertexAttachmentAccessor< APosition > &  aaPos,
Grid grid,
SubsetHandler sh,
VecVertexOfFaceInfo const &  segPart,
std::vector< Vertex * > const &  nextFracVrt,
Grid::FaceAttachmentAccessor< AttVrtVec > &  aaVrtVecFace,
int &  dbg_flachen_passiert,
Vertex iterV 
)

◆ SortFaces4DiamondCreation()

bool ug::arte::SortFaces4DiamondCreation ( SubsetHandler sh,
std::vector< Face * > &  assoFacCrossCop,
Edge *&  firstEdgeFac,
Edge *&  secondEdgeFac,
Face *&  assoFacConsider,
VecEdge const &  origFracEdg,
std::vector< Vertex * > const &  shiftVrtcs,
Vertex *const &  crossPt,
Edge *&  assoFacEdgBeg2Fix,
Edge *&  assoFacEdgEnd2Fix,
Grid grid,
VecExpandCrossFracInfo vecExpCrossFI,
bool  isXCross = true 
)

◆ teachAssoFacesNewVrtx()

void ug::arte::teachAssoFacesNewVrtx ( VecVertexOfFaceInfo const &  segPart,
Grid::FaceAttachmentAccessor< AttVrtVec > &  aaVrtVecFace,
Vertex *const &  crossPt,
Vertex *const &  newShiftVrtx 
)

References UG_THROW.

Referenced by ExpandFractures2dArte().