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

Licensing for IDM/EUROfusion data in PROCESS #1760

Closed jonmaddock closed 1 year ago

jonmaddock commented 2 years ago

In GitLab by @jmorris-uk on Sep 28, 2022, 11:18

Summary

Identify all instances of IDM/EUROfusion data in PROCESS and either

  1. find published version of data
  2. get permission to open source from copyright holder
  3. find alternative and remove from code.

Link to PROCESS licence schedule document. Table from document below.

Component Licence Status Assignee
PLASMOD Custom Still waiting for IPP to open-source James
VMCON Custom NEA Rewritten from public paper Tim/Jon
REFPROP Custom In progress Tim
HYBRD Custom Done - header included James
HARE Custom In progress #1811 Jon
ADAS Custom In progress Tim
HCPB EUROfusion Copyright In progress Alex/Michael
HCLL EUROfusion Copyright Done Johnny
Stellarator Custom In progress James
DCLL EUROfusion Copyright In progress Johnny
jonmaddock commented 2 years ago

In GitLab by @jmorris-uk on Sep 28, 2022, 11:18

created merge request !833 to address this issue

jonmaddock commented 1 year ago

In GitLab by @kj5248 on Dec 21, 2022, 11:02

ID's for Referenced IDM reports:

  1. 2L8QVN
  2. 2NUZCR
  3. 2LLNBX
  4. 2M97B7
  5. 2JNFUP
  6. 2LKMCT -> moved to new issue #1849
  7. 2MBSE3 -> moved to new issue #1848
  8. 2MUP64
  9. 2M94N2
  10. 2MFLQE
  11. 2PBDRG
  12. 2MSZ4T -> moved to new issue #1816
  13. 2MMDTG
jonmaddock commented 1 year ago

In GitLab by @kj5248 on Jan 3, 2023, 10:43

mentioned in commit 32d1d24fa0ab067ab7fafdaf2e2e275319444ad8

jonmaddock commented 1 year ago

In GitLab by @jmorris-uk on Jan 11, 2023, 09:56

References to 2NUZCR removed from code.

jonmaddock commented 1 year ago

In GitLab by @jmorris-uk on Jan 11, 2023, 14:10

@mkovari

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 11, 2023, 16:26

2LLNBX

            #  CCFE HCPB Model (with or without TBR)
            if (fwbs_variables.iblanket == 1) or (fwbs_variables.iblanket == 3):
                #  HCPB, efficiency taken from WP12-DAS08-T01, EFDA_D_2LLNBX Feedheat & reheat cycle assumed
                etath = 0.411e0

                #  KIT HCPB model
            elif fwbs_variables.iblanket == 2:
                #  HCPB, efficiency taken from WP12-DAS08-T01, EFDA_D_2LLNBX Feedheat & reheat cycle assumed
                etath = 0.411e0
            else:
                logger.log(f'{"iblanket does not have a value in range 1-3."}')

            #  Etath from reference. Div power to primary
        elif fwbs_variables.secondary_cycle == 1:

            #  CCFE HCPB Model (with or without TBR)
            if (fwbs_variables.iblanket == 1) or (fwbs_variables.iblanket == 3):
                #  HCPB, efficiency taken from WP12-DAS08-T01, EFDA_D_2LLNBX Feedheat & reheat cycle assumed
                etath = 0.411e0 - self.delta_eta

                #  KIT HCPB model
            elif fwbs_variables.iblanket == 2:
                etath = 0.411e0 - self.delta_eta

The figure mentioned four times in this code (41.1%) is given in "“PROCESS”: A systems code for fusion power plants – Part 2: Engineering". I think you can replace all the references to 2LLNBX by this paper.

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 11, 2023, 16:38

2M97B7 This appears only once:

  integer :: blkttype
  !! Switch for blanket type:
  !!
  !! - =1 WCLL; efficiency taken from WP13-DAS08-T02, EFDA_D_2M97B7

Funnily enough, I don't think we have a WCLL model. If I search the code for blkttype ==, I get 5 results, but none seem to relate to the efficiency expected when using a WCLL blanket. If I am right, we could just remove the reference with no further action.

Maybe @js0164 Georgie could comment.

jonmaddock commented 1 year ago

