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

Calling of avail from Stellarator/IFE does not take into account iavail #1541

Closed jonmaddock closed 10 months ago

jonmaddock commented 2 years ago

In GitLab by @timothy-nunn on Jan 25, 2022, 11:21

As per discussion in !601, IFE/Stellarator call the availability model. However, they both call the avail subroutine without taking into account the iavail flag. However, other calls to availability models take into account the iavail flag:

if cv.iavail > 1:
    self.avail_2(output)  # Morris model (2015)
else:
    self.avail(output)  # Taylor and Ward model (1999)

Is this intended behaviour or should they be calling availabilities run method and allowing it to run the appropriate model based upon the switch?

jonmaddock commented 2 years ago

In GitLab by @timothy-nunn on Jan 25, 2022, 11:22

@mkovari I would imagine you are best placed to answer/ point this at someone that can?

Cheers, Tim

jonmaddock commented 2 years ago

In GitLab by @mkovari on Jan 25, 2022, 11:25

Sorry, I don't know anything about the stellarator or IFE models.

As I understand it, the only person who knows much about the stellarator model is Felix Warmer. The IFE model was removed, and then reinstated by Stuart, I think.

jonmaddock commented 2 years ago

In GitLab by @timothy-nunn on Jan 25, 2022, 12:01

@stuartmuldrew any ideas on this/ who would know?

chris-ashe commented 10 months ago

For the ife module their is dedicated inertial fusion conditions in the avail routine that is ran. Though these just turn off parts of the routine that represent components not seen in inertial fusion eg (DEMO styled blankets).

For the stellarator module the avail routine is run as well. Though I don't see why it couldn't run the avail_2 routine. Most availabilities are just calculated as a time require to reach a certain fluence when operating at a certain fusion power so should be good enough as a proxy for estimating lifetimes.

chris-ashe commented 10 months ago

Issue closed as per: https://github.com/ukaea/PROCESS/pull/3037