solprop.translate.tdse_source#

Admit the scalar helium TDSE route and translate its macroscopic source.

The microscopic provider supplies per-atom current and dipole histories. The ordinary Kerr compiler remains the authority for the optmat cubic. The current factor is constructed independently of the polarisation factor, including at zero frequency; no division by frequency is involved (SEP 12 section 4.6).

Module Attributes

STEADY_CURRENT_CERTIFICATE_LIMIT

Largest admitted steady-current certificate of a gated native source's gate.

TDSE_UNAVAILABLE_STATISTICS

Legacy rate/dipole-only statistics that do not identify a TDSE observable.

Functions

admit_tdse(responses, grid, modes, *, shape, ...)

Replace the TDSE declaration with its explicitly owned cubic coefficient.

current_numerator(grid)

Construct the current prefactor numerator directly in the FFT convention.

steady_current_certificate(descriptor, ...)

Compute the steady-current certificate of a gated TDSE source (SEP 26, 4.4).

solprop.translate.tdse_source.STEADY_CURRENT_CERTIFICATE_LIMIT = 1e-10#

Largest admitted steady-current certificate of a gated native source’s gate.

kappa_ss is the active-band norm of the edge-free source of S = 1, which is exactly zero in the continuous identity, relative to the full transform of the gate (steady_current_certificate()). It is the whole admission: no fixed taper sample count is imposed.

solprop.translate.tdse_source.TDSE_UNAVAILABLE_STATISTICS = frozenset({'electron_density', 'on_axis_electron_density', 'on_axis_peak_ionisation_rate', 'on_axis_species_electron_density', 'on_axis_species_peak_ionisation_rate', 'peak_ionisation_rate', 'plasma_boundary_level', 'plasma_undershoot', 'plasma_work_defect', 'quadrature_error', 'species_electron_density', 'species_ionisation', 'species_ionisation_energy', 'species_peak_ionisation_rate'})#

Legacy rate/dipole-only statistics that do not identify a TDSE observable.

The complete-source quadrature diagnostic is recorded with its actual stage identity; a PEC predictor is not the accepted field named by a saved-plane row.

solprop.translate.tdse_source.admit_tdse(responses, grid, modes, *, shape, quadrature, integrator, has_noise, shock, prefactor_index, interpolate_planes=False)[source]#

Replace the TDSE declaration with its explicitly owned cubic coefficient.

Parameters:
responsessequence

Scientific declarations, including at most one TDSE gas response.

gridsolprop.grid.TimeGrid

Resolved response grid, retaining the parent’s coarse bins and window.

modessequence of Mode

Propagated modes in state order.

shapetuple of int

Canonical state dimensions, batch, mode, polarisation and frequency.

quadratureTransverseQuadrature or None

Declared transverse integration rule.

integratorMultistep or LowStorageRungeKutta or None

The run’s integrator; TDSE requires an Adams method.

has_noisebool

Whether any shot-noise model is present.

shockbool

Whether the full frequency-dependent polarisation numerator is retained.

prefactor_indexfloat or None

Requested override of the physical effective index.

interpolate_planesbool, optional

Whether save planes are interpolated inside accepted steps. TDSE requires landed observations, so this must be False.

Returns:
tuple

Ordinary responses for the existing compiler and immutable atomic identity.

Raises:
TranslationError

For unsupported geometry, material, sampling or response ownership.

solprop.translate.tdse_source.current_numerator(grid)[source]#

Construct the current prefactor numerator directly in the FFT convention.

Divide this real, negative array by the stage’s positive modal power weight Re(neff). The current and polarisation then have the same projection and crop normalization without introducing a spurious zero-frequency singularity.

Parameters:
gridsolprop.grid.TimeGrid

Resolved field grid supplying active bins and the transform crop scale.

Returns:
numpy.ndarray

Read-only -crop_scale / (2 eps0 c) on active bins, zero elsewhere, shape (1, 1, n_omega).

solprop.translate.tdse_source.steady_current_certificate(descriptor, omega, active)[source]#

Compute the steady-current certificate of a gated TDSE source (SEP 26, 4.4).

\[\kappa_{\rm ss} = \frac{\lVert \mathrm{DFT}[g] - \mathrm{DFT}[g']/(i\omega) \rVert_A}{\lVert \mathrm{DFT}[g]\rVert_2},\]

the edge-free source of a constant current S = 1 on the active bins A of the coarse spectrum, relative to the full one-sided transform of the gate on the fine lattice. The raw forward DFTs of the sampled gate and of its analytic derivative are cropped to the coarse bins exactly as a source is. The numerator is zero in the continuous identity; what is left is the taper’s alias error on this lattice and band, plus rounding. It is one transform of a fixed gate per configuration and is cached.

The denominator is the full transform, not the active band (a correction of SEP 26 section 4.4, which divided by ||DFT[g]||_A). A long gate puts almost none of its spectrum in the band, so the band-relative ratio compared one rounding-level norm with another and refused well-resolved gates: a 1 ps window at 0.4-2 um gave 1.4e-7. Against the full transform the residual is measured on the scale of the gate itself, sqrt(N / 2) ||g||_2 up to the one-sided weighting, which is the scale of the truncating source of a unit current before the band crop; the same window gives 5.9e-17, while an under-resolved taper still fails by orders of magnitude (docs/guide/media/tdse.md).

Parameters:
descriptorTDSEDescriptor

A gated descriptor: its window’s gate, or its recorded fine temporal collar.

omeganumpy.ndarray

Coarse angular frequencies in rad/s, shape (n_omega,).

activenumpy.ndarray

Active-bin mask of the same shape; every active frequency is positive.

Returns:
float

Nonnegative dimensionless certificate; zero for an empty band.