Add new negative triangularity confinement time scaling#4386
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #4386 +/- ##
=======================================
Coverage 48.83% 48.83%
=======================================
Files 151 151
Lines 29397 29403 +6
=======================================
+ Hits 14356 14360 +4
- Misses 15041 15043 +2 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
timothy-nunn
left a comment
There was a problem hiding this comment.
Just one minor style comment. Will ask @chris-ashe to review (or he can suggest someone else)
| [^22]: G. Verdoolaege et al., “The updated ITPA global H-mode confinement database: description and analysis,” Nuclear Fusion, vol. 61, no. 7, pp. 076006-076006, Jan. 2021, doi: https://doi.org/10.1088/1741-4326/abdb91. | ||
| [^23]: H. Lux, R. Kemp, E. Fable, and R. Wenninger, “Radiation and confinement in 0D fusion systems codes,” Plasma Physics and Controlled Fusion, vol. 58, no. 7, pp. 075001–075001, May 2016, doi: https://doi.org/10.1088/0741-3335/58/7/075001. | ||
| [^24]: H. Lux, R. Kemp, D. J. Ward, and M. Sertoli, “Impurity radiation in DEMO systems modelling,” Fusion Engineering and Design, vol. 101, pp. 42–51, Dec. 2015, doi: https://doi.org/10.1016/j.fusengdes.2015.10.002. | ||
| [^23]: P. Lunia, A.O. Nelson, and C. Paz-Soldan, "Energy Confinement Time Scaling Law Derived from Paz-Soldan NF 2024", doi: https://arxiv.org/abs/2509.04279v2 |
There was a problem hiding this comment.
Can I ask that the references now actually have a descriptive title such as [^paz_soldan_neg]
| NSTX_GYRO_BOHM = (48, "Buxton NSTX gyro-Bohm (ST)(H)") | ||
| ITPA20 = (49, "ITPA20 (H)") | ||
| ITPA20_IL = (50, "ITPA20-IL (H)") | ||
| PAZ_SOLDAN_NT = (51, "Paz-Soldan Neg Triang (L)") |
There was a problem hiding this comment.
| PAZ_SOLDAN_NT = (51, "Paz-Soldan Neg Triang (L)") | |
| PAZ_SOLDAN_NT = (51, "Paz-Soldan Negative δ (L)") |
| p_plasma_loss_mw : | ||
| Thermal power lost due to transport through the LCFS [MW] | ||
| dnla19 : | ||
| Central line-averaged electron density in units of 10**19 m**-3 |
There was a problem hiding this comment.
| Central line-averaged electron density in units of 10**19 m**-3 | |
| Central line-averaged electron density in units of 10¹⁹/m³ |
|
|
||
| References | ||
| ---------- | ||
| Priyansh Lunia, A.O. Nelson, and C. Paz-Soldan, "Energy Confinement Time |
There was a problem hiding this comment.
Reference should be written as:
[1] Priyansh Lunia, A.O. Nelson, and C. Paz-Soldan, "Energy Confinement Time Scaling Law Derived from Paz-Soldan NF 2024",
doi: https://arxiv.org/abs/2509.04279v2
The text should be left aligned with the left bracket of the [1] in order for it to preview properly in the IDE.
This is the Numpy Standard:
https://numpydoc.readthedocs.io/en/latest/format.html#references
| 0.0821 | ||
| * pcur**1.02 | ||
| * b_plasma_toroidal_on_axis**0.11 | ||
| * dnla19**0.51 |
There was a problem hiding this comment.
Looking at the reference is this actually meant to be the line averaged or volume averaged?. Also is it meant to be in x20 or x19?
|
Am confused as to why the regression tests are failing here @timothy-nunn |
| # If stellarator, use the stellarator scalings | ||
| for i_confinement_time in ( | ||
| range(1, N_CONFINEMENT_SCALINGS) if istell == 0 else stellarator_scalings | ||
| range(1, N_CONFINEMENT_SCALINGS + 1) if istell == 0 else stellarator_scalings |
There was a problem hiding this comment.
Shouldn't N_CONFINEMENT_SCALINGS be incremented by 1 rather than adding 1 here?
There was a problem hiding this comment.
Just realised that its not changed. Thought it was. The above should go then.
@timothy-nunn Surely we can have N_CONFINEMENT_SCALINGS set automatically?
There was a problem hiding this comment.
I can see, only thing would be it might cause circular imports
@chris-ashe could it be #4396 ? |
e01d349 to
2fc9420
Compare
timothy-nunn
left a comment
There was a problem hiding this comment.
Happy with the code, will await @chris-ashe approval before merging. Do you want #4396 to go in first to stop a random confinement scaling being used for the hstar in the MFile?
|
Will wait for rebase to fix merge conflict before doing re-review. The |
457b046 to
4f56b95
Compare
chris-ashe
left a comment
There was a problem hiding this comment.
Some previous suggestions still haven't been addressed. Need to ensure c_plasma_ma -> cur_plasma_ma as per the style guide.
| # Calculate confinement times using the scan data | ||
| iter_89p = confine.iter_89p_confinement_time( | ||
| pcur=c_plasma_ma, | ||
| c_plasma_ma=c_plasma_ma, |
There was a problem hiding this comment.
Renaming of pcur to c_plasma_ma does not match the style guide. It should be cur_plasma_ma
There was a problem hiding this comment.
We where already using c_plasma_ma in the other parts of the documentation? c_plamas_ma is given in the example naming conventions.
There was a problem hiding this comment.
Seems to be the refernce at the bottom was not updated.
The standard as it stands is cur_
https://ukaea.github.io/PROCESS/development/standards/#currents
I will put an issue in to replace the example
There was a problem hiding this comment.
I would also note that you'd need to update things like f_c_plasma_bootstrap, f_c_plasma_auxiliary, f_c_plasma_inductive and many more. I feel like this is taking this outside the scope of this PR.
There was a problem hiding this comment.
Yes that change needs to happen, don't worry about it in this case as you haven't touched those in this PR already
resolves #3825