12#ifndef CD_RandomInterface_H
13#define CD_RandomInterface_H
17#include <CD_NamespaceHeader.H>
39 using Vec3 = EBGeometry::Vec3T<Real>;
69 const Vec3 a_noiseFrequency,
70 const Real a_noiseAmplitude,
71 const Real a_noisePersistence,
72 const int a_noiseOctaves)
noexcept;
122 std::shared_ptr<EBGeometry::PlaneSDF<Real>>
m_plane;
127 std::shared_ptr<EBGeometry::PerlinSDF<Real>>
m_perlin;
131#include <CD_NamespaceFooter.H>
Declaration of base class for defining geometries.
Binding of EBGeometry signed distance functions to Chombo objcts.
Abstract base class for geometries.
Definition CD_ComputationalGeometry.H:36
Clamped noisy plane signed distance function.
Definition CD_RandomInterface.H:45
ClampedNoisePlane()=delete
Disallowed weak construction.
virtual Real signedDistance(const Vec3 &a_point) const noexcept override
Signed distance function.
Definition CD_RandomInterface.cpp:59
Vec3 m_normal
Plane normal vector.
Definition CD_RandomInterface.H:102
Vec3 m_point
Point on plane.
Definition CD_RandomInterface.H:97
~ClampedNoisePlane()=default
Destructor (does nothing)
void shuffle(URNG &a_rng) noexcept
Shuffle the permutation array.
Definition CD_RandomInterface.cpp:53
Vec3 m_clampLo
Low-end clamping.
Definition CD_RandomInterface.H:107
std::shared_ptr< EBGeometry::PlaneSDF< Real > > m_plane
Base implicit function.
Definition CD_RandomInterface.H:122
std::shared_ptr< EBGeometry::PerlinSDF< Real > > m_perlin
Noise function.
Definition CD_RandomInterface.H:127
Vec3 m_clampHi
High-end clamping.
Definition CD_RandomInterface.H:112
Vec3 m_clampDx
Clamping length.
Definition CD_RandomInterface.H:117
Class that represents two random interface smooshed together.
Definition CD_RandomInterface.H:23
RandomInterface() noexcept
Constructor.
Definition CD_RandomInterface.cpp:79
EBGeometry::Vec3T< Real > Vec3
Alias for 3D vector type.
Definition CD_RandomInterface.H:39
virtual ~RandomInterface() noexcept
Destructor (does nothing)
Definition CD_RandomInterface.cpp:229