Quantum Phenomena Explorer 7.9.8
Interactive quantum-phenomena Explorer Tutor — source documentation
Loading...
Searching...
No Matches
quantumkleinanglescan2d.h
Go to the documentation of this file.
1/**
2 * @file quantumkleinanglescan2d.h
3 * @brief Declares the quantumkleinanglescan2d physics/numerical component used by QPE experiments.
4 * @ingroup qpe_quantum
5 *
6 * Source: @c core/quantum/quantumkleinanglescan2d.h. This file is part of Quantum Phenomena Explorer (QPE),
7 * maintained by Officina Turini. See LICENSE_IT.txt / LICENSE.txt for the
8 * QPE freeware source-available terms and THIRD_PARTY_NOTICES.txt for
9 * third-party components.
10 */
11
12#pragma once
13
15
16#include <vector>
17
18namespace qpe {
19
20/**
21 * @brief Data structure used by the Quantum Klein Angle Point2D component.
22 *
23 * The structure keeps related values explicit and testable across the QPE physics, analysis, or persistence layers.
24 */
34
35/**
36 * @brief Data record containing Quantum Klein Angle Scan2D Result.
37 *
38 * The structure carries computed data without coupling the numerical component to the GUI or renderer.
39 */
41{
42 bool valid = false;
43 double hbar = 1.0;
44 double momentumMagnitude = 0.0;
45 double incidentEnergy = 0.0;
46 double barrierHeight = 0.0;
47 double barrierWidth = 0.0;
48 double minimumAngleDegrees = 0.0;
49 double maximumAngleDegrees = 70.0;
50 std::vector<QuantumKleinAnglePoint2D> points;
51};
52
53// Stationary plane-wave reference for the same two-component Dirac Hamiltonian
54// and scalar square barrier used by QuantumKleinTunneling2D. The time-domain
55// packet remains the numerical experiment; this module supplies a fast,
56// independent angular reference T(theta) at fixed |p|.
57/**
58 * @brief Implements the Quantum Klein Angle Scan2D component.
59 *
60 * The class provides one focused service within the QPE architecture and is documented here independently of the experiment-level Help.
61 */
63{
64public:
65 /**
66 * @brief Performs evaluate.
67 * @param baseConfig Configuration values used by the operation.
68 * @param angleDegrees The angle degrees value used by the operation.
69 * @param hbar The hbar value used by the operation.
70 */
72 double angleDegrees,
73 double hbar = 1.0) noexcept;
74
75 /**
76 * @brief Performs scan.
77 * @param baseConfig Configuration values used by the operation.
78 * @param minimumAngleDegrees The minimum angle degrees value used by the operation.
79 * @param maximumAngleDegrees The maximum angle degrees value used by the operation.
80 * @param samples The samples value used by the operation.
81 * @param hbar The hbar value used by the operation.
82 */
84 double minimumAngleDegrees = 0.0,
85 double maximumAngleDegrees = 70.0,
86 int samples = 71,
87 double hbar = 1.0) noexcept;
88};
89
90} // namespace qpe
Implements the Quantum Klein Angle Scan2D component.
static QuantumKleinAngleScan2DResult scan(const QuantumKleinTunneling2DConfig &baseConfig, double minimumAngleDegrees=0.0, double maximumAngleDegrees=70.0, int samples=71, double hbar=1.0) noexcept
Performs scan.
static QuantumKleinAnglePoint2D evaluate(const QuantumKleinTunneling2DConfig &baseConfig, double angleDegrees, double hbar=1.0) noexcept
Performs evaluate.
QuantumKleinBarrierRegime2D
Enumerates the supported Quantum Klein Barrier Regime2D values.
Declares the quantumkleintunneling2d physics/numerical component used by QPE experiments.
Data structure used by the Quantum Klein Angle Point2D component.
QuantumKleinBarrierRegime2D regime
Data record containing Quantum Klein Angle Scan2D Result.
std::vector< QuantumKleinAnglePoint2D > points
Configuration values for Quantum Klein Tunneling2D Config.