ug4
ug::FracturedMediaRefiner< TGrid, TAPosition > Class Template Reference

#include <fractured_media_refiner.h>

+ Inheritance diagram for ug::FracturedMediaRefiner< TGrid, TAPosition >:

Public Member Functions

 FracturedMediaRefiner (SPRefinementProjector projector=SPNULL)
 
 FracturedMediaRefiner (TGrid &g, SPRefinementProjector projector=SPNULL)
 
virtual bool mark (Face *f, RefinementMark refMark=RM_REFINE)
 Marks a face for refinement. More...
 
void set_aspect_ratio_threshold (number threshold)
 if the aspect ratio is smaller then the given threshold, the element is considered a fracture element. More...
 
void set_position_attachment (TAPosition &aPos)
 
virtual ~FracturedMediaRefiner ()
 

Protected Member Functions

number aspect_ratio (Face *f)
 
virtual void collect_objects_for_refine ()
 

Private Types

typedef THangingNodeRefiner< TGrid > BaseClass
 

Private Attributes

Grid::VertexAttachmentAccessor< TAPosition > m_aaPos
 
number m_aspectRatioThreshold
 
std::queue< Face * > m_queDegeneratedFaces
 

Detailed Description

template<class TGrid, class TAPosition>
class ug::FracturedMediaRefiner< TGrid, TAPosition >

This class takes special care for degenerated fractures during refinement. Degenerated faces are refined using anisotropic refinement, so that their degenerated sides are not refined.

Currently this only works in 2d.

Todo:

Add support for degenerated volumes

Use a IsDegenerated callback instead of thresholds

Member Typedef Documentation

◆ BaseClass

template<class TGrid , class TAPosition >
typedef THangingNodeRefiner<TGrid> ug::FracturedMediaRefiner< TGrid, TAPosition >::BaseClass
private

Constructor & Destructor Documentation

◆ FracturedMediaRefiner() [1/2]

template<class TGrid , class TAPosition >
ug::FracturedMediaRefiner< TGrid, TAPosition >::FracturedMediaRefiner ( SPRefinementProjector  projector = SPNULL)

◆ FracturedMediaRefiner() [2/2]

template<class TGrid , class TAPosition >
ug::FracturedMediaRefiner< TGrid, TAPosition >::FracturedMediaRefiner ( TGrid &  g,
SPRefinementProjector  projector = SPNULL 
)

◆ ~FracturedMediaRefiner()

template<class TGrid , class TAPosition >
ug::FracturedMediaRefiner< TGrid, TAPosition >::~FracturedMediaRefiner
virtual

Member Function Documentation

◆ aspect_ratio()

template<class TGrid , class TAPosition >
number ug::FracturedMediaRefiner< TGrid, TAPosition >::aspect_ratio ( Face f)
protected

◆ collect_objects_for_refine()

template<class TGrid , class TAPosition >
void ug::FracturedMediaRefiner< TGrid, TAPosition >::collect_objects_for_refine
protectedvirtual

◆ mark()

template<class TGrid , class TAPosition >
bool ug::FracturedMediaRefiner< TGrid, TAPosition >::mark ( Face f,
RefinementMark  refMark = RM_REFINE 
)
virtual

Marks a face for refinement.

Uses the degenerated-edge-threshold to determine, whether the face is a fracture-face or not. Make sure to specify a position attachment before marking any elements.

References UG_ASSERT.

◆ set_aspect_ratio_threshold()

template<class TGrid , class TAPosition >
void ug::FracturedMediaRefiner< TGrid, TAPosition >::set_aspect_ratio_threshold ( number  threshold)

if the aspect ratio is smaller then the given threshold, the element is considered a fracture element.

◆ set_position_attachment()

template<class TGrid , class TAPosition >
void ug::FracturedMediaRefiner< TGrid, TAPosition >::set_position_attachment ( TAPosition &  aPos)
Todo:
: replace this with a callback

References UG_ASSERT.

Member Data Documentation

◆ m_aaPos

template<class TGrid , class TAPosition >
Grid::VertexAttachmentAccessor<TAPosition> ug::FracturedMediaRefiner< TGrid, TAPosition >::m_aaPos
private

◆ m_aspectRatioThreshold

template<class TGrid , class TAPosition >
number ug::FracturedMediaRefiner< TGrid, TAPosition >::m_aspectRatioThreshold
private

◆ m_queDegeneratedFaces

template<class TGrid , class TAPosition >
std::queue<Face*> ug::FracturedMediaRefiner< TGrid, TAPosition >::m_queDegeneratedFaces
private

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