13#ifndef CD_SPHEREARRAY_H
14#define CD_SPHEREARRAY_H
20#include <EBGeometry.hpp>
21#include <CD_NamespaceHeader.H>
24using AABB = EBGeometry::BoundingVolumes::AABBT<Real>;
25using Vec3 = EBGeometry::Vec3T<Real>;
26using SDF = EBGeometry::SignedDistanceFunction<Real>;
27using Sphere = EBGeometry::SphereSDF<Real>;
52 const RealVect& a_loCenter,
53 const RealVect& a_sphereGap,
82 value(
const RealVect& a_point)
const override;
95 static constexpr size_t K = 4;
118#include <CD_NamespaceFooter.H>
A Cartesian array of spheres.
Definition CD_SphereArray.H:34
bool m_flipInside
Make inside to outside.
Definition CD_SphereArray.H:105
Real value(const RealVect &a_point) const override
Value function.
Definition CD_SphereArray.cpp:89
std::shared_ptr< EBGeometry::ImplicitFunction< Real > > m_fastUnion
Union that uses bounding volume hierarchy acceleration.
Definition CD_SphereArray.H:115
SphereArray()=delete
Disallowed (for now)
~SphereArray() override
Destructor (does nothing)
Definition CD_SphereArray.cpp:83
std::shared_ptr< EBGeometry::ImplicitFunction< Real > > m_slowUnion
Standard union ala Chombo.
Definition CD_SphereArray.H:110
bool m_useFast
Switch for using fast or slow union.
Definition CD_SphereArray.H:100
BaseIF * newImplicitFunction() const override
Factory method – calls the copy constructor.
Definition CD_SphereArray.cpp:116
static constexpr size_t K
Tree degree for BVH accelerator.
Definition CD_SphereArray.H:95