In GitLab by @kj5248 on Jan 11, 2023, 16:58

made changes for your suggestions Michael, also blkttype is mostly switched with iblanket but checked and that doesn't use etath at any point. Also 2MMDTG replaced with open source version of same paper and 2MFLQE replaced with book chapter

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 12, 2023, 11:35

2JNFUP This is mentioned twice: in hcll.f90 and hcp.90, both in this routine:

function pumppower
!! WCLL DDD, WP12-DAS02-T03, J. Aubert et al, EFDA_D_2JNFUP

This report states that all the the pressure drop formulas used come from [10], 'Memento des pertes de charge coefficients de pertes de charge singulières et de pertes de charge par frottement', by I. E. Idel'Cik · 1960.

This is a book, and our access to the information in it therefore does not rely on work done for EUROfusion. (As it happens this book is also available online.)

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 12, 2023, 14:05

2LKMCT
This refers to the blanket neutronics model developed by Fabrizio Franza. (FU-TF1.1-12/003/01, Development of a new HCPB Blanket Model for Fusion Reactor System Codes, F. Franza and L. V. Boccaccini, Karlsruhe Institute of Technology, January 2013; EFDA_D_2LKMCT, v1.0 (Appendix 2))

It appears 14 times in the code. I have looked at Fabrizio's PhD thesis and his paper 'MIRA: a multi-physics approach to designing a fusion power plant', and I can't find the data that's used in PROCESS in either.

Hi @js0164 Georgie - do you have thoughts on this?

jonmaddock commented 1 year ago

In GitLab by @kj5248 on Jan 12, 2023, 14:05

2PBDRG replaced with book that was referenced: "STRESS-INTENSITY FACTOR EQUATIONS FOR CRACKS IN THREE-DIMENSIONAL FINITE BODIES SUBJECTED TO TENSION AND BENDING LOADS"

jonmaddock commented 1 year ago

In GitLab by @kj5248 on Jan 12, 2023, 14:07

2JNFUP replaced with I. E. Idel'Cik book (link to online pdf given)

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 12, 2023, 14:40

2MBSE3
This report gives an assessment of the load on the vacuum vessel due to a fast discharge of the TF coils. It relies on results from two other EUROfusion reports: 2M5H73 and 2MD8RZ. I can't find the same data in the published literature.

If worst came to worst we could remove this model.

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 12, 2023, 14:43

