Skip to content

Milestones

List view

  • The main target for version 2.2.0 is the capability of differentiable TCE (thermal chemical equilibrium). Note that we are developing the differentiable TCE package `exogibbs`. # Overview Release 2.2.0 (branch release_v2_2_0) is a substantial update since tag v2.1, focusing on PreMODIT performance/memory, database API refactors, packaging modernization, and new snapshot/provider abstractions to decouple opacity from DB classes. Summary below is based on local Git history; I can cross-check the milestone if you paste it. ## pyproject We migrates ExoJAX from setup.py to a modern PEP 517/518 and PEP 621 compliant pyproject.toml build. #626 ### restrucuture - `MdbExomol`, `MdbHitemp`, `MdbHitran`, `MdbHargreaves`, `AdbVald`, `AdbSepVald`, `AdbKurucz`, `XdbExomolHR`, `PdbCloud` `CdbCIA`, `` to each subdirectory in `database` #622, #623, #624 These classes can be called such as ```python from exojax.database import MdbExomol ``` ## Connect MDB to OpaPremodit - What’s new: OpaPremodit now accepts databases via high‑level helpers and data‑only snapshots. This decouples opacity from DB classes, improves memory use, and keeps APIs clean. ### Quick Start (recommended) - ExoMol: - mdb: MdbExomol(".../CO/12C-16O/Li2015", nu_grid, crit=1e-30, Ttyp=1000.0) - opa: OpaPremodit.from_mdb(mdb, nu_grid, auto_trange=(500.0, 1500.0), broadening_resolution={"mode": "manual", "value": 0.2}, memory_policy=MemoryPolicy(allow_32bit=True, nstitch=4, cutwing=1.0)) - HITRAN/HITEMP: - mdb: MdbHitran("path/to/CO.par", nu_grid, isotope=0) - opa: same from_mdb(...) pattern as above. Example: ```python from exojax.database.exomol.api import MdbExomol from exojax.opacity.premodit.api import OpaPremodit from exojax.opacity.policies import MemoryPolicy mdb = MdbExomol(".database/CO/12C-16O/Li2015", nu_grid) opa = OpaPremodit.from_mdb(mdb, nu_grid, auto_trange=(500,1500), broadening_resolution={"mode":"manual","value":0.2}, memory_policy=MemoryPolicy(allow_32bit=True, nstitch=2)) xs = opa.xsvector(T=1200.0, P=0.1) # or opa.xsmatrix(Tarr, Parr) ``` ## Snapshots (advanced/portable) - Export once, construct anywhere: - snap = mdb.to_snapshot() - opa = OpaPremodit.from_snapshot(snap, nu_grid) - Optional providers override: - Partition: ExoMol/HITRAN providers are auto‑selected; pass a custom pf_provider if needed. - Broadening: ExoMol/HITRAN strategies are auto‑selected; pass a custom broadening_strategy to override. Memory and Runtime Controls - memory_policy: central knob for allow_32bit, nstitch (ν‑stitching), and cutwing. Policy values override constructor args. - broadening_resolution: - "manual": fixed resolution (highest memory) - "minmax": DB‑driven min/max grids (medium memory) - "single": single broadening set (lowest memory) ### Notes - from_mdb calls .to_snapshot() internally and frees the DB by default (delete_mdb_after_init=True). Keep it with delete_mdb_after_init=False. - Ensure MDB lines intersect nu_grid; otherwise a ValueError is raised. - Direct constructor OpaPremodit(mdb, nu_grid, ...) remains supported; from_mdb is the preferred path for clarity and memory efficiency. ## Highlights - PreMODIT: adds MemoryPolicy, provider-based partition/broadening, from_mdb/from_snapshot constructors, and precomputed line_strength_Tref for speed. - Snapshots: new MDBSnapshot/MDBMeta/Lines DTOs; MdbExomol, MdbHitran, MdbHitemp implement .to_snapshot(). - Database refactor: split ExoMol vs HITRAN/HITEMP broadening paths; reorganized modules; added XdbExomolHR for high‑res empirical lines. - Atomic DB (VALD/Kurucz): AdbVald, AdbSepVald, AdbKurucz exposed via exojax.database. - CIA: dedicated exojax.database.cia.api.CdbCIA with contdb kept as a deprecation shim. - Float32: optional 32‑bit mode for PreMODIT (faster + lower memory). - Chemistry: groundwork to connect equilibrium chemistry (exogibbs), new tutorial/docs, and H2 CIA usage in examples. - Packaging: switch to pyproject.toml + setuptools-scm; Python ≥ 3.9; CI config updates. - Tests/Docs: snapshot tests for MDBs, additional opacity tests, relaxed tolerances where needed; “Get Started” refresh. ## Breaking/Deprecations - exojax.database.moldb removed; use exojax.database.exomol/hitran/hitemp classes (MdbExomol, MdbHitran, MdbHitemp) or atomic Adb*. - Prefer exojax.database.cia.api.CdbCIA; contdb.CdbCIA emits DeprecationWarning. - Minimum Python now 3.9 (declared in pyproject.toml). ## Included PRs (since v2.1) - #631 di_mdb_opa: DB–opacity integration refactor, memory/policies/providers, tests/docs. - #630 premodit_mem: PreMODIT memory improvements + snapshot path and tests. - #629 connect_exogibbs: equilibrium chemistry integration + tutorial. - #626 pyproject: packaging migration, Python version floor, CI. - #624 mmrefacmdb / #623 morerefactmdb / #622 refacmdb: DB refactors (molinfo/qstate moves, ExoMolHR restructure, HITRAN/HITEMP splits). - #620 32bitxs: float32 cross-section support + tests. # bug fixes #619 #620 32-bit overflow

    No due date
    11/11 issues closed
  • ## postponed - four stream scattering - wavenumber dependent IP - gas chemical equilibrium

    No due date
    5/18 issues closed