Skip to content

Releases: google-deepmind/torax

v0.3.1

02 Apr 07:48
Compare
Choose a tag to compare

Upcoming API Changes: The next major release of TORAX will include significant API updates including: changes to the config structure/nesting, improved output naming and structure and improved module loading. This release (v0.3.1) provides primarily bugfixes, UX improvements, and new tutorials compared to v0.3.0, and allows users to pick up improvements with a stable API.

  • Physics features

    • QLKNN_7_11 now the default turbulent transport model
    • Absorbed fraction input field for ICRH and generic heating
    • vloop_lcfs output available for Ip boundary condition cases
  • UX improvements

    • Allow lists to be input in user-facing config dict
    • Remove ToraxSimOutput, StateHistory is the new public output class (before xarray conversion)
    • Create utility for registering new source model configs.
    • Add simulation error for negative temperatures and densities
    • Add serialized ToraxConfig to TORAX outputs
    • Tutorials
  • Bugfixes + miscellanous

    • Fix missed jit cache hits
    • Fix stale documentation
    • Various refactors for internal API simplification

v0.3.0

20 Mar 15:36
Compare
Choose a tag to compare

Upcoming API Changes: The next major release of TORAX will include significant API updates including: changes to the config structure/nesting, improved output naming and structure and improved module loading. This release (v0.3.0) provides a stable version with significant changes from v0.2.0 for users to pick up improvements with a stable API.

TORAX improvements since v0.2.0 (highlights)

  • Changes to interacting with TORAX programatically

    • Moved the config to Pydantic improving validation and readability
    • Replaced sim.Sim with torax.run_simulation which takes a torax.ToraxConfig
  • Physics features

    • Average charge state equilibria added
    • QLKNN_7_11 transport model
    • qualikiz transport model
    • Improved simple models for pedestal boundary condition
    • Can split main ion and impurity into mixtures of ion species. DT ratio now impacts fusion power. Radiation for each separate impurity can be calculated
    • Improved radiation models including Mavrin polynomial fits to ADAS data
    • Cyclotron radiation
    • New Vloop boundary condition option for current diffusion equation
  • **Miscellaneous and bugfixes

    • Fixes for q_face and s_face being stale
    • Fix in He3 tail temperature calculation
    • P_LH_minimum bugfix
    • Extra post-processed outputs added
    • Improved on-axis treatment of pprime and plasma current
    • Minor performance optimizations (~5% in compilation time and runtime)
    • Refactors: various restructuring and cleanups

New Contributors

Full Changelog: v0.2.0...v0.3.0

v0.2.0

19 Nov 10:57
Compare
Choose a tag to compare

Upcoming API Changes: The next major release of TORAX will include significant API updates, including changes to the configuration structure, a transition to a hierarchical xarray DataTree output format, and variable renaming for improved consistency. This release (v0.2.0) provides a stable version for users who wish to continue development with the current API.

TORAX improvements since v0.1.0 (highlights)

  • Physics Model Improvements:

    • Added Gaussian smoothing option for transport models.
    • Implemented support for spatially varying Zeff profiles.
    • Integrated a neural network wrapper for the Toric ICRH ML-surrogate model (using Flax).
    • Added Bremsstrahlung radiation sink.
    • Added BohmGyroBohm transport model.
    • Implemented ECCD with Lin-Liu current drive formula.
  • Geometry Input Extensions:

    • Added support for MEQ (FBT) geometry input.
    • Enabled EQDSK geometry input with flux-surface averaging.
    • Implemented support for time-dependent geometries:
      • Support for multiple geometry files or bundled FBT files (via liuqe meqlpack).
      • Calculation of time-dependent phibdot term in governing equations.
  • Configuration and Sim object construction improvements

    • Enabled flexible input of prescribed data using Python primitives, NumPy, and xarray.
    • Expanded support for prescribing time-dependent profiles, including core profiles and sources.
    • Significantly improved simulation setup speed by pre-interpolating input arrays and preparing time interpolation providers.
    • Enhanced the methodology for Ip scaling, supporting both parameter-based and geometry file-based definitions.
  • Developer Quality of Life:

    • Redesigned source management for improved modularity and easier integration of new sources.
    • Restructured transport_models to increase modularity, simplify new model integration, and reduce redundant code.
    • Enhanced type safety with array typing and typeguard annotations.
    • Implemented helper scripts for managing and updating simulation integration tests.
    • Divided SimulationStepFn into distinct phases, enabling external modification of dynamic runtime parameters at each simulation step.
  • Bugfixes:

    • Corrected QLKNN magnetic shear calculation.
    • Fixed Coulomb constant calculation.
    • Resolved issues with impurity density and boundary condition updates.
    • Fixed a bug in external current profile updates.
  • Extended Outputs:

    • Added stepper numeric outputs, including error codes and iteration counts.
    • Expanded post-processed outputs, such as integrated currents, sources, fusion gain, and pressure.
    • Added output of the plasma current profile calculated from the poloidal flux.
  • Documentation:

    • Significantly expanded documentation, covering physics models, solver details, code structure, and developer guides.
    • Improved docstrings and comments for enhanced code readability.
  • Miscellaneous:

    • Enabled nightly and pull request-triggered unit tests in CI.
    • Added a JAX profiler (optional, flag-activated) for performance analysis.
    • Implemented a configurable, data-driven plotting library.
    • Implemented various performance optimizations, including solver improvements and JIT compilation of simulation setup.
    • Enabled JAX persistent cache for faster execution.
    • Added support for restarting simulations from arbitrary time points using existing TORAX output files.
    • Modified governing equations for consistency with normalized toroidal flux as the radial coordinate.
    • Improved various equation calculations, including q-profile and current calculations.

v0.1.0

01 May 14:09
Compare
Choose a tag to compare

Initial release of TORAX.