118 const char **reason =
nullptr)
noexcept;
130 std::string *reason =
nullptr);
140 std::uint64_t shutterObjectId,
142 const char **reason =
nullptr)
noexcept;
154 const char **reason =
nullptr)
noexcept;
179 std::vector<float> &out)
noexcept;
188 const std::vector<float> &marginal,
189 double detectorX)
noexcept;
198 const std::vector<float> &marginal,
199 double shutterX)
noexcept;
207 const std::vector<float> &marginal)
noexcept;
227 void clear()
noexcept;
267 const std::vector<QuantumMoshinskySample2D> &
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 Moshinsky2D component.
static bool validateInitialState(const QuantumMoshinskyInitialState2DConfig &config, const char **reason=nullptr) noexcept
Validates initial state.
static bool marginalX(const ComplexField2D &field, std::vector< float > &out) noexcept
Performs marginal x.
static double frontProbability(const ComplexField2D &field, const std::vector< float > &marginal, double shutterX) noexcept
Performs front probability.
static double meanX(const ComplexField2D &field, const std::vector< float > &marginal) noexcept
Performs mean x.
static bool identifyShutter(const PotentialScene2D &scene, std::uint64_t shutterObjectId, QuantumMoshinskyGeometry2D &geometry, const char **reason=nullptr) noexcept
Returns identify shutter.
static bool validateConfig(const PotentialScene2D &scene, const QuantumMoshinsky2DConfig &config, QuantumMoshinskyGeometry2D *geometry=nullptr, const char **reason=nullptr) noexcept
Validates config.
static double detectorSignal(const ComplexField2D &field, const std::vector< float > &marginal, double detectorX) noexcept
Performs detector signal.
static bool initialize(ComplexField2D &field, const QuantumMoshinskyInitialState2DConfig &config, double hbar, std::string *reason=nullptr)
Initializes ialize.
static QuantumMoshinskyPotentialState2D rasterize(const PotentialScene2D &scene, const QuantumMoshinsky2DConfig &config, double time, PotentialField2D &target) noexcept
Performs rasterize.
Implements the Quantum Moshinsky History2D component.
const QuantumMoshinsky2DConfig & config() const noexcept
Returns config.
bool append(double time, bool shutterOpened, const ComplexField2D &field)
Carries out append.
void clear() noexcept
Clears stored state and returns the component to its empty/default state.
void trimToLimit()
Carries out trim to limit.
double xCoordinate(std::size_t x) const noexcept
Carries out x coordinate.
const std::vector< QuantumMoshinskySample2D > & samples() const noexcept
Samples s.
bool configure(const QuantumMoshinsky2DConfig &config, const QuantumMoshinskyGeometry2D &geometry, const ComplexField2D &field)
Returns configure.
QuantumMoshinskyHistory2D(std::size_t maximumSamples=520u)
Constructs a Quantum Moshinsky History 2D instance.
QuantumMoshinsky2DConfig config_
std::vector< QuantumMoshinskySample2D > samples_
bool configured() const noexcept
Returns configured.
std::size_t maximumSamples_
std::size_t gridWidth() const noexcept
Carries out grid width.
float gridDx() const noexcept
Carries out grid dx.
const QuantumMoshinskyGeometry2D & geometry() const noexcept
Carries out geometry.
QuantumMoshinskyGeometry2D geometry_
bool empty() const noexcept
Returns whether the object contains no data.
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 Moshinsky2D Config.
std::uint64_t shutterObjectId
Data structure used by the Quantum Moshinsky Geometry2D component.
std::uint64_t shutterObjectId
Configuration values for Quantum Moshinsky Initial State2D Config.
Data structure used by the Quantum Moshinsky Potential State2D component.
Data structure used by the Quantum Moshinsky Sample2D component.
std::vector< float > marginalX