solprop.translate.transverse#

Resolve a free-space run’s transverse boundary at translation (SEP 40 section 5.2).

resolve_transverse() turns a SpatialAbsorber into a SpatialAbsorberDesign against the grid, the medium over the requested band and along the run, and the noise-free launch: the safety ramp’s rate on the spectral columns and, when a collar is asked for, its rate on the nodes, its band, its strength and its step limit. The formulas are solprop.spatial_absorber’s; this module only gathers what they are evaluated on.

Module Attributes

LADDER

The collar fractions the design check tries, in order, to name one that passes.

Functions

band_wavenumbers(space, dispersion, z_max)

Return the medium's wavenumbers over the requested band and along the run.

checked_design(design, space, dispersion, ...)

Run the design check on a collar's design and refuse a failing one by name.

resolve_transverse(specification, space, ...)

Resolve a specification into the run's immutable design (SEP 40 section 5.2).

solprop.translate.transverse.LADDER = (0.5, 1.0, 1.5, 2.0, 3.0)#

The collar fractions the design check tries, in order, to name one that passes.

solprop.translate.transverse.band_wavenumbers(space, dispersion, z_max)[source]#

Return the medium’s wavenumbers over the requested band and along the run.

k = n omega / c over inband_mask & active_mask, at the medium’s path nodes (the entrance, the end and every breakpoint between), so that the entrance alone does not set the extremes (SEP 34’s varying radial medium). On a planar grid k is each slab mode’s beta_p (SEP 40 section 4.4).

Parameters:
spacesolprop.grid.RadialGrid, solprop.grid.FreeGrid or PlanarGrid

The transverse grid.

dispersionsolprop.spatial.SpatialDispersion

The medium and the temporal grid.

z_maxfloat

The run’s length, m.

Returns:
knumpy.ndarray

Wavenumbers, rad/m, one per (node, mode, frequency).

omeganumpy.ndarray

The angular frequency of each, rad/s.

Raises:
TranslationError

If the requested band holds no active bin.

solprop.translate.transverse.checked_design(design, space, dispersion, field0, z_max)[source]#

Run the design check on a collar’s design and refuse a failing one by name.

SEP 40 section 4.4. Without a collar the check is neither built nor run. A launch that is zero everywhere leaves it "pending", for the launch a coupled child is given (solprop.driver.simulation.Simulation.with_input()).

Parameters:
designsolprop.spatial_absorber.SpatialAbsorberDesign

The resolved design.

spacesolprop.grid.RadialGrid, solprop.grid.FreeGrid or PlanarGrid

Its grid.

dispersionsolprop.spatial.SpatialDispersion

The medium and the temporal grid.

field0numpy.ndarray

The noise-free launch, canonical layout.

z_maxfloat

The run’s length, m.

Returns:
solprop.spatial_absorber.SpatialAbsorberDesign

The design, with its check’s record.

Raises:
TranslationError

If the check refuses the design or cannot converge, naming the first trial fraction that passes, if any, and whether a bare wall returns less.

solprop.translate.transverse.resolve_transverse(specification, space, dispersion, field0, z_max)[source]#

Resolve a specification into the run’s immutable design (SEP 40 section 5.2).

The band comes from an explicit kappa, then an angle, then the launch: per axis c_b sqrt(2) kappa_rms over the requested band’s bins, radially c_b kappa_rms on |k_perp|, read from the noise-free launch. The safety ramp covers the outer safety_fraction of each axis’s wavenumbers, or starts at a declared discard_above if that is lower, with the strength of section 4.4 and the larger of the axes’ strengths on the maximum of their profiles. A collar’s strength is the largest of its faces’ roots.

Parameters:
specificationsolprop.spatial_absorber.SpatialAbsorber

What the run asked for.

spacesolprop.grid.RadialGrid, solprop.grid.FreeGrid or PlanarGrid

The transverse grid.

dispersionsolprop.spatial.SpatialDispersion

The medium and the temporal grid.

field0numpy.ndarray

The noise-free launch in the canonical layout, spectral columns.

z_maxfloat

The run’s length, m.

Returns:
solprop.spatial_absorber.SpatialAbsorberDesign

The design, with the design check still to run (check empty).

Raises:
TranslationError

Naming the reason, when a requested collar has no room, its band is below the profile’s floor, reaches cutoff, lies above the ramp, or cannot come from a launch that is zero everywhere.