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
36 stars 11 forks source link

Current drive fractions do not add to 1 #1853

Open jonmaddock opened 1 year ago

jonmaddock commented 1 year ago

In GitLab by @mkovari on May 18, 2023, 11:53

This code falsifies the current drive fractions so they do not add to 1. No error message appears in the output file.

            #  Plasma driven current fraction (Bootstrap + Diamagnetic
            #  + Pfirsch-Schlüter) constrained to be less than
            #  or equal to the total fraction of the plasma current
            #  produced by non-inductive means (which also includes
            #  the current drive proportion)
            physics_module.err243 = 0
            if current_drive_variables.plasipf > physics_variables.fvsbrnni:
                current_drive_variables.plasipf = min(
                    current_drive_variables.plasipf, physics_variables.fvsbrnni
                )
                physics_module.err243 = 1

@stuartmuldrew ?

jonmaddock commented 1 year ago

In GitLab by @kj5248 on May 18, 2023, 12:00

Bootstrap_fraction__ (bootipf)_ 7.0000E-01
Diamagnetic_fraction____
(diaipf)__ 0.0000E+00
Pfirsch-Schlueterfraction__ (psipf)__ 0.0000E+00
Auxiliary_current_drive_fraction____ (faccd)_ 0.0000E+00
Inductive_fraction____
(facoh) 3.0550E-01
Total____
(plasipf+faccd+facoh)_____ 1.0000E+00
Fraction_of_the_plasma_current_produced_by_non-inductive_means__ (fvsbrnni)____ 6.9450E-01 ITV

jonmaddock commented 1 year ago

In GitLab by @stuartmuldrew on May 18, 2023, 16:53

I'm confused in the above example as there is no heating and current drive. I think this goes back to the odd way PROCESS has handled the bootstrap current limit, where it enforces the maximum by overwriting the value rather than modifying the plasma solution.

chris-ashe commented 3 months ago

Related issue #3273

j-a-foster commented 1 month ago

@chris-ashe and I have looked at this and it seems that the current fractions are decoupled in how they're calculated and relate to one another. The non-inductive current fraction is an iteration variable but I can't see what constrains its value? This then sets the plasma driven current but as that is bootipf + diaipf + psipf, it doesn't then report the fractions correctly summing to 1 as bootipf is the only value reported, not plasipf.

Also, the inductive fraction has no relation to the CS whatsoever, it's simply: 1 - non-inductive fraction