https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Classes | Functions
SBMDistanceFunctionTest.C File Reference

Go to the source code of this file.

Classes

class  SBMDistanceFunctionTest
 

Functions

 TEST_F (SBMDistanceFunctionTest, DistanceVectorFromPlane)
 
 TEST_F (SBMDistanceFunctionTest, DistanceVectorZeroGradient)
 
 TEST_F (SBMDistanceFunctionTest, TrueNormalFromPlane)
 
 TEST_F (SBMDistanceFunctionTest, ClosestPicksNearestSurface)
 
 TEST_F (SBMDistanceFunctionTest, UnionSignedDistanceTakesMin)
 
 TEST_F (SBMDistanceFunctionTest, UnionSignedDistanceRejectsUnsupportedType)
 

Function Documentation

◆ TEST_F() [1/6]

TEST_F ( SBMDistanceFunctionTest  ,
ClosestPicksNearestSurface   
)

Definition at line 79 of file SBMDistanceFunctionTest.C.

80{
81 const Function & near = parsed("near", "x");
82 const Function & far = parsed("far", "x - 10");
83 const std::vector<const Function *> funcs{&near, &far};
84 const Point pt(2, 0, 0);
85
87 EXPECT_NEAR(d(0), -2.0, 1e-6);
88
90 EXPECT_NEAR(n(0), 1.0, 1e-6);
91}
RealVectorValue closestTrueNormalVector(const std::vector< const Function * > &funcs, const libMesh::Point &pt, Real t)
Scan all distance functions and return the corresponding normal vector.
Definition SBMUtils.C:185
RealVectorValue closestDistanceVector(const std::vector< const Function * > &funcs, const libMesh::Point &pt, Real t)
Scan all distance functions and return the closest distance vector.
Definition SBMUtils.C:163
VectorValue< Real > RealVectorValue

◆ TEST_F() [2/6]

TEST_F ( SBMDistanceFunctionTest  ,
DistanceVectorFromPlane   
)

Definition at line 48 of file SBMDistanceFunctionTest.C.

49{
50 const Function & phi = parsed("phi_x", "x");
51 const RealVectorValue d = SBMUtils::distanceVectorFromFunction(&phi, Point(2, 0, 0), 0);
52 EXPECT_NEAR(d(0), -2.0, 1e-6);
53 EXPECT_NEAR(d(1), 0.0, 1e-6);
54 EXPECT_NEAR(d(2), 0.0, 1e-6);
55}
RealVectorValue distanceVectorFromFunction(const Function *func, const libMesh::Point &pt, Real t)
Compute the distance vector induced by a distance function.
Definition SBMUtils.C:120

◆ TEST_F() [3/6]

TEST_F ( SBMDistanceFunctionTest  ,
DistanceVectorZeroGradient   
)

Definition at line 59 of file SBMDistanceFunctionTest.C.

60{
61 const Function & c = parsed("phi_const", "5");
62 const RealVectorValue d = SBMUtils::distanceVectorFromFunction(&c, Point(1, 1, 1), 0);
63 EXPECT_NEAR(d.norm(), 0.0, 1e-12);
64}

◆ TEST_F() [4/6]

TEST_F ( SBMDistanceFunctionTest  ,
TrueNormalFromPlane   
)

Definition at line 68 of file SBMDistanceFunctionTest.C.

69{
70 const Function & phi = parsed("phi_x2", "x");
71 const RealVectorValue n = SBMUtils::trueNormalFromFunction(&phi, Point(2, 0, 0), 0);
72 EXPECT_NEAR(n(0), 1.0, 1e-6);
73 EXPECT_NEAR(n(1), 0.0, 1e-6);
74 EXPECT_NEAR(n(2), 0.0, 1e-6);
75}
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.
Definition SBMUtils.C:140

◆ TEST_F() [5/6]

TEST_F ( SBMDistanceFunctionTest  ,
UnionSignedDistanceRejectsUnsupportedType   
)

Definition at line 104 of file SBMDistanceFunctionTest.C.

105{
106 const Function & c = buildFunction(
107 "ConstantFunction", "c", [](InputParameters & p) { p.set<Real>("value") = 1.0; });
108 const std::vector<const Function *> funcs{&c};
109 EXPECT_ANY_THROW(SBMUtils::unionSignedDistance(funcs, 0, Point(0, 0, 0)));
110}
const Real p
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.
Definition SBMUtils.C:207
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

◆ TEST_F() [6/6]

TEST_F ( SBMDistanceFunctionTest  ,
UnionSignedDistanceTakesMin   
)

Definition at line 94 of file SBMDistanceFunctionTest.C.

95{
96 const Function & u1 = parsed("u1", "x");
97 const Function & u2 = parsed("u2", "x - 10");
98 const std::vector<const Function *> funcs{&u1, &u2};
99 EXPECT_NEAR(SBMUtils::unionSignedDistance(funcs, 0, Point(2, 0, 0)), -8.0, 1e-6);
100}