Skip to content

Improve CS peak self-field surrogate model - #4655

Merged
je-cook merged 11 commits into
mainfrom
matti/single_turn_cs_peak_field_surrogate
Nov 5, 2026
Merged

je-cook merged 11 commits into
mainfrom
matti/single_turn_cs_peak_field_surrogate

Conversation

@CoronelBuendia

@CoronelBuendia CoronelBuendia commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Description

Closes #1883

Replaces the PROCESS (original ?) fit to (Boom and Livingstone, 1962) data shown in (Wilson, 1983) with a much better fit using data from BLUEMIRA (previously verified and validated as being quasi-identical to the Boom and Livingstone graph).

Fit is courtesy of @timothy-nunn

This is the resulting fit for $k = B_{CS,peak} / B_{CS,axis}$:

image image

And the corresponding plots for the existing $k$ fit:

image image

The existing fit is not as catastrophic as these are made out to be, because for the most part $k$ ~ 1.0, so the peak self-field is not quite so off as one might think.

I will address a multi-turn factor in a separate issue.

Checklist

I confirm that I have completed the following checks:

  • My changes follow the PROCESS style guide
  • I have justified any large differences in the regression tests caused by this pull request in the comments.
  • I have added new tests where appropriate for the changes I have made.
  • If I have had to change any existing unit or integration tests, I have justified this change in the pull request comments.
  • If I have made documentation changes, I have checked they render correctly.
  • I have added documentation for my change, if appropriate.

@CoronelBuendia
CoronelBuendia requested a review from a team as a code owner October 5, 2026 15:25
@CoronelBuendia CoronelBuendia changed the title Improve CS peak self-field surrogate model WIP: Improve CS peak self-field surrogate model Oct 5, 2026
@CoronelBuendia

CoronelBuendia commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor Author

Regression test failures:

  • large_tokamak_eval
  • large_tokamak_nof
  • low_aspect_ratio_DEMO

These are pulsed devices where the CS is at its limits. Looking at the large tokamak in evaluation mode, all the differences relate to the CS coil and its constraints (as expected):

Variable                                   Ref	       New	  % Change
ineq_con060                             0.0214      0.149     595.72
ineq_con026                             0.0546      0.117     114.33
ineq_con027                               0.13      0.184      41.13
ineq_value_con060                         1.53       1.72      12.51
temp_cs_superconductor_margin              1.53       1.72      12.51
j_cs_critical_flat_top_end             3.78e+07   4.05e+07       7.06
jcableoh_eof                            7.35e+07   7.87e+07       7.06
j_cs_conductor_critical_flat_top_end   3.50e+08   3.75e+08       7.06
ineq_value_con026                        0.567       0.53      -6.60
jcableoh_bop                            7.47e+07   7.96e+07       6.56
j_cs_conductor_critical_pulse_start     3.56e+08   3.79e+08       6.56
j_cs_critical_pulse_start               3.84e+07   4.09e+07       6.56
ineq_value_con027                        0.522       0.49      -6.15
ineq_con072                             -0.553     -0.535       3.24
b_pf_coil_peak[n_cs_pf_coils-1]             14       13.8      -1.91
b_cs_peak_flat_top_end                      14       13.8      -1.91
b_cs_peak_pulse_start                       14       13.7      -1.80
stress_hoop_cs_inner                 7.48e+08   7.35e+08      -1.80
stress_radial_cs_peak                -1.39e+07  -1.36e+07       1.80
stress_mises_cs_peak                 1.02e+09   1.01e+09      -1.24
ineq_value_con072                      1.16e+09   1.15e+09      -1.15
stress_shear_cs_peak                  1.16e+09   1.15e+09      -1.15

Which all stems essentially from the beak field being 0.2-0.3 T lower with the new calculation. For people who don't have the integers in their heads:

  • icc = 26 * Central solenoid EOF current density upper limit
  • icc = 27 * Central solenoid BOP current density upper limit
  • icc = 60 * Central solenoid temperature margin lower limit
  • icc = 72 * central solenoid shear stress limit

All fairly straightforward implications of a change to the peak field (higher current density possible, higher temperature margin, lower stress).

In optimisation mode many more outputs see significant changes, because the CS is partially driving the radial build. Now that the CS peak field is lower, the optimal solution vector changes.

@chris-ashe
chris-ashe self-requested a review October 6, 2026 08:04
@CoronelBuendia CoronelBuendia changed the title WIP: Improve CS peak self-field surrogate model Improve CS peak self-field surrogate model Oct 6, 2026
Comment thread process/models/pfcoil.py Resolved
Comment thread process/models/pfcoil.py Resolved
Comment thread tests/unit/models/test_pfcoil.py Resolved
@codecov-commenter

codecov-commenter commented Oct 6, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.00000% with 15 lines in your changes missing coverage. Please review.
✅ Project coverage is 49.62%. Comparing base (3cc7994) to head (9e09332).
⚠️ Report is 23 commits behind head on main.

Files with missing lines Patch % Lines
process/models/pfcoil.py 50.00% 15 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #4655      +/-   ##
==========================================
- Coverage   50.26%   49.62%   -0.64%     
==========================================
  Files         181      181              
  Lines       30512    34038    +3526     
==========================================
+ Hits        15338    16893    +1555     
- Misses      15174    17145    +1971     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@je-cook je-cook self-assigned this Oct 15, 2026
@CoronelBuendia
CoronelBuendia force-pushed the matti/single_turn_cs_peak_field_surrogate branch from aec58e5 to 9e09332 Compare October 15, 2026 09:45
@je-cook je-cook closed this Nov 5, 2026
@je-cook je-cook reopened this Nov 5, 2026
@je-cook
je-cook merged commit 1031a2e into main Nov 5, 2026
8 of 11 checks passed
@je-cook
je-cook deleted the matti/single_turn_cs_peak_field_surrogate branch November 5, 2026 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Imprecise calculation of bfmaxoh

5 participants