Classes | |
| struct | ClassificationSubdomains |
| The subdomain IDs a (possibly partial) element can be labeled with. More... | |
| struct | ElementActivity |
| Measured activity state of a (possibly partial) element, used to classify it. More... | |
Functions | |
| libMesh::Point | distanceFrom (const SurfaceElement &surface_elem, const libMesh::Point &pt) |
| Returns the vector from pt to the nearest point on the surface element: the normal projection if it falls inside the element, otherwise the nearest edge or vertex. | |
| bool | checkWatertightnessFromRawElems (const std::vector< const Elem * > &bd_elements) |
| Real | activeElementFraction (const Elem &elem, Order qrule_order, const std::function< bool(const libMesh::Point &)> &is_active) |
| Compute the fraction of an element's quadrature-weighted measure satisfying a predicate. | |
| bool | isInactive (Real active_fraction, Real lambda) |
| Return whether a partial element is inactive, i.e. | |
| SubdomainID | classifyPartialElement (const ElementActivity &activity, const ClassificationSubdomains &subdomains, bool mark_intercepted, Real lambda) |
| Classify a (possibly partial) element into an inside/outside/intercepted subdomain. | |
| std::vector< const Function * > | buildDistanceFunctions (const std::vector< FunctionName > &function_names, const FunctionInterface &function_provider) |
| Build a list of distance functions based on names specified in input. | |
| RealVectorValue | distanceVectorFromFunction (const Function *func, const libMesh::Point &pt, Real t) |
| Compute the distance vector induced by a distance function. | |
| RealVectorValue | trueNormalFromFunction (const Function *func, const libMesh::Point &pt, Real t) |
| Compute the true boundary surface normal at the point on the boundary closest to pt. | |
| RealVectorValue | closestDistanceVector (const std::vector< const Function * > &funcs, const libMesh::Point &pt, Real t) |
| Scan all distance functions and return the closest distance vector. | |
| RealVectorValue | closestTrueNormalVector (const std::vector< const Function * > &funcs, const libMesh::Point &pt, Real t) |
| Scan all distance functions and return the corresponding normal vector. | |
| Real | unionSignedDistance (const std::vector< const Function * > &funcs, Real t, const Point &p) |
| Computes the union signed distance by taking the minimum of all signed distance functions. | |
| Point | distanceFrom (const SurfaceElement &surface_elem, const Point &pt) |
| Real SBMUtils::activeElementFraction | ( | const Elem & | elem, |
| Order | qrule_order, | ||
| const std::function< bool(const libMesh::Point &)> & | is_active | ||
| ) |
Compute the fraction of an element's quadrature-weighted measure satisfying a predicate.
Definition at line 26 of file SBMUtils.C.
Referenced by InterceptedElementModifier::computeSubdomainID(), SubdomainElementModifier::computeSubdomainID(), and TEST().
| std::vector< const Function * > SBMUtils::buildDistanceFunctions | ( | const std::vector< FunctionName > & | function_names, |
| const FunctionInterface & | function_provider | ||
| ) |
Build a list of distance functions based on names specified in input.
Definition at line 95 of file SBMUtils.C.
Referenced by ShortestDistanceToSurface::ShortestDistanceToSurface().
| bool SBMUtils::checkWatertightnessFromRawElems | ( | const std::vector< const Elem * > & | bd_elements | ) |
| SubdomainID SBMUtils::classifyPartialElement | ( | const ElementActivity & | activity, |
| const ClassificationSubdomains & | subdomains, | ||
| bool | mark_intercepted, | ||
| Real | lambda | ||
| ) |
Classify a (possibly partial) element into an inside/outside/intercepted subdomain.
An element with all nodes active and a fully active measure is inside; one with all nodes inactive and a fully inactive measure is outside. A remaining (partial) element is assigned the intercepted subdomain when mark_intercepted is true, and otherwise is resolved by the lambda threshold (see isInactive).
Definition at line 62 of file SBMUtils.C.
Referenced by InterceptedElementModifier::computeSubdomainID().
| RealVectorValue SBMUtils::closestDistanceVector | ( | const std::vector< const Function * > & | funcs, |
| const libMesh::Point & | pt, | ||
| Real | t | ||
| ) |
Scan all distance functions and return the closest distance vector.
Definition at line 163 of file SBMUtils.C.
Referenced by ShortestDistanceToSurface::distanceVector(), and TEST_F().
| RealVectorValue SBMUtils::closestTrueNormalVector | ( | const std::vector< const Function * > & | funcs, |
| const libMesh::Point & | pt, | ||
| Real | t | ||
| ) |
Scan all distance functions and return the corresponding normal vector.
Definition at line 185 of file SBMUtils.C.
Referenced by TEST_F(), and ShortestDistanceToSurface::trueNormal().
| libMesh::Point SBMUtils::distanceFrom | ( | const SurfaceElement & | surface_elem, |
| const libMesh::Point & | pt | ||
| ) |
Returns the vector from pt to the nearest point on the surface element: the normal projection if it falls inside the element, otherwise the nearest edge or vertex.
Precondition (mooseAssert in debug builds): the element's sides are EDGE2 or NODEELEM (the only side types this routine handles).
Referenced by UnsignedDistanceToSurfaceMesh::distanceVectorToSurface(), TEST(), TEST(), TEST(), TEST(), and TEST().
| Point SBMUtils::distanceFrom | ( | const SurfaceElement & | surface_elem, |
| const Point & | pt | ||
| ) |
Definition at line 23 of file SBMSurfaceDistance.C.
| RealVectorValue SBMUtils::distanceVectorFromFunction | ( | const Function * | func, |
| const libMesh::Point & | pt, | ||
| Real | t | ||
| ) |
Compute the distance vector induced by a distance function.
The provided function must represent a distance to the true boundary: either a signed distance function (ParsedFunction) or an unsigned distance function provided by UnsignedDistanceToSurfaceMesh.
Definition at line 120 of file SBMUtils.C.
Referenced by closestDistanceVector(), closestTrueNormalVector(), ShortestDistanceToSurface::distanceVectorByFunc(), ShortestDistanceToSurface::distanceVectorByIndex(), TEST_F(), TEST_F(), and trueNormalFromFunction().
| bool SBMUtils::isInactive | ( | Real | active_fraction, |
| Real | lambda | ||
| ) |
Return whether a partial element is inactive, i.e.
its inactive fraction exceeds lambda.
The endpoint handling preserves the convention that lambda zero rejects and lambda one accepts a partially active element.
Definition at line 51 of file SBMUtils.C.
Referenced by classifyPartialElement(), SubdomainElementModifier::computeSubdomainID(), and TEST().
| RealVectorValue SBMUtils::trueNormalFromFunction | ( | const Function * | func, |
| const libMesh::Point & | pt, | ||
| Real | t | ||
| ) |
Compute the true boundary surface normal at the point on the boundary closest to pt.
Definition at line 140 of file SBMUtils.C.
Referenced by closestTrueNormalVector(), TEST_F(), ShortestDistanceToSurface::trueNormalByFunc(), and ShortestDistanceToSurface::trueNormalByIndex().
| Real SBMUtils::unionSignedDistance | ( | const std::vector< const Function * > & | funcs, |
| Real | t, | ||
| const Point & | p | ||
| ) |
Computes the union signed distance by taking the minimum of all signed distance functions.
This definition is valid for overlapping geometries and preserves the correct union boundary.
Definition at line 207 of file SBMUtils.C.
Referenced by TEST_F(), TEST_F(), and ShortestDistanceToSurface::value().