DisruptionPy: An open-source physics-based Scientific Framework for Disruption Analysis of Fusion Plasmas
Authors/Creators
- 1. Massachusetts Institute of Technology
Contributors
Project leader:
Project member (5):
- 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
Software
- Repository URL
- https://github.com/MIT-PSFC/disruption-py/
- Programming language
- Python
- Development Status
- Active