ug4
Refinement Bridge

Classes

struct  ug::bridge::Refinement::Functionality
 

Functions

template<class TDomain >
static SPIRefMarkAdjuster ug::AddHorizontalAnisotropyAdjuster (IRefiner *ref, TDomain *dom)
 Adds a horizontal-anisotropy-adjuster to the given refiner. More...
 
static SPIRefMarkAdjuster ug::AddShadowCopyAdjuster (IRefiner *ref)
 Adds a ShadowCopyAdjuster to the given refiner. More...
 
template<class TDomain >
void ug::AssignSubset_VerticesInCube (TDomain &dom, const typename TDomain::position_type &min, const typename TDomain::position_type &max, int si)
 Marks all elements which have vertices in the given d-dimensional cube. More...
 
template<class TDomain >
void ug::AssignSubset_VerticesInSphere (TDomain &dom, const typename TDomain::position_type &center, const number radius, int si)
 Marks all elements which have vertices in the given d-dimensional cube. More...
 
template<typename TDomain >
static SmartPtr< IRefinerug::CreateAdaptiveRegularDomainRefiner (TDomain *dom)
 Creates an adaptive regular domain refiner. More...
 
template<class TDomain >
static SmartPtr< GlobalFracturedMediaRefinerug::CreateGlobalFracturedDomainRefiner (TDomain *dom)
 Creates a global fractured domain refiner. More...
 
template<class TDomain >
static SmartPtr< GlobalSubdivisionMultiGridRefiner< typename TDomain::position_attachment_type > > ug::GlobalSubdivisionDomainRefiner (TDomain *dom, const char *linearManifoldSubsets, bool constrained)
 Factory method, that creates a global subdivision domain refiner. More...
 
template<typename TDomain >
static SmartPtr< IRefinerug::HangingNodeDomainRefiner (TDomain *dom)
 Creates an adaptive hanging node domain refiner. More...
 
template<class TDomain >
void ug::MarkAnisotropic_LongEdges (TDomain &dom, IRefiner &refiner, number minLen)
 Marks all elements for anisotropic refienment and also marks all edges > minLen. More...
 
template<class TDomain , class TElem >
void ug::MarkForAdaption_ElementsContainingPoint (TDomain &dom, IRefiner &refiner, number x, number y, number z, std::string markType)
 
template<class TDomain >
void ug::MarkForAdaption_ElementsTouchingSubset (TDomain &dom, IRefiner &refiner, ISubsetHandler &sh, int subsetIndex, std::string markType)
 
template<class TDomain >
void ug::MarkForAdaption_ElementsTouchingSubsets (TDomain &dom, IRefiner &refiner, const char *subsets, std::string markType)
 
template<class TDomain >
void ug::MarkForAdaption_VerticesInCube (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &min, const typename TDomain::position_type &max, std::string markType)
 Marks all elements which have vertices in the given d-dimensional cube. More...
 
template<class TDomain >
void ug::MarkForAdaption_VerticesInSphere (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius, std::string markType)
 
template<class TDomain >
void ug::MarkForAdaption_VerticesInSphereMaxLvl (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius, std::string markType, int maxLvl)
 Marks all vertices in the given d-dimensional sphere. More...
 
template<class TDomain >
void ug::MarkForCoarsen_ElementsByLuaCallback (TDomain &dom, SmartPtr< IRefiner > refiner, double time, const char *luaCallbackName)
 
static void ug::MarkForRefinement_All (SmartPtr< IRefiner > ref)
 Marks all elements from refinement. More...
 
template<class TElem >
static void ug::MarkForRefinement_AllAnisotropic (SmartPtr< IRefiner > ref)
 
template<class TDomain >
void ug::MarkForRefinement_AnisotropicDirection (TDomain &dom, IRefiner &refiner, MathVector< TDomain::dim > &dir, number minEdgeRatio)
 
template<class TDomain >
void ug::MarkForRefinement_AnisotropicElements (TDomain &dom, IRefiner &refiner, number minEdgeRatio)
 
