Background
The modal-intensity (L–I) curves in compute_modal_intensities are built from the linearized, near-threshold limit of SALT: a single pump-independent mode-competition matrix T and a linear solve
sum_nu T_{mu,nu} I_nu = D0 / D0_thr_mu - 1
This is exact at threshold and first-order-correct in slope, but it rests on two approximations that are really two halves of the same thing — not solving the spatial-hole-burning denominator self-consistently. See the new "Relation to full SALT (future work)" section in doc/source/lasing.rst for the full write-up.
The approximations
The full SALT equation for each lasing mode is
[∇² + (ε + γ(k_μ)·D0·δ_pump / (1 + Σ_ν Γ_ν |Ψ_ν|²)) k_μ²] Ψ_μ = 0, Γ_ν = γ⊥²/((k_ν-k_a)²+γ⊥²)
netSALT's dispersion_relation_pump already builds ε_eff = ε + γ(k)·D0·δ_pump — i.e. the same gain operator with the denominator set to 1 (unsaturated). The two approximations are the first-order expansion of that denominator:
1 / (1 + Σ_ν Γ_ν |Ψ_ν|²) ≈ 1 - Σ_ν Γ_ν |Ψ_ν^thr(x)|² I_ν
- Pump-independent / linear
T — only the first-order term is kept, so T is computed once and reused for all D0. This is what makes the L–I curves piecewise-linear. (compute_modal_intensities)
- Threshold-frozen profiles —
Ψ_ν is evaluated at each mode's own threshold pump (graph_with_pump(threshold_ν)), not at the operating pump. (_precomputations_mode_competition)
They cannot be improved independently.
Proposed work (in increasing scope)
Why graphs are a favourable setting
The per-edge field is two analytic plane waves, the secular matrix L(k) = Bᵀ W⁻¹ B is already assembled, and the saturated-gain integrals are the same closed-form edge integrals already implemented for the competition matrix. So a full-SALT solver here is more tractable than in a general 2D/3D cavity.
Validation
- Reduces to the current linear
T in the threshold limit (I → 0).
- Benchmark against a known uniform-edge / ring SALT result from the literature.
- A cheap precursor (separate, easy): a
mode_competition_drift diagnostic comparing T(D0_max) to T(D0_thr) to quantify how far the frozen-profile approximation has drifted for a given problem — tells you when the linear model is trustworthy.
References
- Doc:
doc/source/lasing.rst (Multimode lasing and mode competition + Relation to full SALT).
- Türeci, Stone, Ge et al. — steady-state ab-initio laser theory (SALT).
- Saxena et al., Nat. Commun. 13, 6573 (2022) — the netSALT model.
https://claude.ai/code/session_01EH6xEV2sQozKjjH6vNKjyC
Background
The modal-intensity (L–I) curves in
compute_modal_intensitiesare built from the linearized, near-threshold limit of SALT: a single pump-independent mode-competition matrixTand a linear solveThis is exact at threshold and first-order-correct in slope, but it rests on two approximations that are really two halves of the same thing — not solving the spatial-hole-burning denominator self-consistently. See the new "Relation to full SALT (future work)" section in
doc/source/lasing.rstfor the full write-up.The approximations
The full SALT equation for each lasing mode is
netSALT's
dispersion_relation_pumpalready buildsε_eff = ε + γ(k)·D0·δ_pump— i.e. the same gain operator with the denominator set to 1 (unsaturated). The two approximations are the first-order expansion of that denominator:T— only the first-order term is kept, soTis computed once and reused for allD0. This is what makes the L–I curves piecewise-linear. (compute_modal_intensities)Ψ_νis evaluated at each mode's own threshold pump (graph_with_pump(threshold_ν)), not at the operating pump. (_precomputations_mode_competition)They cannot be improved independently.
Proposed work (in increasing scope)
I→ rebuildTfrom the profiles at the currentD0→ repeat. Reusescompute_mode_competition_matrix; captures profile deformation / gain guiding / frequency pulling, but keeps the linear saturation. Main cost:T-rebuild × iterations × pump steps.(I_μ, k_μ, Ψ_μ)at eachD0. Fold the denominator into the gain term ofconstruct_laplacianand reuse the existing analytic edge overlaps (_compute_mode_competition_element). Gives sub-linear (clamping) L–I slopes, frequency shifts, and quantitatively correct competition far above threshold.Why graphs are a favourable setting
The per-edge field is two analytic plane waves, the secular matrix
L(k) = Bᵀ W⁻¹ Bis already assembled, and the saturated-gain integrals are the same closed-form edge integrals already implemented for the competition matrix. So a full-SALT solver here is more tractable than in a general 2D/3D cavity.Validation
Tin the threshold limit (I → 0).mode_competition_driftdiagnostic comparingT(D0_max)toT(D0_thr)to quantify how far the frozen-profile approximation has drifted for a given problem — tells you when the linear model is trustworthy.References
doc/source/lasing.rst(Multimode lasing and mode competition + Relation to full SALT).https://claude.ai/code/session_01EH6xEV2sQozKjjH6vNKjyC