14#include "gtest/gtest.h"
25 const std::string &
name,
50 const Function & phi = parsed(
"phi_x",
"x");
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);
61 const Function &
c = parsed(
"phi_const",
"5");
63 EXPECT_NEAR(
d.norm(), 0.0, 1e-12);
70 const Function & phi = parsed(
"phi_x2",
"x");
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);
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);
87 EXPECT_NEAR(
d(0), -2.0, 1e-6);
90 EXPECT_NEAR(n(0), 1.0, 1e-6);
96 const Function & u1 = parsed(
"u1",
"x");
97 const Function & u2 = parsed(
"u2",
"x - 10");
98 const std::vector<const Function *> funcs{&u1, &u2};
107 "ConstantFunction",
"c", [](
InputParameters &
p) {
p.set<Real>(
"value") = 1.0; });
108 const std::vector<const Function *> funcs{&
c};
Real f(Real x)
Test function for Brents method.
TEST_F(SBMDistanceFunctionTest, DistanceVectorFromPlane)
InputParameters getValidParams(const std::string &name) const
std::shared_ptr< FEProblem > _fe_problem
const Function & buildFunction(const std::string &type, const std::string &name, const std::function< void(InputParameters &)> &set_params)
SBMDistanceFunctionTest()
const Function & parsed(const std::string &name, const std::string &expr)
virtual void initialSetup()
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.
RealVectorValue closestTrueNormalVector(const std::vector< const Function * > &funcs, const libMesh::Point &pt, Real t)
Scan all distance functions and return the corresponding normal vector.
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.