Skip to content

Improvements in efficiency, structure and physics

Compare
Choose a tag to compare
@pabloprf pabloprf released this 02 Aug 21:43
· 201 commits to main since this release
a6c70c9

Bug Fixes

  • 🐛 Optimization stopping criteria changed to follow maximization logic, not residual minimization.
  • 🐛 Fixed bug that wrote surrogate data file with wrong nuei.
  • 🐛 Removed references to pablorf folders.
  • 🐛 Reading and plotting of geqdsk now more robust, fixed bug in removeCoils function.
  • 🐛 Fixed bug that made waveform calculation in TGLF unstable.
  • 🐛 PROFILES variable $\epsilon$ (inverse aspect ratio) now correctly defined as $r/R$.
  • 🐛 Corrected betae for 100 times lower (before, it was a percentage)
  • 🐛 Keep botorch==0.9.4 until fix is found.

New Features

  • 💥 First release of basic ASTRA class (@AudreySaltzman, @mmuraca).
  • 💥 Equilibrium and flux surfaces to MXH coefficients conversion routine available (@josephb-hall).
  • 💥 Users will now be warned if PORTALS, TGLF or BO option they selected is not available.
  • 💥 POWERSTATE class now receives custom methods for transport and target calculations, in view of SMARTSsolver future development (@cholland). These can be provided externally as long as they inherit from parent classes.
  • 💥 POWERSTATE flux-matching class now works fine outside of surrogate-based optimization methods, for quick evaluation of steady-state profiles with analytical or surrogated transport coefficients. Future development will include direct TGLF call, resembling a pythonic TGYRO solver.
  • 💥 BO and PORTALS results now written as csv files and handled as dataframes.
  • 💥 Much faster POWERSTATE class (changed logic for detachment and unsqueezing of tensors) and much faster derivedQuantities calculation of PROFILES via parallelization of geometric variables calculations.
  • 💥 Zeff in PROFILES can now be modified directly without the need to handle manually the individual ion densities.
  • 💥 Maximization objective now added as part of the optimization_data results file.
  • 💥 Direct PROFILES to TGLF in-memory converter ready to go (prep_direct_tglf() method). No need for "iteration=0" of TGYRO. In next release, this will be default.
  • 💥 POPCON matching tools available (@josephb-hall).

Changes for developers (internal execution)

  • 🔎 Significant renaming of internal methods, functions and classes to follow better standards.
  • 🔎 Only POWERSTATE class is needed for PORTALS plotting and analysis, which eases implementation with non-TGYRO transport methods.
  • 🔎 Generalized update_var function towards a channel-agnostic framework
  • 🔎 Generally, better organization of: parameterization of POWERSTATE, targets calculations (including fine targets). Removal of deprecated options and methods.
  • 🔎 Radiation coefficients for ADAS radiation now are part of external csv file instead of hardcoded in python.

Back-compatibility considerations

  • 🔮 Changed name of options variables and dictionaries in TGYRO, PORTALS and BO.
  • 🔮 Fine targets resolution in PORTALS is now enabled by default.
  • 🔮 Changed TGLF settings default in solvers.
  • 🔮 Changed PORTALS radial resolution by default.
  • 🔮 POWERSTATE now must receive arrays without rho=0.0, which is added by default.
  • 🔮 Folders aux and exe renamed to utils and scripts to avoid issues with Windows machines and github cloning.