template<class TDomain >
void ug::MarkForRefinement_CloseToSurface (TDomain &dom, SmartPtr< IRefiner > refiner, double time, size_t maxLvl, const TDomain &surfaceDomain)
 
template<class TDomain >
void ug::MarkForRefinement_ContainsSurfaceNode (TDomain &dom, SmartPtr< IRefiner > refiner, double time, size_t maxLvl, const TDomain &surfaceDomain)
 
template<class TDomain >
void ug::MarkForRefinement_EdgeDirection (TDomain &dom, IRefiner &refiner, MathVector< TDomain::dim > &dir, number minDeviationAngle, number maxDeviationAngle, bool selectFlipped)
 
template<class TDomain >
void ug::MarkForRefinement_ElementsByLuaCallback (TDomain &dom, SmartPtr< IRefiner > refiner, double time, size_t maxLvl, const char *luaCallbackName)
 
template<class TDomain , class TElem >
void ug::MarkForRefinement_ElementsInSphere (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius)
 Marks all elements which lie completely in the given d-dimensional sphere. More...
 
template<class TDomain , class TSubsetHandler , class TElem >
void ug::MarkForRefinement_ElementsInSubset (TDomain &dom, IRefiner &refiner, TSubsetHandler &sh, int subsetIndex)
 
template<class elem_t >
void ug::MarkForRefinement_SubsetInterfaceElements (IRefiner &refiner, ISubsetHandler &sh)
 
template<class TDomain , class TElem >
void ug::MarkForRefinement_SubsetInterfaceElements (TDomain &dom, IRefiner &refiner)
 
template<class TDomain >
void ug::MarkForRefinement_VerticesInCube (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &min, const typename TDomain::position_type &max)
 
template<class TDomain >
void ug::MarkForRefinement_VerticesInSphere (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type &center, number radius)
 
void ug::MarkNeighborsForAnisotropicRefinement (IRefiner &refiner, bool sideNbrsOnly)
 
void ug::MarkNeighborsForFullRefinement (IRefiner &refiner, bool sideNbrsOnly)
 
static RefinementMark ug::StringToRefinementMark (std::string markType)
 Returns a refinement mark, given a string describing it. More...
 

Detailed Description

Function Documentation

◆ AddHorizontalAnisotropyAdjuster()

template<class TDomain >
static SPIRefMarkAdjuster ug::AddHorizontalAnisotropyAdjuster ( IRefiner ref,
TDomain *  dom 
)
static

Adds a horizontal-anisotropy-adjuster to the given refiner.

Adds a horizontal-anisotropy-adjuster to the given refiner. The provided domain is used to obtain the used position attachment.

Note
ref has to be derived from HangingNodeRefinerBase

References ug::HangingNodeRefinerBase< TSelector >::add_ref_mark_adjuster(), make_sp(), and UG_COND_THROW.

◆ AddShadowCopyAdjuster()

static SPIRefMarkAdjuster ug::AddShadowCopyAdjuster ( IRefiner ref)
static

◆ AssignSubset_VerticesInCube()

template<class TDomain >
void ug::AssignSubset_VerticesInCube ( TDomain &  dom,
const typename TDomain::position_type &  min,
const typename TDomain::position_type &  max,
int  si 
)

Marks all elements which have vertices in the given d-dimensional cube.

Make sure that TAPos is an attachment of vector_t position types.

References ug::MultiGridSubsetHandler::assign_subset(), ug::Grid::begin(), and ug::Grid::end().

◆ AssignSubset_VerticesInSphere()

template<class TDomain >
void ug::AssignSubset_VerticesInSphere ( TDomain &  dom,
const typename TDomain::position_type &  center,
const number  radius,
int  si 
)

Marks all elements which have vertices in the given d-dimensional cube.

Make sure that TAPos is an attachment of vector_t position types.

References ug::MultiGridSubsetHandler::assign_subset(), ug::Grid::begin(), dim, and ug::Grid::end().

