12 #ifndef CD_SphereArray_H
13 #define CD_SphereArray_H
19 #include <EBGeometry.hpp>
20 #include <CD_NamespaceHeader.H>
22 using AABB = EBGeometry::BoundingVolumes::AABBT<Real>;
23 using Vec3 = EBGeometry::Vec3T<Real>;
24 using SDF = EBGeometry::SignedDistanceFunction<Real>;
25 using Sphere = EBGeometry::SphereSDF<Real>;
49 const RealVect a_loCenter,
50 const RealVect a_sphereGap,
51 const IntVect a_numSpheres,
53 const bool a_flipInside,
54 const Real a_zCoord = 0.0);
71 value(
const RealVect& a_point)
const override;
83 static constexpr
size_t K = 4;
98 std::shared_ptr<EBGeometry::ImplicitFunction<Real>>
m_slowUnion;
106 #include <CD_NamespaceFooter.H>
A Cartesian array of spheres.
Definition: CD_SphereArray.H:31
bool m_flipInside
Make inside to outside.
Definition: CD_SphereArray.H:93
virtual Real value(const RealVect &a_point) const override
Value function.
Definition: CD_SphereArray.cpp:88
std::shared_ptr< EBGeometry::ImplicitFunction< Real > > m_fastUnion
Union that uses bounding volume hierarchy acceleration.
Definition: CD_SphereArray.H:103
virtual ~SphereArray()
Destructor (does nothing)
Definition: CD_SphereArray.cpp:82
SphereArray()=delete
Disallowed (for now)
std::shared_ptr< EBGeometry::ImplicitFunction< Real > > m_slowUnion
Standard union ala Chombo.
Definition: CD_SphereArray.H:98
bool m_useFast
Switch for using fast or slow union.
Definition: CD_SphereArray.H:88
virtual BaseIF * newImplicitFunction() const override
Factory method – calls the copy constructor.
Definition: CD_SphereArray.cpp:115
static constexpr size_t K
Tree degree for BVH accelerator.
Definition: CD_SphereArray.H:83