ug4
|
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 ¢er, const number radius, int si) |
Marks all elements which have vertices in the given d-dimensional cube. More... | |
template<typename TDomain > | |
static SmartPtr< IRefiner > | ug::CreateAdaptiveRegularDomainRefiner (TDomain *dom) |
Creates an adaptive regular domain refiner. More... | |
template<class TDomain > | |
static SmartPtr< GlobalFracturedMediaRefiner > | ug::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< IRefiner > | ug::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 ¢er, number radius, std::string markType) |
template<class TDomain > | |
void | ug::MarkForAdaption_VerticesInSphereMaxLvl (TDomain &dom, SmartPtr< IRefiner > refiner, const typename TDomain::position_type ¢er, 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 ¢er, 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 ¢er, 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... | |
|
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.
References ug::HangingNodeRefinerBase< TSelector >::add_ref_mark_adjuster(), make_sp(), and UG_COND_THROW.
|
static |
Adds a ShadowCopyAdjuster to the given refiner.
ref | the refiner; has to be derived from HangingNodeRefiner_MultiGrid |
References ug::HangingNodeRefinerBase< TSelector >::add_ref_mark_adjuster(), make_sp(), and UG_COND_THROW.
Referenced by ug::bridge::Refinement::Functionality::Common().
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().
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().
|
static |
Creates an adaptive regular domain refiner.
Automatically chooses whether a parallel refiner is required.
References UG_THROW.
|
static |
Creates a global fractured domain refiner.
References pcl::NumProcs(), ug::GlobalFracturedMediaRefiner::set_subset_handler(), and UG_THROW.
|
static |
Factory method, that creates a global subdivision domain refiner.
Automatically chooses whether a parallel refiner is required.
References ug::GlobalSubdivisionMultiGridRefiner< TAPosition >::assign_mark_subset_handler(), ug::GlobalSubdivisionMultiGridRefiner< TAPosition >::assign_position_attachment(), ug::GlobalSubdivisionMultiGridRefiner< TAPosition >::assign_subset_handler(), pcl::NumProcs(), ug::GlobalSubdivisionMultiGridRefiner< TAPosition >::set_constrained_subdivision(), ug::GlobalSubdivisionMultiGridRefiner< TAPosition >::set_linear_manifold_subsets(), and UG_CATCH_THROW.
|
static |
Creates an adaptive hanging node domain refiner.
Automatically chooses whether a parallel refiner is required.
References pcl::NumProcs(), and UG_THROW.
void ug::MarkAnisotropic_LongEdges | ( | TDomain & | dom, |
IRefiner & | refiner, | ||
number | minLen | ||
) |
Marks all elements for anisotropic refienment and also marks all edges > minLen.
References ug::Grid::associated_elements(), ug::MultiGrid::begin(), ug::EdgeLengthSq(), ug::MultiGrid::end(), ug::IRefiner::get_associated_grid(), ug::MultiGrid::has_children(), ug::IRefiner::mark(), ug::RM_ANISOTROPIC, ug::PointerConstArray< TPtr >::size(), ug::sq(), and UG_ASSERT.
void ug::MarkForAdaption_ElementsContainingPoint | ( | TDomain & | dom, |
IRefiner & | refiner, | ||
number | x, | ||
number | y, | ||
number | z, | ||
std::string | markType | ||
) |
References ug::ContainsPoint(), ug::IRefiner::mark(), p, PROFILE_FUNC, ug::StringToRefinementMark(), and ug::VecCopy().
void ug::MarkForAdaption_ElementsTouchingSubset | ( | TDomain & | dom, |
IRefiner & | refiner, | ||
ISubsetHandler & | sh, | ||
int | subsetIndex, | ||
std::string | markType | ||
) |
void ug::MarkForAdaption_ElementsTouchingSubsets | ( | TDomain & | dom, |
IRefiner & | refiner, | ||
const char * | subsets, | ||
std::string | markType | ||
) |
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().
void ug::MarkForAdaption_VerticesInSphere | ( | TDomain & | dom, |
SmartPtr< IRefiner > | refiner, | ||
const typename TDomain::position_type & | center, | ||
number | radius, | ||
std::string | markType | ||
) |
References ug::MarkForAdaption_VerticesInSphereMaxLvl().
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.
References ug::Grid::begin(), ug::CollectAssociated(), ug::Grid::end(), SmartPtr< T, FreePolicy >::get(), PROFILE_FUNC_GROUP, ug::StringToRefinementMark(), and ug::VecDistanceSq().
Referenced by ug::MarkForAdaption_VerticesInSphere(), and ug::MarkForRefinement_VerticesInSphere().
Marks all elements from refinement.
If used in a parallel environment only elements on the calling procs are marked.
References ug::Grid::edges_begin(), ug::Grid::edges_end(), ug::Grid::faces_begin(), ug::Grid::faces_end(), PROFILE_FUNC_GROUP, UG_LOG, ug::Grid::vertices_begin(), ug::Grid::vertices_end(), ug::Grid::volumes_begin(), and ug::Grid::volumes_end().
Referenced by ug::bridge::Refinement::Functionality::Common().
|
static |
References ug::Grid::begin(), ug::Grid::end(), PROFILE_FUNC_GROUP, ug::RM_ANISOTROPIC, and UG_LOG.
void ug::MarkForRefinement_AnisotropicDirection | ( | TDomain & | dom, |
IRefiner & | refiner, | ||
MathVector< TDomain::dim > & | dir, | ||
number | minEdgeRatio | ||
) |
References ug::Grid::associated_elements(), ug::EdgeLengthSq(), end_for, for_each_in_vec, ug::MultiGrid::has_children(), lg_end_for, lg_for_each_template, ug::IRefiner::mark(), ug::RM_CLOSURE, ug::RM_REFINE, ug::SMALL, ug::sq(), ug::VecDot(), ug::VecNormalize(), ug::VecSubtract(), and ug::EdgeVertices::vertex().
void ug::MarkForRefinement_AnisotropicElements | ( | TDomain & | dom, |
IRefiner & | refiner, | ||
number | minEdgeRatio | ||
) |
References ug::Grid::begin(), ug::Grid::end(), and ug::MarkForAnisotropicRefinement().
void ug::MarkForRefinement_ContainsSurfaceNode | ( | TDomain & | dom, |
SmartPtr< IRefiner > | refiner, | ||
double | time, | ||
size_t | maxLvl, | ||
const TDomain & | surfaceDomain | ||
) |
References ug::ContainsPoint(), ug::GetVertex(), ug::NumVertices(), and PROFILE_FUNC.
void ug::MarkForRefinement_EdgeDirection | ( | TDomain & | dom, |
IRefiner & | refiner, | ||
MathVector< TDomain::dim > & | dir, | ||
number | minDeviationAngle, | ||
number | maxDeviationAngle, | ||
bool | selectFlipped | ||
) |
References ug::MultiGrid::begin(), ug::MultiGrid::end(), and ug::MarkForRefinementByDirection().
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().
void ug::MarkForRefinement_ElementsInSubset | ( | TDomain & | dom, |
IRefiner & | refiner, | ||
TSubsetHandler & | sh, | ||
int | subsetIndex | ||
) |
void ug::MarkForRefinement_SubsetInterfaceElements | ( | IRefiner & | refiner, |
ISubsetHandler & | sh | ||
) |
References ug::Grid::associated_elements(), ug::Grid::attach_to(), ug::Grid::begin(), ug::Grid::detach_from(), ug::Grid::end(), ug::ISubsetHandler::get_subset_index(), ug::ISubsetHandler::grid(), ug::IRefiner::grid(), ug::IRefiner::mark(), PCL_RO_MAX, PCL_RO_MIN, ug::SetAttachmentValues(), ug::PointerConstArray< TPtr >::size(), and UG_COND_THROW.
void ug::MarkForRefinement_SubsetInterfaceElements | ( | TDomain & | dom, |
IRefiner & | refiner | ||
) |
void ug::MarkForRefinement_VerticesInCube | ( | TDomain & | dom, |
SmartPtr< IRefiner > | refiner, | ||
const typename TDomain::position_type & | min, | ||
const typename TDomain::position_type & | max | ||
) |
References ug::MarkForAdaption_VerticesInCube().
void ug::MarkForRefinement_VerticesInSphere | ( | TDomain & | dom, |
SmartPtr< IRefiner > | refiner, | ||
const typename TDomain::position_type & | center, | ||
number | radius | ||
) |
References ug::MarkForAdaption_VerticesInSphereMaxLvl().
void ug::MarkNeighborsForAnisotropicRefinement | ( | IRefiner & | refiner, |
bool | sideNbrsOnly | ||
) |
References ug::IRefiner::mark_neighborhood(), and ug::RM_ANISOTROPIC.
Referenced by ug::bridge::Refinement::Functionality::Common().
void ug::MarkNeighborsForFullRefinement | ( | IRefiner & | refiner, |
bool | sideNbrsOnly | ||
) |
References ug::IRefiner::mark_neighborhood(), and ug::RM_REFINE.
Referenced by ug::bridge::Refinement::Functionality::Common().
|
static |
Returns a refinement mark, given a string describing it.
Valid parameters are: "refine", "coarsen"
References ug::RM_COARSEN, ug::RM_NONE, ug::RM_REFINE, ug::TrimString(), and UG_THROW.
Referenced by ug::MarkForAdaption_ElementsContainingPoint(), ug::MarkForAdaption_ElementsTouchingSubset(), ug::MarkForAdaption_VerticesInCube(), and ug::MarkForAdaption_VerticesInSphereMaxLvl().