2MUP64
This isn't used in the code at all. It is just mentioned in the utilities-guide.md :
This is a very simple shell script to create all the relevant files for the PROCESS Runs database on the EUROfusion IDM (https://idm.euro-fusion.org/?uid=2MUP64).

No action required.

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 12, 2023, 14:49

2M94N2
This is also not used in the code at all. It is just mentioned in the utilities-guide.md. This refers to the following text:

This program evaluates the uncertainties of a single PROCESS design point by use of Monte Carlo method as described in4.

and the reference is

"Report on the Systems Code Activities by CCFE in 2014", R. Kemp, H. Lux, J. Morris, M. Kovari, P. Knight et al., EuroFusion Report EFDA D 2M94N2 v1.0 - PMI-7.1-2, December 2014 https://idm.euro-fusion.org/?uid=2M94N2&version=v1.0&action=get_document :leftwards_arrow_with_hook:

This work was all done at UKAEA and I don't think there should be any problem.

jonmaddock commented 1 year ago

In GitLab by @js0164 on Jan 12, 2023, 14:54

Yes, I agree we can just remove this comment as the efficiency isn't being used and blkttype has been replaced by iblanket (apart from in costs_step and stellertor).

jonmaddock commented 1 year ago

In GitLab by @kj5248 on Jan 12, 2023, 15:00

For 2M94N2 it is also used for the value of 'no_allowed_unfeasible' which is 2 in utilities.md but that value is used in the code unreferenced so it should probably have an open source reference. Couldn't find this value in any of H. Lux's papers on uncertainty quantification though

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 12, 2023, 15:10

2MSZ4T

This was the basis for Issue #413. However, the approach proposed in the issue (and in Issue #1405) turns out to be problematic (see the first comment in #1405).

As far as I can see, Issue #1405 does not mention any EUROfusion documents, so if we do want a pedestal model we can use this. Alternatively we could go to the literature - see 'Pedestal structure, stability and scalings in JET-ILW: the EUROfusion JET-ILW pedestal database', L Frassinetti, S Saarelma et al, for example. (See #1816)

Action: Remove the pedestal scaling model.
@jonmaddock @kj5248

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 12, 2023, 15:14

Here the simple solution is to remove the reference. We don't need a reference for the number 2.

jonmaddock commented 1 year ago

In GitLab by @mkovari on Jan 12, 2023, 16:04

2L8QVN
T. Hartmann and H. Zohm, 'Towards a Physics Design Guidelines for a DEMO Tokamak', EFDA Report 2L8QVN, March 2012

This is given as the reference for this:

Self-consistency between the plasma current profile parameters 3 can be enforced by setting switch iprofile to 1. This ensures that the current profile peaking factor alphaj is consistent with the input values for the safety factor on axis and at the plasma edge (q0 and q, respectively), the plasma internal inductance li is consistent with this alphaj, and the beta g coefficient dnbeta scales with li.

However, if I search for iprofile == 1, I find only this:

    if (iprofile == 1) then
       alphaj = qstar/q0 - 1.0D0
       rli = log(1.65D0 + 0.89D0*alphaj)  !  Tokamaks 4th Edition, Wesson, page 116
    end if

The second equation has Wesson as the reference.

The first equation is in 2L8QVN (p. 12), but is obviously standard in the field.

The scaling of the beta g coefficient is in the PROCESS physics paper.
image

I suggest you just remove the reference from documentation/proc-pages/physics-models/error.txt and plasma.md.

jonmaddock commented 1 year ago

In GitLab by @kj5248 on Feb 22, 2023, 16:30

Here is the part of physics routine with the eurofusion report (I've added the reference code and not pushed up commit with it yet). Not sure whether this applies to just the commented part or the entire physics function. @mkovari

def physics(self):
        """
        Routine to calculate tokamak plasma physics information
        author: P J Knight, CCFE, Culham Science Centre
        None
        This routine calculates all the primary plasma physics
        DEMO Tokamak' Document, March 2012, EFDA Report (2L8QVN) (#1759)
        """
        # kappaa_IPB = physics_variables.vol / (
        #     2.0e0
        #     * numpy.pi
        #     * numpy.pi
        #     * physics_variables.rminor
        #     * physics_variables.rminor
        #     * physics_variables.rmajor
        # )
jonmaddock commented 1 year ago

In GitLab by @mkovari on Feb 23, 2023, 08:54

I am reluctant to go through every line of this function to see where it comes from. I would bet a considerable amount of money that everything here can be found in at least one of the following published references:

“PROCESS”: A systems code for fusion power plants—Part 1: Physics , M. Kovari, R. Kemp, H. Lux, P. Knight, J. Morris, D.J. Ward
Fusion Engineering and Design 89 (2014) 3054–3069

Development of a modular systems code to analyse the implications of physics assumptions on the design of a demonstration fusion power plant, Hartmann, Tobias

On the physics guidelines for a tokamak DEMO H. Zohm et al, Nucl. Fusion 53 (2013) 073019

Do you think this is sufficient?
@jmorris-uk @kj5248

jonmaddock commented 1 year ago

@kj5248 is happy this is satisfied.

jonmaddock commented 1 year ago

In GitLab by @ajpearcey on Mar 30, 2023, 15:17

@mcoleman is the VV stress calculation published anywhere?

jonmaddock commented 1 year ago

In GitLab by @ajpearcey on Mar 30, 2023, 15:20

check all occurrences of #1759 physics.f90 @mkovari

jonmaddock commented 1 year ago

In GitLab by @mkovari on Apr 3, 2023, 16:32

This turns out to be a problem. See #1822.

jonmaddock commented 1 year ago

In GitLab by @ajpearcey on Apr 26, 2023, 14:19

I've noticed #https://idm.euro-fusion.org/?uid=2MFLQE is referenced in the CS fatigue model. I believe this is easily switch for a published reference. I will update this.

jonmaddock commented 1 year ago

closed via merge request !833

jonmaddock commented 1 year ago

mentioned in commit 654bd3dccdfeb4dc39e4a34b56d02e64b020ff70