Quantum Phenomena Explorer 7.9.8
Interactive quantum-phenomena Explorer Tutor — source documentation
Loading...
Searching...
No Matches
qpe::ComplexField2D Class Reference

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_
 

Detailed Description

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.

Member Typedef Documentation

◆ Value

using qpe::ComplexField2D::Value = std::complex<float>

Definition at line 36 of file complexfield2d.h.

Constructor & Destructor Documentation

◆ ComplexField2D() [1/2]

qpe::ComplexField2D::ComplexField2D ( )
default

Constructs an empty field.

◆ ComplexField2D() [2/2]

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.

Parameters
widthNumber of samples along X.
heightNumber of samples along Y.
dxGrid spacing along X in simulation length units.
dyGrid spacing along Y in simulation length units.

Definition at line 20 of file complexfield2d.cpp.

References dx(), dy(), height(), resize(), and width().

Member Function Documentation

◆ at() [1/2]

ComplexField2D::Value & qpe::ComplexField2D::at ( std::size_t x,
std::size_t y )

Returns a mutable sample with bounds checking.

Parameters
xZero-based X sample index.
yZero-based Y sample index.
Returns
Mutable reference to the selected sample.
Exceptions
std::out_of_rangeif either index lies outside the grid.

Definition at line 94 of file complexfield2d.cpp.

References checkedIndex(), and data_.

Referenced by qpe::tests::runComplexField2DTests().

◆ at() [2/2]

const ComplexField2D::Value & qpe::ComplexField2D::at ( std::size_t x,
std::size_t y ) const

Returns a const sample with bounds checking.

Parameters
xZero-based X sample index.
yZero-based Y sample index.
Returns
Const reference to the selected sample.
Exceptions
std::out_of_rangeif either index lies outside the grid.

Definition at line 99 of file complexfield2d.cpp.

References checkedIndex(), and data_.

◆ checkedIndex()

std::size_t qpe::ComplexField2D::checkedIndex ( std::size_t x,
std::size_t y ) const
private

Checks ed index.

Parameters
xX coordinate/value.
yY coordinate/value.

Definition at line 154 of file complexfield2d.cpp.

References height_, index(), and width_.

Referenced by at(), and at().

◆ clear()

◆ data() [1/2]

const ComplexField2D::Value * qpe::ComplexField2D::data ( ) const
noexcept

Returns const contiguous row-major sample storage.

Definition at line 109 of file complexfield2d.cpp.

References data_.

◆ data() [2/2]

◆ dx()

float qpe::ComplexField2D::dx ( ) const
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().

◆ dy()

float qpe::ComplexField2D::dy ( ) const
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().

◆ empty()

bool qpe::ComplexField2D::empty ( ) const
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().

◆ fill()

void qpe::ComplexField2D::fill ( const Value & value)

◆ height()

std::size_t qpe::ComplexField2D::height ( ) const
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().

◆ index()

std::size_t qpe::ComplexField2D::index ( std::size_t x,
std::size_t y ) const
privatenoexcept

Returns index.

Parameters
xX coordinate/value.
yY coordinate/value.

Definition at line 149 of file complexfield2d.cpp.

Referenced by checkedIndex().

◆ norm()

double qpe::ComplexField2D::norm ( ) const
noexcept

Returns the square root of the discrete probability norm.

Definition at line 130 of file complexfield2d.cpp.

References norm2().

Referenced by normalize().

◆ norm2()

double qpe::ComplexField2D::norm2 ( ) const
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().

◆ normalize()

◆ operator()() [1/2]

const ComplexField2D::Value & qpe::ComplexField2D::operator() ( std::size_t x,
std::size_t y ) const
noexcept

Returns a const sample without bounds checking.

Parameters
xZero-based X sample index.
yZero-based Y sample index.
Returns
Const reference to the selected sample.

Definition at line 89 of file complexfield2d.cpp.

◆ operator()() [2/2]

ComplexField2D::Value & qpe::ComplexField2D::operator() ( std::size_t x,
std::size_t y )
noexcept

Returns a mutable sample without bounds checking.

Parameters
xZero-based X sample index.
yZero-based Y sample index.
Returns
Mutable reference to the selected sample.

Definition at line 84 of file complexfield2d.cpp.

◆ resize()

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.

Parameters
widthNumber of samples along X.
heightNumber of samples along Y.
dxGrid spacing along X in simulation length units.
dyGrid 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().

◆ size()

◆ sumAbs2()

double qpe::ComplexField2D::sumAbs2 ( ) const
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().

◆ width()

std::size_t qpe::ComplexField2D::width ( ) const
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().

Member Data Documentation

◆ data_

std::vector<Value> qpe::ComplexField2D::data_
private

Definition at line 160 of file complexfield2d.h.

Referenced by at(), at(), clear(), data(), data(), empty(), fill(), normalize(), resize(), size(), and sumAbs2().

◆ dx_

float qpe::ComplexField2D::dx_ = 1.0f
private

Definition at line 158 of file complexfield2d.h.

Referenced by dx(), norm2(), and resize().

◆ dy_

float qpe::ComplexField2D::dy_ = 1.0f
private

Definition at line 159 of file complexfield2d.h.

Referenced by dy(), norm2(), and resize().

◆ height_

std::size_t qpe::ComplexField2D::height_ = 0
private

Definition at line 157 of file complexfield2d.h.

Referenced by checkedIndex(), height(), and resize().

◆ width_

std::size_t qpe::ComplexField2D::width_ = 0
private

Definition at line 156 of file complexfield2d.h.

Referenced by checkedIndex(), resize(), and width().


The documentation for this class was generated from the following files: