ukaea / PROCESS

PROCESS is a systems code at UKAEA that calculates in a self-consistent manner the parameters of a fusion power plant with a specified performance, ensuring that its operating limits are not violated, and with the option to optimise to a given function of these parameters.
https://ukaea.github.io/PROCESS/
MIT License
30 stars 11 forks source link

Imprecise calculation of `bfmaxoh` #1883

Open jonmaddock opened 1 year ago

jonmaddock commented 1 year ago

In GitLab by @mcoleman on Jun 28, 2023, 14:33

Summary

Out of curiosity, I was browsing PROCESS' CS stuff, and came across process/pfcoil.py::PFCoil.bfmax. I literally bought the Wilson "Superconducting Magnets" book, before @jmorris-uk gave me a PDF copy... only to discover that the graph actually comes from Boom and Livingstone, 1962.

I don't know where the fit comes from, but I presume it's a PROCESS original. It says it is valid for $1 < \alpha < 2$ and $0.5 < \beta < 3$

In the Boom and Livingstone paper, the values of $k$ are calculated using a code. I extracted some values graphically (assume large error bars..) and plotted against what I get using a 2-D semi-analytic calculation of the field in a circular coil with rectangular cross-section, using some stuff in BLUEMIRA:

image

Assuming the BLUEMIRA stuff is correct, and that I have correctly copied the PROCESS fit, and plotting over the range of validity of the PROCESS fit I get (where a perfect fit would mean the red lines sit on top of the black ones):

image

If I fit a surface to the same region (albeit a high-order one) I get:

image

It's perhaps not a big deal ($k$ values are typically close to 1), but given that:

it seems a shame not to include a better fit / exact formulation.

I'm happy to provide either.

Checklist

After implementing issue do the following

jonmaddock commented 1 year ago

In GitLab by @je-cook on Jul 4, 2023, 08:55

bluemira magnetostatics calculations https://github.com/Fusion-Power-Plant-Framework/bluemira/blob/f43d85ddbb2626bb6cef4f3522c18618f7793219/bluemira/magnetostatics/semianalytic_2d.py#L206