There is a newer version of the record available.

Published October 4, 2024 | Version v0.8.0
Software Open

DisruptionPy: An open-source physics-based Scientific Framework for Disruption Analysis of Fusion Plasmas

  • 1. Massachusetts Institute of Technology

Description

An interoperable Python package for plasma disruption analysis and prediction using ML.

Abstract

A key element of plasma control systems (PCS) in tokamak reactors is the prediction and avoidance of disruptions, sudden losses of the thermal and magnetic energy stored within the plasma that can occur when tokamaks operate near regions of plasma instability or because of system malfunctions. The energy released during disruptions can cause severe damage to plasma-facing components, limiting experimental operation or even the device lifetime. This poses a serious challenge to next-step fusion experiments such as SPARC, which will have to operate near some of the limits of plasma stability to achieve its intended performance and will do so at for long and frequent intervals. Previous work has shown the promise of machine-learning (ML) algorithms for disruption prediction in both DIII-D and EAST -- the Experimental Advanced Superconducting Tokamak in China -- PCS. This is also due to the fact that fusion science currently lacks first-principle, theoretical solutions to fully predict and avoid disruptions.

DisruptionPy is an open-source python package for training, updating, and evaluating algorithms for disruption prediction and avoidance that can be applied to Alcator C-Mod and DIII-D data, and can deploy models in DIII-D and EAST (TBD) PCSs.

Technical info

🎉 first open-source release! 🎉

C-MOD

  • Implement ne & pressure peaking factors for C-MOD #268
  • Add Te Peaking Factor and Width from ECE Data for C-MOD #260
  • Revamp C-MOD shotlists #320

DIII-D

  • Fix get_ohmic_parameters and get_power_parameters for DIII-D #234
  • Fix get _density_parameters for DIII-D #249
  • Fix get_rt_density_parameters methods for DIII-D #251
  • Fix get_kappa_area for DIII-D #256
  • Fix get_n1rms_parameters for DIII-D #257
  • Modify get_shape_parameters for DIII-D #258
  • Fix get_rt _ip_parameters for DIII-D #254
  • Fix get_z_parameters for DIII-D #255
  • Fix get_peaking_parameters for DIII-D #265
  • Minor fixes to DIII-D prad peaking factors #328

Framework

  • Fix logic for running physics methods based on tokamak parameter #252
  • Fetch major radius #293
  • Fix pytest argument parsing #303
  • Fix Dynaconf settings path #294
  • Remove populate param #307
  • Remove matplotlib-based utility function from math  #291
  • Fix merge error during testing against cache #309
  • Revamp exception handling #317

Automation

  • Revamp test features #262
  • Use poetry in CI/CD workflows #279
  • Add stale workflow #313
  • Update makefile and workflows #327
  • Add build workflow #323
  • Add initial support for ruff #330

Linting

  • Add pylint annotations #281
  • Fix unused imports #286
  • Fix chained-comparison #288
  • Use literal dict #289
  • Fix fstrings issues #290
  • Fix no-else issues #287
  • Add import declaration to settings #295
  • Fix cyclic-import #300
  • Fix quick examples #302
  • Add pylint ignore list #299
  • Prohibit introduction of new errors #305
  • Remove unnecessary pass #297
  • Fix miscellaneous pylint issues #298
  • Fix unused variables #308
  • Ignore fixmes/todos #311
  • Fix redefined outer name #315
  • Fix invalid names #314
  • Fix unused keyword arguments #316
  • Fix protected access #318
  • Simplify pylint workflow #321
  • Ignore final pylint warning #324
  • Add docstrings for modules/classes/methods #325
  • Reduce line length #329

Misc

  • Delete manifest #301
  • Update pyproject details #312
  • Drop python 3.9, update and lock deps #322

Files

Files (89.8 kB)

Name Size Download all
md5:5e734c8884aef9602249dddef16a1aed
89.8 kB Download

Additional details

Funding

United States Department of Energy
Open and FAIR Fusion for Machine Learning Applications DE-SC0024368

Software

Repository URL
https://github.com/MIT-PSFC/disruption-py/
Programming language
Python
Development Status
Active