Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,9 @@ simulations.
- **Every published formula** of the curated sources, available by name for
comparison.

The [roadmap](https://optmat.readthedocs.io/en/latest/roadmap.html) describes what comes
next:
The [issues](https://github.com/LupoLab/optmat/issues) track what comes next, and the
[roadmap](https://optmat.readthedocs.io/en/latest/roadmap.html) lists the enhancement
proposals:
- the models of the other solids, and their two-photon absorption, ionisation and
damage;
- the molecules in the extreme ultraviolet;
Expand Down
2 changes: 1 addition & 1 deletion docs/accuracy.md
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ outside this project.

## What would improve it

The papers listed on the {doc}`roadmap` under *Papers and data we are looking for*:
The papers listed under {doc}`wanted`:
the vacuum-ultraviolet refractometry of the 1960s-70s, converged ab initio dispersion
and magnetic susceptibilities for krypton and xenon, and more dispersion and infrared
data for the polyatomic gases.
3 changes: 2 additions & 1 deletion docs/contributing.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ Choose the workflow for your change:
just as welcome. A propagation that goes wrong with the right values belongs with
[solprop](https://github.com/LupoLab/solprop/issues).
- **Offer a paper or data** that optmat lacks with the
[source form](https://github.com/LupoLab/optmat/issues/new?template=offer_a_source.yml).
[source form](https://github.com/LupoLab/optmat/issues/new?template=offer_a_source.yml);
{doc}`wanted` lists what would help most.
- **Plan work** in an [issue](https://github.com/LupoLab/optmat/issues). `CONTRIBUTING.md`
says what to check first, the sections to use and the labels.
- **Add or correct data** through a source record, an extraction script that writes the
Expand Down
5 changes: 3 additions & 2 deletions docs/developers/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,8 @@ fits, packaging, and public interfaces.
For a data contribution, read {doc}`/data` and {doc}`/register`, then follow
{doc}`/contributing`. For model work, first read the relevant scientific chapter
in the {doc}`/user-guide/index`; {doc}`/fitting` explains the gas dispersion fits.
A major change follows the enhancement-proposal process. The roadmap records
accepted proposals, drafts, and remaining work.
A major change follows the enhancement-proposal process. The roadmap lists accepted
and draft proposals, and planned work is in the [issues](https://github.com/LupoLab/optmat/issues).

```{toctree}
:maxdepth: 1
Expand All @@ -45,6 +45,7 @@ register
releasing
../oeps/index
../roadmap
../wanted
```

## Package architecture
Expand Down
3 changes: 2 additions & 1 deletion docs/developers/testing.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,8 @@ are regression tolerances, not scientific error bars or guarantees on every plat
Mutation tests verify that these checks reject changed model parameters, versions,
metadata, outputs, dataset selections, scales and objective values, while accepting
round-off. The stored models and runtime identity hashes are not rounded or rewritten
to make the tests pass. Broader platform verification remains in {doc}`/roadmap`.
to make the tests pass. Broader platform verification remains open
([#30](https://github.com/LupoLab/optmat/issues/30)).

`tests/solid/test_solid_fitting.py` compares each fresh solid fit (`fit/SiO2`,
`fit/Si`) with its stored record in the same way (TC-1089):
Expand Down
17 changes: 9 additions & 8 deletions docs/gallery/_helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -371,10 +371,11 @@ def fit_overview(name: str, *, xlim: tuple[float, float]) -> Figure:


def solprop_defaults() -> dict[str, Model]:
"""Return solprop's current default formula for each gas fitted here.
"""Return solprop's former default formula for each gas fitted here.

The mapping is the one ``tests/test_solprop_parity.py`` checks (TC-100);
solprop reads Ermolov's helium coefficients at 1 atm, so that model is re-referred.
From before solprop took its gases from optmat. The mapping is the one
``tests/test_solprop_parity.py`` checks (TC-100); solprop read Ermolov's helium
coefficients at 1 atm, so that model is re-referred.

Returns
-------
Expand All @@ -395,7 +396,7 @@ def solprop_defaults() -> dict[str, Model]:
"Xe": formulas["borzsonyi_2008/sellmeier_Xe"],
"N2": formulas["borzsonyi_2008/sellmeier_N2"],
"H2": formulas["peck_1977/eq7"],
# solprop applies the hydrogen formula to deuterium (Orr 1936).
# solprop applied the hydrogen formula to deuterium (Orr 1936).
"D2": formulas["peck_1977/eq7"],
"O2": formulas["kren_2011/kren_O2"],
"CH4": formulas["he_2021/CH4"],
Expand All @@ -405,11 +406,11 @@ def solprop_defaults() -> dict[str, Model]:


def solprop_gamma() -> dict[str, float]:
"""Return solprop's current third-order coefficient of each gas as gamma_T (au).
"""Return solprop's former third-order coefficient of each gas as gamma_T (au).

solprop uses one frozen ``gamma3 = gamma_T / (6 eps0)`` per gas for every process
and wavelength; the values are the fixture ``tests/data/solprop_gamma3.json``
(``tools/solprop_gamma3.py``, run in solprop's environment).
Before it took them from optmat, solprop used one
``gamma3 = gamma_T / (6 eps0)`` per gas for every process and wavelength; the values
are the frozen fixture ``tests/data/solprop_gamma3.json``.

Returns
-------
Expand Down
7 changes: 6 additions & 1 deletion docs/introduction/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,12 @@ against measured gains ({doc}`/raman`).
(copper to 56 µm), aluminium from 0.8 nm to 200 µm, as curated tables joined by
range.

Where the package goes next is on the {doc}`/roadmap`:
optmat is the materials library behind the pulse-propagation code
[solprop](https://github.com/LupoLab/solprop); {doc}`/propagation` gathers what such a
code calls.

Where the package goes next is in the [issues](https://github.com/LupoLab/optmat/issues), with the enhancement proposals
on the {doc}`/roadmap`:
- the models of the other solids, and their two-photon absorption, ionisation and
damage;
- the molecules in the extreme ultraviolet;
Expand Down
2 changes: 1 addition & 1 deletion docs/nonlinear_accuracy.md
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ The fits have not been reviewed outside this project.

## What would improve it

The papers listed on the {doc}`roadmap`, most useful first:
The papers listed under {doc}`wanted`, most useful first:
- an absolute dc Kerr of helium (Tammer et al. 1992) and the older absolute dc Kerr of
the molecules;
- Shelton's 1987 vibrational gamma of N2 and O2;
Expand Down
7 changes: 3 additions & 4 deletions docs/oeps/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,9 @@ are archived and linked from the manual pages they produced.
OEPs start from [the template](template.md). Every OEP is reviewed by at least one human
and one frontier AI model before it is accepted.

The {doc}`roadmap <../roadmap>` lists, in order:
1. accepted and in-progress OEPs;
2. drafts under discussion;
3. informal work not fully covered by a proposal.
The {doc}`roadmap <../roadmap>` lists accepted and in-progress OEPs, then drafts under
discussion. Each has a tracking issue, and other planned work is in the
[issues](https://github.com/LupoLab/optmat/issues).

## Open

Expand Down
1 change: 1 addition & 0 deletions docs/oeps/oep-0007-strong-field-dissociation.md
Original file line number Diff line number Diff line change
Expand Up @@ -659,3 +659,4 @@ None yet.

- 2026-10-09: Drafted, after the curation of TC-954 to TC-981.
- 2026-10-09: Q1 and Q2 resolved by the maintainer, as recommended (TC-982).
- 2026-11-04: Tracking issue opened, [#35](https://github.com/LupoLab/optmat/issues/35).
10 changes: 6 additions & 4 deletions docs/oeps/oep-0008-bound-two-photon-response.md
Original file line number Diff line number Diff line change
Expand Up @@ -244,8 +244,8 @@ Its own fallback is to report the evaluator as deferred to a later proposal. Thi
that proposal. It answers Q9 for the bound levels. It takes up Q7 and Q8 where they
concern the bound levels. OEP 6 is Final with Phases 1 and 2a implemented (TC-1053).

**The roadmap item answered:** OEP 6's Phase 2 evaluator, and the "bound resonances"
deferred by the paired solprop proposal.
**The work answered:** OEP 6's Phase 2 evaluator, and the "bound resonances"
deferred by the paired solprop proposal, [SEP 17](https://solprop.readthedocs.io/en/latest/dev/seps/sep-0017-gas-two-photon-ionisation.html).

### 4. Theory

Expand Down Expand Up @@ -792,7 +792,7 @@ additional cross-check failure stated; the dispersive response is unvalidated. T
one-electron model's ¹D/¹S ratio, 0.45, favours the per-level reading (0.70) over
one component (0.14), weakly. Its absolute strengths are 2–3 times the correlated
calculations', so argon stays unresolved;
- the measurements on the roadmap's papers-wanted list.
- the measurements on the {doc}`papers-wanted page <../wanted>`.
- **Argon, qualified on calculated strengths** (Q7, resolved). The convention is settled
by xenon (TC-952), and the correlated calculations agree well.
- **The reference** is henriksson_2005's J-resolved TDDHF strength per level: J = 2 at
Expand Down Expand Up @@ -1113,7 +1113,8 @@ in propagation*. It covers:

General frequency-dependent/two-colour dynamics (Q8), strong-field multilevel
qualification (Q9), and the continuum's time dependence (Q6) are not silently added to
these phases. They remain on the roadmap. Approval of Q8–Q10 resolves the initial
these phases. They remain open in the issues ([#10](https://github.com/LupoLab/optmat/issues/10), [#11](https://github.com/LupoLab/optmat/issues/11)).
Approval of Q8–Q10 resolves the initial
scope and data choices, not those scientific extensions or acceptance of the whole OEP.

### 13. Open questions
Expand Down Expand Up @@ -1305,3 +1306,4 @@ None yet.
candidate. No new phase, OEP or SEP is created; status remains Draft; Reviewed.
- 2026-10-12: Argon's radiative widths, quenching and photoionisation at the drive curated (TC-1068).
- 2026-10-12: Argon's quenching reconciled and its photoionisation scale questioned (TC-1074).
- 2026-11-04: Tracking issue opened, [#36](https://github.com/LupoLab/optmat/issues/36). The roadmap's references became links to the issues, the papers-wanted page and SEP 17.
25 changes: 25 additions & 0 deletions docs/propagation.md
Original file line number Diff line number Diff line change
Expand Up @@ -245,5 +245,30 @@ chi = mixture_optics(["He", "Ne"]).susceptibility(800e-9, densities)
assert he_ne.status == "validated" and float(chi.real) > 0
```

## solprop

The pulse-propagation code [solprop](https://github.com/LupoLab/solprop) is the worked
example of this interface: it takes its gases, gas mixtures, glasses and metals from
optmat. Its manual shows the other side, in [Materials](https://solprop.readthedocs.io/en/latest/guide/media/materials.html),
[Material selection](https://solprop.readthedocs.io/en/latest/guide/media/material-selection.html) and
[Raman data](https://solprop.readthedocs.io/en/latest/guide/media/raman-data.html).

The boundary between the two is recorded in its enhancement proposals:

- [SEP 3](https://solprop.readthedocs.io/en/latest/dev/seps/archive/sep-0003-optmat-materials.html) moved its materials, Raman
responses and ionisation rates to optmat, on the preparation of OEP 1;
- [SEP 6](https://solprop.readthedocs.io/en/latest/dev/seps/archive/sep-0006-dispersive-nonlinearity.html), its frequency-dependent
third-order response, reads where the fits are supported from
`HyperpolarizabilityModel.support` ({doc}`OEP 5 <oeps/archive/oep-0005-hyperpolarizability-support>`);
- [SEP 11](https://solprop.readthedocs.io/en/latest/dev/seps/sep-0011-finite-density-gas-index.html), a draft, is the propagation side
of the finite-density mixture law ({doc}`OEP 4 <oeps/archive/oep-0004-mixture-index>`);
- [SEP 17](https://solprop.readthedocs.io/en/latest/dev/seps/sep-0017-gas-two-photon-ionisation.html), its two-photon continuum
response, uses the coefficients of {doc}`OEP 6 <oeps/archive/oep-0006-two-photon-ionisation>`.

optmat supplies material properties and basic data; solprop owns the resulting
polarisation, electron accounting, plasma coupling and propagation energy balance
(TC-1057). What each is waiting for from the other is in the issues carrying the
[`solprop` label](https://github.com/LupoLab/optmat/issues?q=is%3Aissue+label%3Asolprop). optmat never depends on solprop.

This page documents what [OEP 1](oeps/archive/oep-0001-propagation-interface.md)
proposed and implemented: its theory, decisions and phase reports are the record.
Loading
Loading