116 const char **reason =
nullptr)
noexcept;
129 const char **reason =
nullptr)
noexcept;
137 double time)
noexcept;
170 double hbar)
noexcept;
184 static double wrapPhase(
double radians)
noexcept;
200 double hbar = 1.0)
noexcept;
211 double hbar = 1.0)
noexcept;
231 void clear()
noexcept;
271 const std::vector<QuantumBerrySample2D> &
samples() const noexcept {
return samples_; }
Owning Cartesian grid of complex scalar samples.
Implements the Potential Field2D component.
Implements the Potential Scene2D component.
Implements the Quantum Berry History2D component.
void clear() noexcept
Clears stored state and returns the component to its empty/default state.
const std::vector< QuantumBerrySample2D > & samples() const noexcept
Samples s.
bool configure(const ComplexField2D &reference, const QuantumBerryTrap2D &trap, const QuantumBerryLoop2DConfig &config)
Returns configure.
QuantumBerryHistory2D(std::size_t maximumSamples=1200u)
Constructs a Quantum Berry History 2D instance.
std::size_t maximumSamples_
ComplexField2D reference_
std::vector< QuantumBerrySample2D > samples_
std::complex< double > transportPhase_
bool append(double time, const QuantumBerryLoop2DState &loopState, const ComplexField2D &field)
Carries out append.
QuantumBerryLoop2DConfig config_
const QuantumBerryLoop2DConfig & config() const noexcept
Returns config.
void trimToLimit()
Carries out trim to limit.
const QuantumBerryTrap2D & trap() const noexcept
Carries out trap.
bool empty() const noexcept
Returns whether the object contains no data.
bool configured() const noexcept
Returns configured.
Implements the Quantum Berry Phase2D component.
static double doubletGap(const QuantumBerryTrap2D &trap, const QuantumBerryLoop2DConfig &config, double mass, double hbar=1.0) noexcept
Performs doublet gap.
static QuantumBerryLoop2DState state(const QuantumBerryLoop2DConfig &config, double time) noexcept
Performs state.
static double expectedBerryPhase(const QuantumBerryLoop2DConfig &config) noexcept
Performs expected berry phase.
static QuantumBerryLoop2DState rasterize(const PotentialScene2D &baseScene, const QuantumBerryTrap2D &trap, const QuantumBerryLoop2DConfig &config, double time, PotentialField2D &target)
Performs rasterize.
static bool validateConfig(const QuantumBerryLoop2DConfig &config, const QuantumBerryTrap2D &trap, const char **reason=nullptr) noexcept
Validates config.
static double adiabaticRatio(const QuantumBerryTrap2D &trap, const QuantumBerryLoop2DConfig &config, double mass, double hbar=1.0) noexcept
Performs adiabatic ratio.
static bool prepareFirstExcited(ComplexField2D &field, const QuantumBerryTrap2D &trap, const QuantumBerryLoop2DConfig &config, double mass, double hbar) noexcept
Prepares first excited.
static bool identifyTrap(const PotentialScene2D &scene, QuantumBerryTrap2D &trap, const char **reason=nullptr) noexcept
Returns identify trap.
static std::complex< double > normalizedOverlap(const ComplexField2D &a, const ComplexField2D &b) noexcept
Returns normalized overlap.
static double wrapPhase(double radians) noexcept
Performs wrap phase.
Declares the complex scalar field container representing two-dimensional wave functions.
Declares the potentialscene2d physics/numerical component used by QPE experiments.
Configuration values for Quantum Berry Loop2D Config.
Data record containing Quantum Berry Loop2D State.
double principalAxisAngle
Data structure used by the Quantum Berry Sample2D component.
double principalAxisAngle
Data structure used by the Quantum Berry Trap2D component.