◆ CreateAdaptiveRegularDomainRefiner()

template<typename TDomain >
static SmartPtr<IRefiner> ug::CreateAdaptiveRegularDomainRefiner ( TDomain *  dom)
static

Creates an adaptive regular domain refiner.

Automatically chooses whether a parallel refiner is required.

References UG_THROW.

◆ CreateGlobalFracturedDomainRefiner()

template<class TDomain >
static SmartPtr<GlobalFracturedMediaRefiner> ug::CreateGlobalFracturedDomainRefiner ( TDomain *  dom)
static

Creates a global fractured domain refiner.

References pcl::NumProcs(), ug::GlobalFracturedMediaRefiner::set_subset_handler(), and UG_THROW.

◆ GlobalSubdivisionDomainRefiner()

template<class TDomain >
static SmartPtr<GlobalSubdivisionMultiGridRefiner<typename TDomain::position_attachment_type> > ug::GlobalSubdivisionDomainRefiner ( TDomain *  dom,
const char *  linearManifoldSubsets,
bool  constrained 
)
static

◆ HangingNodeDomainRefiner()

template<typename TDomain >
static SmartPtr<IRefiner> ug::HangingNodeDomainRefiner ( TDomain *  dom)
static

Creates an adaptive hanging node domain refiner.

Automatically chooses whether a parallel refiner is required.

References pcl::NumProcs(), and UG_THROW.

◆ MarkAnisotropic_LongEdges()

template<class TDomain >
void ug::MarkAnisotropic_LongEdges ( TDomain &  dom,
IRefiner refiner,
number  minLen 
)

◆ MarkForAdaption_ElementsContainingPoint()

template<class TDomain , class TElem >
void ug::MarkForAdaption_ElementsContainingPoint ( TDomain &  dom,
IRefiner refiner,
number  x,
number  y,
number  z,
std::string  markType 
)

◆ MarkForAdaption_ElementsTouchingSubset()

template<class TDomain >
void ug::MarkForAdaption_ElementsTouchingSubset ( TDomain &  dom,
IRefiner refiner,
ISubsetHandler sh,
int  subsetIndex,
std::string  markType 
)

◆ MarkForAdaption_ElementsTouchingSubsets()

template<class TDomain >
void ug::MarkForAdaption_ElementsTouchingSubsets ( TDomain &  dom,
IRefiner refiner,
const char *  subsets,
std::string  markType 
)

◆ MarkForAdaption_VerticesInCube()

template<class TDomain >
void ug::MarkForAdaption_VerticesInCube ( TDomain &  dom,
SmartPtr< IRefiner refiner,
const typename TDomain::position_type &  min,
const typename TDomain::position_type &  max,
std::string  markType 
)

Marks all elements which have vertices in the given d-dimensional cube.

Make sure that TAPos is an attachment of vector_t position types.

References ug::Grid::begin(), ug::CollectAssociated(), ug::Grid::end(), SmartPtr< T, FreePolicy >::get(), PROFILE_FUNC_GROUP, and ug::StringToRefinementMark().

Referenced by ug::MarkForRefinement_VerticesInCube().

◆ MarkForAdaption_VerticesInSphere()

template<class TDomain >
void ug::MarkForAdaption_VerticesInSphere ( TDomain &  dom,
SmartPtr< IRefiner refiner,
const typename TDomain::position_type &  center,
number  radius,
std::string  markType 
)

◆ MarkForAdaption_VerticesInSphereMaxLvl()

template<class TDomain >
void ug::MarkForAdaption_VerticesInSphereMaxLvl ( TDomain &  dom,
SmartPtr< IRefiner refiner,
const typename TDomain::position_type &  center,
number  radius,
std::string  markType,
int  maxLvl 
)

◆ MarkForCoarsen_ElementsByLuaCallback()

template<class TDomain >
void ug::MarkForCoarsen_ElementsByLuaCallback ( TDomain &  dom,
SmartPtr< IRefiner refiner,
double  time,
const char *  luaCallbackName 
)

