|
Quantum Phenomena Explorer 7.9.8
Interactive quantum-phenomena Explorer Tutor — source documentation
|
Owning Cartesian grid of complex scalar samples. More...
#include <complexfield2d.h>
Public Types | |
| using | Value = std::complex<float> |
Public Member Functions | |
| ComplexField2D ()=default | |
| Constructs an empty field. | |
| ComplexField2D (std::size_t width, std::size_t height, float dx=1.0f, float dy=1.0f) | |
| Constructs a sampled field and zero-initializes all samples. | |
| void | resize (std::size_t width, std::size_t height, float dx=1.0f, float dy=1.0f) |
| Reallocates the grid and resets all samples to zero. | |
| void | clear () noexcept |
| Releases all samples and returns the field to the empty state. | |
| void | fill (const Value &value) |
| Assigns one complex value to every grid sample. | |
| bool | empty () const noexcept |
| Returns whether the field contains no samples. | |
| std::size_t | width () const noexcept |
| Returns the number of samples along X. | |
| std::size_t | height () const noexcept |
| Returns the number of samples along Y. | |
| std::size_t | size () const noexcept |
| Returns the total number of complex samples. | |
| float | dx () const noexcept |
| Returns the X grid spacing. | |
| float | dy () const noexcept |
| Returns the Y grid spacing. | |
| Value & | operator() (std::size_t x, std::size_t y) noexcept |
| Returns a mutable sample without bounds checking. | |
| const Value & | operator() (std::size_t x, std::size_t y) const noexcept |
| Returns a const sample without bounds checking. | |
| Value & | at (std::size_t x, std::size_t y) |
| Returns a mutable sample with bounds checking. | |
| const Value & | at (std::size_t x, std::size_t y) const |
| Returns a const sample with bounds checking. | |
| Value * | data () noexcept |
| Returns mutable contiguous row-major sample storage. | |
| const Value * | data () const noexcept |
| Returns const contiguous row-major sample storage. | |
| double | sumAbs2 () const noexcept |
Returns the raw sample sum sum(|psi|^2) without cell area. | |
| double | norm2 () const noexcept |
Returns the discrete integral of |psi|^2 including dx*dy. | |
| double | norm () const noexcept |
| Returns the square root of the discrete probability norm. | |
| bool | normalize () noexcept |
| Scales the field to unit discrete probability norm. | |
Private Member Functions | |
| std::size_t | index (std::size_t x, std::size_t y) const noexcept |
| Returns index. | |
| std::size_t | checkedIndex (std::size_t x, std::size_t y) const |
| Checks ed index. | |
Private Attributes | |
| std::size_t | width_ = 0 |
| std::size_t | height_ = 0 |
| float | dx_ = 1.0f |
| float | dy_ = 1.0f |
| std::vector< Value > | data_ |
Owning Cartesian grid of complex scalar samples.
ComplexField2D is the authoritative scalar wave-function container used by the Schrodinger branch. Samples are stored contiguously in row-major order together with the physical grid spacing dx and dy. The class deliberately contains no rendering state.
The discrete probability norm is approximated as
\[ \|\psi\|^2 \approx \sum_{x,y}|\psi_{x,y}|^2\,\Delta x\,\Delta y. \]
Definition at line 33 of file complexfield2d.h.
| using qpe::ComplexField2D::Value = std::complex<float> |
Definition at line 36 of file complexfield2d.h.
|
default |
Constructs an empty field.
| qpe::ComplexField2D::ComplexField2D | ( | std::size_t | width, |
| std::size_t | height, | ||
| float | dx = 1.0f, | ||
| float | dy = 1.0f ) |
Constructs a sampled field and zero-initializes all samples.
| width | Number of samples along X. |
| height | Number of samples along Y. |
| dx | Grid spacing along X in simulation length units. |
| dy | Grid spacing along Y in simulation length units. |
Definition at line 20 of file complexfield2d.cpp.
| ComplexField2D::Value & qpe::ComplexField2D::at | ( | std::size_t | x, |
| std::size_t | y ) |
Returns a mutable sample with bounds checking.
| x | Zero-based X sample index. |
| y | Zero-based Y sample index. |
| std::out_of_range | if either index lies outside the grid. |
Definition at line 94 of file complexfield2d.cpp.
References checkedIndex(), and data_.
Referenced by qpe::tests::runComplexField2DTests().
| const ComplexField2D::Value & qpe::ComplexField2D::at | ( | std::size_t | x, |
| std::size_t | y ) const |
Returns a const sample with bounds checking.
| x | Zero-based X sample index. |
| y | Zero-based Y sample index. |
| std::out_of_range | if either index lies outside the grid. |
Definition at line 99 of file complexfield2d.cpp.
References checkedIndex(), and data_.
|
private |
|
noexcept |
Releases all samples and returns the field to the empty state.
Definition at line 44 of file complexfield2d.cpp.
References data_.
Referenced by qpe::QuantumRevivalHistory2D::captureReference(), qpe::DiracSpinor2D::clear(), qpe::QuantumBilliardHistory2D::clear(), qpe::QuantumLandauHistory2D::clear(), qpe::tests::runComplexField2DTests(), qpe::tests::runDetectorScreenMeasurement2DTests(), qpe::tests::runPositionMeasurement2DTests(), qpe::tests::runProbabilityImageRendererTests(), qpe::tests::runResonantTunneling2DTests(), and qpe::DiracSpinor2D::writeDensityProxy().
|
noexcept |
Returns const contiguous row-major sample storage.
Definition at line 109 of file complexfield2d.cpp.
References data_.
|
noexcept |
Returns mutable contiguous row-major sample storage.
Definition at line 104 of file complexfield2d.cpp.
References data_.
Referenced by qpe::QuantumBilliardHistory2D::append(), qpe::QuantumScarHistory2D::append(), qpe::AbsorbingBoundary2D::apply(), qpe::DiracSplitStepSolver2D::applyFreeStepInMomentum(), qpe::SplitStepFourierSolver2D::applyKineticStep(), qpe::DiracSplitStepSolver2D::applyPotentialHalfStep(), qpe::SplitStepFourierSolver2D::applyPotentialHalfStep(), qpe::QuantumTextureFrame2D::build(), qpe::tests::anonymous_namespace{fft2d_tests.cpp}::maxAbsError(), qpe::tests::anonymous_namespace{splitstepfouriersolver2d_tests.cpp}::maxDifference(), qpe::DiracSpinor2D::normalize(), qpe::tests::runFFT2DTests(), qpe::tests::runQuantumBerryPhase2DTests(), qpe::tests::runSplitStepFourierSolver2DTests(), qpe::anonymous_namespace{positionmeasurement2d.cpp}::sampleWithEngine(), qpe::FFT2D::transform(), and qpe::DiracSpinor2D::writeDensityProxy().
|
noexcept |
Returns the X grid spacing.
Definition at line 74 of file complexfield2d.cpp.
References dx_.
Referenced by ComplexField2D(), qpe::DetectorTemporalFlux2D::accumulate(), qpe::QuantumVortex2D::angularMomentumZ(), qpe::QuantumTalbotHistory2D::append(), qpe::SplitStepFourierSolver2D::applyGaugeCayleyX(), qpe::QuantumAharonovBohm2D::applyIncidentGaugePhase(), qpe::QuantumKickedRotor2D::applyKick(), qpe::QuantumAharonovBohm2D::buildFields(), qpe::QuantumHallEdge2D::buildFields(), qpe::QuantumLandau2D::buildUniformGauge(), qpe::QuantumTalbotHistory2D::captureReference(), qpe::EnergyObservables2D::compute(), qpe::MomentumSpace2D::compute(), qpe::ProbabilityCurrent2D::compute(), qpe::ProbabilityCurrent2D::computeGaugeCovariant(), qpe::AbsorbingBoundary2D::configure(), qpe::QuantumMoshinskyHistory2D::configure(), qpe::QuantumVortex2D::detectCore(), qpe::anonymous_namespace{detectortemporalflux2d.cpp}::detectorColumns(), qpe::MomentumSpace2DResult::dpX(), qpe::DiracSpinor2D::dx(), qpe::QuantumBilliardHistory2D::dx(), qpe::QuantumRevivalHistory2D::dx(), qpe::QuantumScarHistory2D::dx(), qpe::QuantumKapitzaDirac2D::initialize(), qpe::QuantumKickedRotor2D::initialize(), qpe::QuantumTalbot2D::initialize(), qpe::QuantumVortex2D::initialize(), qpe::QuantumBouncer2D::marginalProbabilityY(), qpe::anonymous_namespace{quantumhalledge2d.cpp}::meanXOf(), qpe::CoherentTunneling2D::measure(), qpe::QuantumAharonovBohm2D::measure(), qpe::QuantumHallEdge2D::measure(), qpe::QuantumLandau2D::measure(), qpe::QuantumAnderson2D::measureLane(), qpe::anonymous_namespace{quantumlandau2d.cpp}::overlap(), qpe::SplitStepFourierSolver2D::prepare(), qpe::QuantumBackflow2D::prepareState(), qpe::QuantumLandau2D::prepareState(), qpe::DrivenTwoLevel2D::project(), resize(), qpe::tests::runDetectorTemporalFlux2DTests(), qpe::tests::runGaussianPacket2DTests(), qpe::tests::runQuantumBerryPhase2DTests(), qpe::tests::runQuantumKapitzaDirac2DTests(), qpe::tests::runQuantumLandau2DTests(), qpe::tests::runQuantumLoschmidt2DTests(), qpe::tests::runQuantumMoshinsky2DTests(), qpe::tests::runQuantumRevivals2DTests(), qpe::tests::runQuantumScar2DTests(), qpe::tests::runQuantumTalbot2DTests(), qpe::WaveFunctionCrossSection2D::sample(), qpe::anonymous_namespace{detectorscreenmeasurement2d.cpp}::sampleWithEngine(), qpe::anonymous_namespace{positionmeasurement2d.cpp}::sampleWithEngine(), QuantumGLView::setQuantumState(), MainWindow::updateCrossSectionAnalysis(), and qpe::anonymous_namespace{probabilitycontours2d.cpp}::xCoordinate().
|
noexcept |
Returns the Y grid spacing.
Definition at line 79 of file complexfield2d.cpp.
References dy_.
Referenced by ComplexField2D(), qpe::DetectorTemporalFlux2D::accumulate(), qpe::QuantumVortex2D::angularMomentumZ(), qpe::QuantumBouncerHistory2D::append(), qpe::QuantumTalbotHistory2D::append(), qpe::SplitStepFourierSolver2D::applyGaugeCayleyY(), qpe::QuantumAharonovBohm2D::applyIncidentGaugePhase(), qpe::QuantumAharonovBohm2D::buildFields(), qpe::QuantumHallEdge2D::buildFields(), qpe::QuantumLandau2D::buildUniformGauge(), qpe::QuantumTalbotHistory2D::captureReference(), qpe::EnergyObservables2D::compute(), qpe::MomentumSpace2D::compute(), qpe::ProbabilityCurrent2D::compute(), qpe::ProbabilityCurrent2D::computeGaugeCovariant(), qpe::AbsorbingBoundary2D::configure(), qpe::QuantumAharonovBohmHistory2D::configure(), qpe::QuantumMoshinskyHistory2D::configure(), qpe::QuantumVortex2D::detectCore(), qpe::MomentumSpace2DResult::dpY(), qpe::DiracSpinor2D::dy(), qpe::QuantumBilliardHistory2D::dy(), qpe::QuantumScarHistory2D::dy(), qpe::QuantumKapitzaDirac2D::initialize(), qpe::QuantumKickedRotor2D::initialize(), qpe::QuantumVortex2D::initialize(), qpe::QuantumRevivals2D::marginalProbabilityX(), qpe::QuantumTalbot2D::marginalProbabilityX(), qpe::anonymous_namespace{quantumhalledge2d.cpp}::meanXOf(), qpe::CoherentTunneling2D::measure(), qpe::QuantumAharonovBohm2D::measure(), qpe::QuantumHallEdge2D::measure(), qpe::QuantumLandau2D::measure(), qpe::QuantumAnderson2D::measureLane(), qpe::anonymous_namespace{quantumlandau2d.cpp}::overlap(), qpe::SplitStepFourierSolver2D::prepare(), qpe::BoundStates1D::prepareEigenstate(), qpe::QuantumBackflow2D::prepareState(), qpe::QuantumLandau2D::prepareState(), qpe::BoundStates1D::prepareSuperposition(), qpe::DrivenTwoLevel2D::project(), resize(), qpe::tests::runGaussianPacket2DTests(), qpe::tests::runQuantumBerryPhase2DTests(), qpe::tests::runQuantumKapitzaDirac2DTests(), qpe::tests::runQuantumLandau2DTests(), qpe::tests::runQuantumLoschmidt2DTests(), qpe::tests::runQuantumMoshinsky2DTests(), qpe::tests::runQuantumScar2DTests(), qpe::WaveFunctionCrossSection2D::sample(), qpe::anonymous_namespace{detectorscreenmeasurement2d.cpp}::sampleWithEngine(), qpe::anonymous_namespace{positionmeasurement2d.cpp}::sampleWithEngine(), QuantumGLView::setQuantumState(), MainWindow::updateCrossSectionAnalysis(), and qpe::anonymous_namespace{probabilitycontours2d.cpp}::yCoordinate().
|
noexcept |
Returns whether the field contains no samples.
Definition at line 54 of file complexfield2d.cpp.
References data_.
Referenced by qpe::DetectorTemporalFlux2D::accumulate(), MainWindow::accumulateTemporalDetectorFlux(), qpe::QuantumAndersonHistory2D::append(), qpe::QuantumBackflowHistory2D::append(), qpe::QuantumBouncerHistory2D::append(), qpe::QuantumHallEdgeHistory2D::append(), qpe::QuantumRevivalHistory2D::append(), qpe::QuantumTalbotHistory2D::append(), qpe::QuantumVortexHistory2D::append(), qpe::QuantumZenoHistory2D::append(), qpe::QuantumAharonovBohm2D::applyIncidentGaugePhase(), qpe::QuantumKickedRotor2D::applyKick(), MainWindow::applyKickedRotorKickIfDue(), MainWindow::applyQuantumLoschmidtReversalIfDue(), MainWindow::applyQuantumZenoMeasurementIfDue(), qpe::QuantumZeno2D::applySurvivalMeasurement(), qpe::QuantumTextureFrame2D::build(), qpe::QuantumAharonovBohm2D::buildFields(), qpe::QuantumHallEdge2D::buildFields(), qpe::QuantumLandau2D::buildUniformGauge(), qpe::QuantumBilliardHistory2D::captureReference(), qpe::QuantumRevivalHistory2D::captureReference(), qpe::QuantumTalbotHistory2D::captureReference(), qpe::anonymous_namespace{positioncollapse2d.cpp}::collapseWithSeed(), qpe::EnergyObservables2D::compute(), qpe::MomentumSpace2D::compute(), qpe::ProbabilityContours2D::compute(), qpe::ProbabilityCurrent2D::compute(), qpe::ProbabilityCurrent2D::computeGaugeCovariant(), qpe::AbsorbingBoundary2D::configure(), qpe::QuantumAharonovBohmHistory2D::configure(), qpe::QuantumBackflowHistory2D::configure(), qpe::QuantumBerryHistory2D::configure(), qpe::QuantumHallEdgeHistory2D::configure(), qpe::QuantumLandauHistory2D::configure(), qpe::QuantumLoschmidtHistory2D::configure(), qpe::QuantumMoshinskyHistory2D::configure(), qpe::QuantumScarHistory2D::configure(), qpe::QuantumZenoHistory2D::configure(), qpe::anonymous_namespace{detectortemporalflux2d.cpp}::detectorColumns(), qpe::MomentumSpace2DResult::dpX(), qpe::MomentumSpace2DResult::dpY(), qpe::DiracSpinor2D::empty(), qpe::MomentumSpace2DResult::empty(), qpe::QuantumBilliardHistory2D::hasReference(), qpe::QuantumRevivalHistory2D::hasReference(), qpe::GaussianPacket2D::initialize(), qpe::QuantumKapitzaDirac2D::initialize(), qpe::QuantumKickedRotor2D::initialize(), qpe::QuantumMoshinsky2D::initialize(), qpe::QuantumTalbot2D::initialize(), qpe::QuantumVortex2D::initialize(), qpe::QuantumAnderson2D::initializeDualLane(), qpe::QuantumZeno2D::initializeDualLane(), qpe::QuantumRevivals2D::marginalProbabilityX(), qpe::QuantumTalbot2D::marginalProbabilityX(), qpe::QuantumBouncer2D::marginalProbabilityY(), qpe::anonymous_namespace{quantumhalledge2d.cpp}::meanXOf(), qpe::CoherentTunneling2D::measure(), qpe::QuantumAharonovBohm2D::measure(), qpe::QuantumHallEdge2D::measure(), qpe::QuantumLandau2D::measure(), qpe::QuantumAnderson2D::measureLane(), MainWindow::performPositionCollapse(), MainWindow::performPositionMeasurement(), qpe::SplitStepFourierSolver2D::prepare(), qpe::BoundStates1D::prepareEigenstate(), qpe::QuantumBackflow2D::prepareState(), qpe::QuantumHallEdge2D::prepareState(), qpe::QuantumLandau2D::prepareState(), qpe::BoundStates1D::prepareSuperposition(), qpe::DrivenTwoLevel2D::project(), MainWindow::recordTimeSeriesSample(), qpe::ProbabilityImageRenderer::render(), qpe::WaveFunctionImageRenderer::render(), MainWindow::renderCurrentView(), MainWindow::resetSimulation(), qpe::WaveFunctionCrossSection2D::sample(), qpe::anonymous_namespace{detectorscreenmeasurement2d.cpp}::sampleWithEngine(), qpe::anonymous_namespace{positionmeasurement2d.cpp}::sampleWithEngine(), qpe::FFT2D::transform(), MainWindow::updateCrossSectionAnalysis(), MainWindow::updateMomentumSpaceCache(), and MainWindow::updateTransportUi().
| void qpe::ComplexField2D::fill | ( | const Value & | value | ) |
Assigns one complex value to every grid sample.
| value | Complex sample value to store. |
Definition at line 49 of file complexfield2d.cpp.
References data_.
Referenced by qpe::DiracSpinor2D::fill(), qpe::QuantumBackflow2D::prepareState(), qpe::tests::runAbsorbingBoundary2DTests(), qpe::tests::runDiracSplitStepSolver2DTests(), qpe::tests::runProbabilityContours2DTests(), qpe::tests::runProbabilityCurrent2DTests(), and qpe::tests::runScatteringObservables2DTests().
|
noexcept |
Returns the number of samples along Y.
Definition at line 64 of file complexfield2d.cpp.
References height_.
Referenced by ComplexField2D(), qpe::DetectorTemporalFlux2D::accumulate(), qpe::QuantumVortex2D::angularMomentumZ(), qpe::QuantumAharonovBohmHistory2D::append(), qpe::QuantumBouncerHistory2D::append(), qpe::QuantumRevivalHistory2D::append(), qpe::QuantumTalbotHistory2D::append(), qpe::SplitStepFourierSolver2D::applyGaugeCayleyX(), qpe::SplitStepFourierSolver2D::applyGaugeCayleyY(), qpe::QuantumAharonovBohm2D::applyIncidentGaugePhase(), qpe::QuantumKickedRotor2D::applyKick(), qpe::QuantumZeno2D::applySurvivalMeasurement(), qpe::QuantumTextureFrame2D::build(), qpe::QuantumAharonovBohm2D::buildFields(), qpe::QuantumHallEdge2D::buildFields(), qpe::QuantumLandau2D::buildUniformGauge(), qpe::QuantumTalbotHistory2D::captureReference(), qpe::PositionCollapse2D::collapse(), qpe::anonymous_namespace{positioncollapse2d.cpp}::collapseWithSeed(), qpe::EnergyObservables2D::compute(), qpe::MomentumSpace2D::compute(), qpe::ProbabilityContours2D::compute(), qpe::ProbabilityCurrent2D::compute(), qpe::ProbabilityCurrent2D::computeGaugeCovariant(), qpe::AbsorbingBoundary2D::configure(), qpe::QuantumAharonovBohmHistory2D::configure(), qpe::QuantumMoshinskyHistory2D::configure(), qpe::QuantumVortex2D::detectCore(), qpe::QuantumScarHistory2D::filteredEnhancement(), qpe::QuantumBilliardHistory2D::gridHeight(), qpe::QuantumScarHistory2D::gridHeight(), qpe::DiracSpinor2D::height(), qpe::GaussianPacket2D::initialize(), qpe::QuantumKapitzaDirac2D::initialize(), qpe::QuantumKickedRotor2D::initialize(), qpe::QuantumMoshinsky2D::initialize(), qpe::QuantumTalbot2D::initialize(), qpe::QuantumVortex2D::initialize(), qpe::QuantumAnderson2D::initializeDualLane(), qpe::QuantumZeno2D::initializeDualLane(), qpe::QuantumRevivals2D::marginalProbabilityX(), qpe::QuantumTalbot2D::marginalProbabilityX(), qpe::QuantumBouncer2D::marginalProbabilityY(), qpe::tests::anonymous_namespace{fft2d_tests.cpp}::maxAbsError(), qpe::tests::anonymous_namespace{splitstepfouriersolver2d_tests.cpp}::maxDifference(), qpe::anonymous_namespace{quantumhalledge2d.cpp}::meanXOf(), qpe::CoherentTunneling2D::measure(), qpe::QuantumAharonovBohm2D::measure(), qpe::QuantumHallEdge2D::measure(), qpe::QuantumKapitzaDirac2D::measure(), qpe::QuantumKickedRotor2D::measure(), qpe::QuantumLandau2D::measure(), qpe::QuantumAnderson2D::measureLane(), qpe::anonymous_namespace{quantumlandau2d.cpp}::overlap(), qpe::SplitStepFourierSolver2D::prepare(), qpe::BoundStates1D::prepareEigenstate(), qpe::QuantumBackflow2D::prepareState(), qpe::QuantumLandau2D::prepareState(), qpe::BoundStates1D::prepareSuperposition(), qpe::DrivenTwoLevel2D::project(), qpe::ProbabilityImageRenderer::render(), qpe::WaveFunctionImageRenderer::render(), resize(), qpe::tests::runComplexField2DTests(), qpe::tests::runDetectorTemporalFlux2DTests(), qpe::tests::runFFT2DTests(), qpe::tests::runGaussianPacket2DTests(), qpe::tests::runMomentumSpace2DTests(), qpe::tests::runProbabilityContours2DTests(), qpe::tests::runQuantumAharonovBohm2DTests(), qpe::tests::runQuantumBerryPhase2DTests(), qpe::tests::runQuantumKapitzaDirac2DTests(), qpe::tests::runQuantumLandau2DTests(), qpe::tests::runQuantumLoschmidt2DTests(), qpe::tests::runQuantumMoshinsky2DTests(), qpe::tests::runQuantumScar2DTests(), qpe::tests::runResonantTunneling2DTests(), qpe::tests::runWaveFunctionCrossSection2DTests(), qpe::DetectorScreenMeasurement2D::sample(), qpe::MomentumSpace2D::sample(), qpe::PositionMeasurement2D::sample(), qpe::WaveFunctionCrossSection2D::sample(), qpe::anonymous_namespace{detectorscreenmeasurement2d.cpp}::sampleWithEngine(), qpe::anonymous_namespace{positionmeasurement2d.cpp}::sampleWithEngine(), QuantumGLView::setQuantumState(), qpe::FFT2D::transform(), MainWindow::updateCrossSectionAnalysis(), and qpe::anonymous_namespace{probabilitycontours2d.cpp}::yCoordinate().
|
privatenoexcept |
Returns index.
| x | X coordinate/value. |
| y | Y coordinate/value. |
Definition at line 149 of file complexfield2d.cpp.
Referenced by checkedIndex().
|
noexcept |
Returns the square root of the discrete probability norm.
Definition at line 130 of file complexfield2d.cpp.
References norm2().
Referenced by normalize().
|
noexcept |
Returns the discrete integral of |psi|^2 including dx*dy.
Definition at line 125 of file complexfield2d.cpp.
References dx_, dy_, and sumAbs2().
Referenced by qpe::QuantumLoschmidtHistory2D::append(), qpe::QuantumVortexHistory2D::append(), qpe::anonymous_namespace{positioncollapse2d.cpp}::collapseWithSeed(), qpe::DiracSpinor2D::lowerPopulation(), qpe::QuantumAharonovBohm2D::measure(), qpe::QuantumHallEdge2D::measure(), qpe::QuantumLandau2D::measure(), norm(), qpe::DiracSpinor2D::norm2(), qpe::tests::runAbsorbingBoundary2DTests(), qpe::tests::runBoundStates1DTests(), qpe::tests::runComplexField2DTests(), qpe::tests::runDiracSpinor2DTests(), qpe::tests::runGaussianPacket2DTests(), qpe::tests::runMomentumSpace2DTests(), qpe::tests::runPositionCollapse2DTests(), qpe::tests::runQuantumAharonovBohm2DTests(), qpe::tests::runQuantumAnderson2DTests(), qpe::tests::runQuantumBackflow2DTests(), qpe::tests::runQuantumBerryPhase2DTests(), qpe::tests::runQuantumBouncer2DTests(), qpe::tests::runQuantumKapitzaDirac2DTests(), qpe::tests::runQuantumLandau2DTests(), qpe::tests::runQuantumMoshinsky2DTests(), qpe::tests::runQuantumRevivals2DTests(), qpe::tests::runQuantumTalbot2DTests(), qpe::tests::runQuantumVortex2DTests(), qpe::tests::runSplitStepFourierSolver2DTests(), qpe::anonymous_namespace{quantumzeno2d_tests.cpp}::testDualLaneInitialization(), qpe::anonymous_namespace{quantumkickedrotor2d_tests.cpp}::testDynamicalLocalizationSignature(), qpe::anonymous_namespace{quantumkickedrotor2d_tests.cpp}::testInitializationAndKick(), MainWindow::updateQuantumScarAnalysis(), and qpe::DiracSpinor2D::upperPopulation().
|
noexcept |
Scales the field to unit discrete probability norm.
true when normalization succeeded; false for an empty or zero-norm field. Definition at line 135 of file complexfield2d.cpp.
Referenced by qpe::anonymous_namespace{positioncollapse2d.cpp}::collapseWithSeed(), qpe::GaussianPacket2D::initialize(), qpe::QuantumKapitzaDirac2D::initialize(), qpe::QuantumKickedRotor2D::initialize(), qpe::QuantumMoshinsky2D::initialize(), qpe::QuantumTalbot2D::initialize(), qpe::QuantumVortex2D::initialize(), qpe::QuantumAnderson2D::initializeDualLane(), qpe::QuantumZeno2D::initializeDualLane(), qpe::BoundStates1D::prepareEigenstate(), qpe::QuantumBackflow2D::prepareState(), qpe::QuantumLandau2D::prepareState(), qpe::BoundStates1D::prepareSuperposition(), qpe::tests::runComplexField2DTests(), qpe::tests::runEnergyObservables2DTests(), qpe::tests::runProbabilityCurrent2DTests(), and qpe::tests::runQuantumBerryPhase2DTests().
|
noexcept |
Returns a const sample without bounds checking.
| x | Zero-based X sample index. |
| y | Zero-based Y sample index. |
Definition at line 89 of file complexfield2d.cpp.
|
noexcept |
Returns a mutable sample without bounds checking.
| x | Zero-based X sample index. |
| y | Zero-based Y sample index. |
Definition at line 84 of file complexfield2d.cpp.
| void qpe::ComplexField2D::resize | ( | std::size_t | width, |
| std::size_t | height, | ||
| float | dx = 1.0f, | ||
| float | dy = 1.0f ) |
Reallocates the grid and resets all samples to zero.
| width | Number of samples along X. |
| height | Number of samples along Y. |
| dx | Grid spacing along X in simulation length units. |
| dy | Grid spacing along Y in simulation length units. |
Definition at line 28 of file complexfield2d.cpp.
References data_, dx(), dx_, dy(), dy_, height(), height_, width(), and width_.
Referenced by ComplexField2D(), qpe::MomentumSpace2D::compute(), MainWindow::resetSimulation(), qpe::DiracSpinor2D::resize(), and qpe::DiracSpinor2D::writeDensityProxy().
|
noexcept |
Returns the total number of complex samples.
Definition at line 69 of file complexfield2d.cpp.
References data_.
Referenced by qpe::QuantumBilliardHistory2D::append(), qpe::QuantumScarHistory2D::append(), qpe::AbsorbingBoundary2D::apply(), qpe::SplitStepFourierSolver2D::applyKineticStep(), qpe::SplitStepFourierSolver2D::applyPotentialHalfStep(), qpe::QuantumTextureFrame2D::build(), qpe::QuantumBilliardHistory2D::captureReference(), qpe::ProbabilityCurrent2D::compute(), qpe::ProbabilityCurrent2D::computeGaugeCovariant(), qpe::AbsorbingBoundary2D::configure(), qpe::QuantumScarHistory2D::configure(), qpe::tests::anonymous_namespace{fft2d_tests.cpp}::maxAbsError(), qpe::tests::anonymous_namespace{splitstepfouriersolver2d_tests.cpp}::maxDifference(), qpe::DiracSpinor2D::normalize(), qpe::tests::runComplexField2DTests(), qpe::tests::runFFT2DTests(), qpe::tests::runQuantumBerryPhase2DTests(), qpe::tests::runQuantumBilliards2DTests(), qpe::tests::runSplitStepFourierSolver2DTests(), qpe::anonymous_namespace{positionmeasurement2d.cpp}::sampleWithEngine(), and qpe::DiracSpinor2D::writeDensityProxy().
|
noexcept |
Returns the raw sample sum sum(|psi|^2) without cell area.
Definition at line 114 of file complexfield2d.cpp.
References data_.
Referenced by norm2(), and qpe::tests::runComplexField2DTests().
|
noexcept |
Returns the number of samples along X.
Definition at line 59 of file complexfield2d.cpp.
References width_.
Referenced by ComplexField2D(), qpe::QuantumVortex2D::angularMomentumZ(), qpe::QuantumRevivalHistory2D::append(), qpe::QuantumTalbotHistory2D::append(), qpe::SplitStepFourierSolver2D::applyGaugeCayleyX(), qpe::SplitStepFourierSolver2D::applyGaugeCayleyY(), qpe::QuantumAharonovBohm2D::applyIncidentGaugePhase(), qpe::QuantumKickedRotor2D::applyKick(), qpe::QuantumZeno2D::applySurvivalMeasurement(), qpe::QuantumTextureFrame2D::build(), qpe::QuantumAharonovBohm2D::buildFields(), qpe::QuantumHallEdge2D::buildFields(), qpe::QuantumLandau2D::buildUniformGauge(), qpe::QuantumTalbotHistory2D::captureReference(), qpe::PositionCollapse2D::collapse(), qpe::anonymous_namespace{positioncollapse2d.cpp}::collapseWithSeed(), qpe::EnergyObservables2D::compute(), qpe::MomentumSpace2D::compute(), qpe::ProbabilityContours2D::compute(), qpe::ProbabilityCurrent2D::compute(), qpe::ProbabilityCurrent2D::computeGaugeCovariant(), qpe::AbsorbingBoundary2D::configure(), qpe::QuantumMoshinskyHistory2D::configure(), qpe::QuantumVortex2D::detectCore(), qpe::anonymous_namespace{detectortemporalflux2d.cpp}::detectorColumns(), qpe::QuantumScarHistory2D::filteredEnhancement(), qpe::QuantumBilliardHistory2D::gridWidth(), qpe::QuantumRevivalHistory2D::gridWidth(), qpe::QuantumScarHistory2D::gridWidth(), qpe::GaussianPacket2D::initialize(), qpe::QuantumKapitzaDirac2D::initialize(), qpe::QuantumKickedRotor2D::initialize(), qpe::QuantumMoshinsky2D::initialize(), qpe::QuantumTalbot2D::initialize(), qpe::QuantumVortex2D::initialize(), qpe::QuantumAnderson2D::initializeDualLane(), qpe::QuantumZeno2D::initializeDualLane(), qpe::QuantumRevivals2D::marginalProbabilityX(), qpe::QuantumTalbot2D::marginalProbabilityX(), qpe::QuantumBouncer2D::marginalProbabilityY(), qpe::tests::anonymous_namespace{fft2d_tests.cpp}::maxAbsError(), qpe::tests::anonymous_namespace{splitstepfouriersolver2d_tests.cpp}::maxDifference(), qpe::anonymous_namespace{quantumhalledge2d.cpp}::meanXOf(), qpe::CoherentTunneling2D::measure(), qpe::QuantumAharonovBohm2D::measure(), qpe::QuantumHallEdge2D::measure(), qpe::QuantumKapitzaDirac2D::measure(), qpe::QuantumKickedRotor2D::measure(), qpe::QuantumLandau2D::measure(), qpe::QuantumAnderson2D::measureLane(), qpe::anonymous_namespace{quantumlandau2d.cpp}::overlap(), qpe::SplitStepFourierSolver2D::prepare(), qpe::BoundStates1D::prepareEigenstate(), qpe::QuantumBackflow2D::prepareState(), qpe::QuantumLandau2D::prepareState(), qpe::BoundStates1D::prepareSuperposition(), qpe::DrivenTwoLevel2D::project(), qpe::ProbabilityImageRenderer::render(), qpe::WaveFunctionImageRenderer::render(), resize(), qpe::tests::runComplexField2DTests(), qpe::tests::runDetectorTemporalFlux2DTests(), qpe::tests::runFFT2DTests(), qpe::tests::runGaussianPacket2DTests(), qpe::tests::runMomentumSpace2DTests(), qpe::tests::runProbabilityContours2DTests(), qpe::tests::runQuantumBerryPhase2DTests(), qpe::tests::runQuantumKapitzaDirac2DTests(), qpe::tests::runQuantumLandau2DTests(), qpe::tests::runQuantumLoschmidt2DTests(), qpe::tests::runQuantumMoshinsky2DTests(), qpe::tests::runQuantumRevivals2DTests(), qpe::tests::runQuantumScar2DTests(), qpe::tests::runResonantTunneling2DTests(), qpe::tests::runWaveFunctionCrossSection2DTests(), qpe::DetectorScreenMeasurement2D::sample(), qpe::MomentumSpace2D::sample(), qpe::PositionMeasurement2D::sample(), qpe::WaveFunctionCrossSection2D::sample(), qpe::anonymous_namespace{detectorscreenmeasurement2d.cpp}::sampleWithEngine(), qpe::anonymous_namespace{positionmeasurement2d.cpp}::sampleWithEngine(), QuantumGLView::setQuantumState(), qpe::FFT2D::transform(), MainWindow::updateCrossSectionAnalysis(), qpe::DiracSpinor2D::width(), and qpe::anonymous_namespace{probabilitycontours2d.cpp}::xCoordinate().
|
private |
|
private |
Definition at line 158 of file complexfield2d.h.
|
private |
Definition at line 159 of file complexfield2d.h.
|
private |
Definition at line 157 of file complexfield2d.h.
Referenced by checkedIndex(), height(), and resize().
|
private |
Definition at line 156 of file complexfield2d.h.
Referenced by checkedIndex(), resize(), and width().