◆ MarkForRefinement_All()

static void ug::MarkForRefinement_All ( SmartPtr< IRefiner ref)
static

◆ MarkForRefinement_AllAnisotropic()

template<class TElem >
static void ug::MarkForRefinement_AllAnisotropic ( SmartPtr< IRefiner ref)
static

◆ MarkForRefinement_AnisotropicDirection()

◆ MarkForRefinement_AnisotropicElements()

template<class TDomain >
void ug::MarkForRefinement_AnisotropicElements ( TDomain &  dom,
IRefiner refiner,
number  minEdgeRatio 
)

◆ MarkForRefinement_CloseToSurface()

template<class TDomain >
void ug::MarkForRefinement_CloseToSurface ( TDomain &  dom,
SmartPtr< IRefiner refiner,
double  time,
size_t  maxLvl,
const TDomain &  surfaceDomain 
)

◆ MarkForRefinement_ContainsSurfaceNode()

template<class TDomain >
void ug::MarkForRefinement_ContainsSurfaceNode ( TDomain &  dom,
SmartPtr< IRefiner refiner,
double  time,
size_t  maxLvl,
const TDomain &  surfaceDomain 
)

◆ MarkForRefinement_EdgeDirection()

template<class TDomain >
void ug::MarkForRefinement_EdgeDirection ( TDomain &  dom,
IRefiner refiner,
MathVector< TDomain::dim > &  dir,
number  minDeviationAngle,
number  maxDeviationAngle,
bool  selectFlipped 
)

◆ MarkForRefinement_ElementsByLuaCallback()

template<class TDomain >
void ug::MarkForRefinement_ElementsByLuaCallback ( TDomain &  dom,
SmartPtr< IRefiner refiner,
double  time,
size_t  maxLvl,
const char *  luaCallbackName 
)

◆ MarkForRefinement_ElementsInSphere()

template<class TDomain , class TElem >
void ug::MarkForRefinement_ElementsInSphere ( TDomain &  dom,
SmartPtr< IRefiner refiner,
const typename TDomain::position_type &  center,
number  radius 
)

Marks all elements which lie completely in the given d-dimensional sphere.

Valid parameters for TElem are Edge, Face, Volume.

References ug::Grid::begin(), ug::Grid::end(), SmartPtr< T, FreePolicy >::get(), PROFILE_FUNC_GROUP, and ug::VecDistanceSq().

◆ MarkForRefinement_ElementsInSubset()

template<class TDomain , class TSubsetHandler , class TElem >
void ug::MarkForRefinement_ElementsInSubset ( TDomain &  dom,
IRefiner refiner,
TSubsetHandler &  sh,
int  subsetIndex 
)

◆ MarkForRefinement_SubsetInterfaceElements() [1/2]

◆ MarkForRefinement_SubsetInterfaceElements() [2/2]

template<class TDomain , class TElem >
void ug::MarkForRefinement_SubsetInterfaceElements ( TDomain &  dom,
IRefiner refiner 
)

◆ MarkForRefinement_VerticesInCube()

template<class TDomain >
void ug::MarkForRefinement_VerticesInCube ( TDomain &  dom,
SmartPtr< IRefiner refiner,
const typename TDomain::position_type &  min,
const typename TDomain::position_type &  max 
)

◆ MarkForRefinement_VerticesInSphere()

template<class TDomain >
void ug::MarkForRefinement_VerticesInSphere ( TDomain &  dom,
SmartPtr< IRefiner refiner,
const typename TDomain::position_type &  center,
number  radius 
)

◆ MarkNeighborsForAnisotropicRefinement()

void ug::MarkNeighborsForAnisotropicRefinement ( IRefiner refiner,
bool  sideNbrsOnly 
)

◆ MarkNeighborsForFullRefinement()

void ug::MarkNeighborsForFullRefinement ( IRefiner refiner,
bool  sideNbrsOnly 
)

◆ StringToRefinementMark()

static RefinementMark ug::StringToRefinementMark ( std::string  markType)
static