From 669a93a9fc071c12246c66a5a3e4a9f2be20bcf2 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Tue, 10 Sep 2024 14:40:47 +0100 Subject: [PATCH 01/11] Updated vgap and vgap2 names, replaced everywhere --- .gitignore | 1 + .../proc-pages/eng-models/machine-build.md | 40 +- mfile_to_in.py | 409 ++++++ prep_sol_for_uq.ipynb | 485 ++++++++ process/build.py | 70 +- process/buildings.py | 6 +- process/divertor.py | 16 +- process/io/mfile_comparison.py | 4 +- process/io/plot_proc.py | 8 +- process/sctfcoil.py | 2 +- process/utilities/errorlist.json | 4 +- source/fortran/blanket_library.f90 | 8 +- source/fortran/build_variables.f90 | 10 +- source/fortran/initial.f90 | 4 +- source/fortran/input.f90 | 12 +- tests/integration/ref_dicts.json | 22 +- .../input_files/large_tokamak.MFILE.DAT.json | 1091 +++++++++++++++++ .../input_files/st_regression.IN.DAT | 4 +- .../regression/input_files/stellarator.IN.DAT | 2 +- tests/unit/test_divertor.py | 4 +- tests/unit/test_sctfcoil.py | 2 +- 21 files changed, 2095 insertions(+), 109 deletions(-) create mode 100644 mfile_to_in.py create mode 100644 prep_sol_for_uq.ipynb create mode 100644 tests/regression/input_files/large_tokamak.MFILE.DAT.json diff --git a/.gitignore b/.gitignore index 500bbd8a46..61747066b1 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,4 @@ python_modules.txt quench_data.DAT env-fork *SIG_TF.json +venvprocess/ \ No newline at end of file diff --git a/documentation/proc-pages/eng-models/machine-build.md b/documentation/proc-pages/eng-models/machine-build.md index eae9147491..f96589e072 100644 --- a/documentation/proc-pages/eng-models/machine-build.md +++ b/documentation/proc-pages/eng-models/machine-build.md @@ -1,20 +1,20 @@ # Radial and Vertical Build -Simplified scale diagrams of the vertical and horizontal cross-sections of the machine can be +Simplified scale diagrams of the vertical and horizontal cross-sections of the machine can be output in the `2-page summary` using the utility `plot_proc.py` (currently stored in `process/process/io`). -The coordinate system is $(R,Z)$ system, where $R$ is the radial distance from the vertical +The coordinate system is $(R,Z)$ system, where $R$ is the radial distance from the vertical centreline (axis) of the torus, and $Z$ is the vertical distance from the equatorial midplane. -Components are often referred to as being 'inboard' or 'outboard', which simply -means that they lie at a radius $R$ less than or greater than $R_0$, -respectively, where $R_0$ is the plasma major radius (`rmajor`). +Components are often referred to as being 'inboard' or 'outboard', which simply +means that they lie at a radius $R$ less than or greater than $R_0$, +respectively, where $R_0$ is the plasma major radius (`rmajor`). -The radial build is described in detail in the OUT.DAT file as in the example below, which lists -the major radius of each component in the midplane. The machine is axisymmetric, except for the -TF coils which are discrete. The variables marked "IP" below are input variables. Those marked -"ITV" are available as iteration variables (although it is not always advisable to use them as -iteration variables). Those marked with an asterisk (*) may or may not be input variables +The radial build is described in detail in the OUT.DAT file as in the example below, which lists +the major radius of each component in the midplane. The machine is axisymmetric, except for the +TF coils which are discrete. The variables marked "IP" below are input variables. Those marked +"ITV" are available as iteration variables (although it is not always advisable to use them as +iteration variables). Those marked with an asterisk (*) may or may not be input variables depending on the switches used. ```text @@ -52,10 +52,10 @@ The radial build is shown schematically below (click to zoom). Radial build -The vertical build is described in detail in the OUT.DAT as in the following example, which lists -the vertical coordinate of each component at the point furthest from the midplane (excluding the -CS, the other PF coils and the cryostat). The midplane is defined to be half way between the top -and bottom of the plasma. A single-null scenario is assumed to have a lower divertor, in which +The vertical build is described in detail in the OUT.DAT as in the following example, which lists +the vertical coordinate of each component at the point furthest from the midplane (excluding the +CS, the other PF coils and the cryostat). The midplane is defined to be half way between the top +and bottom of the plasma. A single-null scenario is assumed to have a lower divertor, in which case the machine is not symmetric about the midplane. ```text @@ -66,7 +66,7 @@ case the machine is not symmetric about the midplane. TF coil 1.576 9.862 (tfcth) Gap 0.050 8.286 (tftsgap) Thermal shield 0.050 8.236 (thshield) - Gap 0.050 8.186 (vgap2) + Gap 0.050 8.186 (vgap_vv_thermalshield) Vacuum vessel (and shielding) 0.600 8.136 (d_vv_top+shldtth) Gap 0.020 7.536 (vvblgap) Top blanket 0.869 7.516 (blnktth) @@ -78,7 +78,7 @@ case the machine is not symmetric about the midplane. Lower scrape-off 2.002 -8.031 (vgap) Divertor structure 0.621 -8.652 (divfix) Vacuum vessel (and shielding) 1.000 -9.652 (d_vv_bot+shldlth) - Gap 0.050 -9.702 (vgap2) + Gap 0.050 -9.702 (vgap_vv_thermalshield) Thermal shield 0.050 -9.752 (thshield) Gap 0.050 -9.802 (tftsgap) TF coil 1.576 -11.379 (tfcth) @@ -89,14 +89,14 @@ The vertical build is shown schematically below (click to zoom). Vertical build -Since PROCESS is essentially a 0-D code, the shape of each component is used to estimate its mass -and cost, but is not used otherwise. The first wall, blanket, shield and vacuum vessel may be -either D-shaped in cross-section, or each may be defined by two half-ellipses. The choice between +Since PROCESS is essentially a 0-D code, the shape of each component is used to estimate its mass +and cost, but is not used otherwise. The first wall, blanket, shield and vacuum vessel may be +either D-shaped in cross-section, or each may be defined by two half-ellipses. The choice between these two possibilities is set using input parameter `fwbsshape`, which should be - 1 for D-shaped, - 2 for ellipses. !!! Info "TF coil placement" - The radial build can vary from the figures above dependant on the placement of the inboard TF + The radial build can vary from the figures above dependant on the placement of the inboard TF coil leg when using the `tf_in_cs` switch. See [TF coil page](tf-coil.md)** diff --git a/mfile_to_in.py b/mfile_to_in.py new file mode 100644 index 0000000000..2dd880cfae --- /dev/null +++ b/mfile_to_in.py @@ -0,0 +1,409 @@ +"""Convert an output mfile to an input file. + +Take the optimisation parameter solution vector from the output mfile and +use it as the initial optimisation parameter vector in a new input file. +""" + +from process.io.mfile import MFile +from process.io.in_dat import InDat +from pathlib import Path +from typing import Optional, Sequence +import re +from shutil import copy + + +"""Unfortunately, f-values have to be detected in two ways. This is because +they are enabled as: +ixc = 23 * fdene +or just +ixc = 23 +to enable the f-value as an optimisation parameter, and +fdene = 1.2 +to set the value. + +When disabling the f-value as an opt param, the number has to +be used as the presence of the comment can't be relied on. + +When ignoring the solution value of an f-value opt param, as the inital point +value is desired instead, the name of the f-value variable must be used. This +is because the itvarxxx number has no relation to the opt param number, and can't +be used for identification. + +Therefore the numbers are recognised in an f-value opt param number list, but +the f-value names are recognised by finding variables beginning with f, then +ignoring ones that are known not to be f-values. +""" + +# List of optimisation param numbers that are f-values +F_VALUE_OPT_PARAM_NUMBERS = [ + 9, + 14, + 15, + 21, + 25, + 26, + 27, + 28, + 30, + 32, + 33, + 34, + 35, + 36, + 38, + 39, + 40, + 45, + 46, + 48, + 49, + 50, + 51, + 53, + 54, + 62, + 63, + 64, + 66, + 67, + 68, + 71, + 72, + 79, + 86, + 89, + 92, + 95, + 96, + 97, + 103, + 104, + 105, + 106, + 107, + 110, + 111, + 112, + 113, + 115, + 116, + 117, + 118, + 123, + 137, + 141, + 143, + 144, + 146, + 147, + 149, + 153, + 154, + 157, + 159, + 160, + 161, + 164, + 165, + 166, + 167, + 168, +] + +# Optimisation parameters that start with f, but are not f-values +STARTS_WITH_F_BUT_NOT_F_VALUE_NAMES = [ + "fcohbop", + "fvsbrnni", + "feffcd", + "fcutfsu", + "fimp", + "fgwped", + "fwcoolant", + "fwinlet", + "fwoutlet", + "fw_channel_length", + "fgwsep", + "ftar", + "f_vforce_inboard", + "fseppc", + "fwbsshape", + "fw_armour_thickness", + "fw_wall", + "fcontng", + "fkind", +] + + +def convert( + original_in_name: str, + new_in_name: str, + no_optimisation: Optional[bool] = True, + n_equalities: Optional[int] = None, + mfile_name: Optional[str] = None, + remove_f_value_inits: Optional[bool] = False, +) -> Path: + """Convert input file to a modified new one. + + If input file and n_equalities provided, just convert input to inequalities. + If mfile is provided, copy solution vector to new input file. + + Parameters + ---------- + original_in_name : str + the IN.DAT used to create the MFILE.DAT solution + new_in_name : str + modified input file to be created + no_optimisation : Optional[bool], optional + convert IN.DAT to non-optimising run, by default True + n_equalities : Optional[int], optional + how many of the constraints to make equalities. The first n_equalities + constraints will be left as equalities, the rest converted to + inequalities, by default None + mfile_name : Optional[str], optional + if mfile supplied, extract solution vector into new input file, by + default None + remove_f_value_inits : Optional[bool], optional + remove f-value initialisations, e.g. `fthresh = 0.8`, by default False + + Returns + ------- + Path + path to solution input file + """ + # Create new input file, optionally overwriting with solution vector + if mfile_name: + # Extract solution vector from mfile, copy into new input file + sol_in_dat_path = overwrite_sol_vector( + mfile_name=mfile_name, + original_in_name=original_in_name, + new_in_name=new_in_name, + ) + else: + # Just copy original input to new path + sol_in_dat_path = copy(original_in_name, new_in_name) + + # Additional modifications to top of input file + top_content = [] + if no_optimisation: + top_content.extend(["* Once through only: no optimisation", "ioptimz = -2"]) + + if n_equalities is not None: + # Write neqns count + top_content.extend( + [ + "* Define number of equality constraints, and", + "* use inequality constraints: corresponding f-values removed", + f"neqns = {n_equalities}", + ] + ) + + new_content = [line + "\n" for line in top_content] + + # Write top and main content, removing f-values if necessary + with open(sol_in_dat_path, "r") as f: + content = f.readlines() + + if n_equalities: + # Remove all f-values as opt params + main_content = remove_f_values(content, remove_f_value_inits) + else: + main_content = content + + new_content.extend(main_content) + + with open(sol_in_dat_path, "w") as f: + f.writelines(new_content) + + return sol_in_dat_path + + +def overwrite_sol_vector( + mfile_name: str, original_in_name: str, new_in_name: str +) -> Path: + """Extract solution vector from mfile, copy into new input file. + + Parameters + ---------- + mfile_name : str + output containing solution vector + original_in_name : str + original input file + new_in_name : str + input file with initial optimisation parameter vector overwritten with + the solution vector + + Returns + ------- + Path + path to new solution vector input file + """ + # Pattern for single array element, e.g. fimp(13) + array_el_re = re.compile(r"(\w+)\((\d+)\)") + + # First, extract the solution (optimisation parameters) from the mfile + # Create Mfile object from mfile + mfile_path = Path(mfile_name) + mfile = MFile(mfile_path) + + # Get number of optimisation parameters + n = int(mfile.data["nvar"].get_scan(-1)) + + # Get all n optimisation parameter names and values from "itvarxxx" number + opt_params = {} + for i in range(n): + opt_param_no = f"itvar{i+1:03}" + param_name = mfile.data[opt_param_no].var_description + param_value = mfile.data[opt_param_no].get_scan(-1) + opt_params[param_name] = param_value + + # Now overwrite the original input file with the solution as the initial + # optimisation parameters + # Read in original IN.DAT + in_dat_path = Path(original_in_name) + in_dat = InDat(in_dat_path) + + # Discard optimisation parameter f-value values at solution + # Retain initial values of f-values as in input file + dropped_sol_f_value_count = 0 + + # Change to the new optimisation parameter values + for var_name, value in opt_params.items(): + # Check for f-values + if var_name.startswith("f"): + # Get part before ( (in case var is array) + var_name_fmt = var_name.split("(")[0] + if var_name_fmt not in STARTS_WITH_F_BUT_NOT_F_VALUE_NAMES: + # Opt param is probably an f-value: don't overwrite IN.DAT with + # solution value of f-value + # Debug + # print(f"Dropping sol value for f-value {var_name}") + dropped_sol_f_value_count += 1 + continue + + # Otherwise update new IN.DAT value with solution value + matches = array_el_re.match(var_name) + if matches is not None: + # Found a single array element e.g. fimp(13) + array_name = matches.group(1) + array_index = matches.group(2) + py_array_index = int(array_index) - 1 + + in_dat.change_array( + array_name=array_name, array_index=py_array_index, array_value=value + ) + else: + # Set individual parameter + in_dat.add_parameter(var_name, value) + + print(f"Optimisation parameter f-values ignored = {dropped_sol_f_value_count}") + + # Write out new IN.DAT, with optimisation parameters set to original + # solution vector + sol_in_dat_path = Path(new_in_name) + in_dat.write_in_dat(sol_in_dat_path) + return sol_in_dat_path + + +def remove_f_values( + lines_with_f_values: Sequence[str], remove_f_value_inits: bool +) -> list[str]: + """Remove f-value optimisation parameters from input file lines. + + Removes `ixc = 23 * fthresh` line if opt param 23 is f-value. + Optionally removes f-value value initialisations `fthresh = 0.8`. + + Parameters + ---------- + lines_with_f_values : Sequence[str] + lines from original input file + remove_f_value_inits : bool + remove f-value initialisations, e.g. `fthresh = 0.8` + + Returns + ------- + list[str] + lines with f-value optimisation parameters removed + """ + # f-value opt params removed (ixc = 23 * fdene) + f_value_removal_count = 0 + # f-value initialisations removed (fthresh = 0.8) + f_value_init_removal_count = 0 + # Lines that will be included in new IN.DAT + lines_without_f_values = [] + # Opt params beginning with f that aren't on the ignore list + suspect_opt_params_beginning_with_f = [] + + # Read each line searching for optimisation parameter numbers, e.g. ixc = 23 + # Don't also search for comment (e.g. ixc = 23 * fdene) as it may not be there: + # Just look for opt param number + opt_param_re = re.compile(r"ixc\s*=\s*(\d+)") + + # If not already found in the f-value opt param number list, attempt to + # find any opt params starting with f (depends on "*" comment) + opt_param_beginning_with_f_re = re.compile(r"ixc\s*=\s*(\d+)\s*\*\s*(f\w+)") + + # Any line starting with f (could be f-value value definition) + possible_f_value_init = re.compile(r"^(f\w+)\s*=\s*(\d*\.?\d*)") + + for line in lines_with_f_values: + # Search for known opt param numbers that are f-values + # e.g. icx = 23 + matches = opt_param_re.match(line) + if matches is not None: + # Found an opt param line + opt_param_number = matches.group(1) + if int(opt_param_number) in F_VALUE_OPT_PARAM_NUMBERS: + # Found an f-value: drop the line + line_fmt = line.removesuffix("\n") + # Debug + # print(f'Removing "{line_fmt}"') + f_value_removal_count += 1 + continue + + # Check if line contains opt param beginning with an f: + # Not known f-value (would be in numbers list), but suspicious as could be + # e.g. ixc = 23 * fdene + matches = opt_param_beginning_with_f_re.match(line) + if matches is not None: + # Check name not on known "not an f-value" list + if matches.group(2) not in STARTS_WITH_F_BUT_NOT_F_VALUE_NAMES: + # Opt param, starts with f, not known as a "non-f-value" var + # Could be an f-value + suspect_opt_params_beginning_with_f.append(line) + + # Optionally, remove any f-value initialisations + # e.g. `fthresh = 0.8` + if remove_f_value_inits: + matches = possible_f_value_init.match(line) + if matches is not None: + if matches.group(1) not in STARTS_WITH_F_BUT_NOT_F_VALUE_NAMES: + # Found possible f-value initialisation: check if >1.0 + if float(matches.group(2)) <= 1.0: + # Drop the line + print( + f"Removing f-value initialisation for {matches.group(1)} = {matches.group(2)}" + ) + f_value_init_removal_count += 1 + continue + else: + # Keep the f-value if >1.0: relaxes inequality constraint beyond min or max + print( + f"Keeping f-value initialisation for {matches.group(1)} = {matches.group(2)}" + ) + + # Non f-value opt param, (optionally not) f-value initialisation or other + # line: keep + lines_without_f_values.append(line) + + # Print out potential f-value vars if any + if len(suspect_opt_params_beginning_with_f) > 0: + raise ValueError( + f"Suspect opt params to check aren't f-values: {suspect_opt_params_beginning_with_f}" + ) + else: + print(f"f-values removed as optimisation parameters = {f_value_removal_count}") + + if remove_f_value_inits: + print(f"f-value initialisations removed = {f_value_init_removal_count}") + + return lines_without_f_values diff --git a/prep_sol_for_uq.ipynb b/prep_sol_for_uq.ipynb new file mode 100644 index 0000000000..57c7ddd658 --- /dev/null +++ b/prep_sol_for_uq.ipynb @@ -0,0 +1,485 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Prepare Process Solution for UQ\n", + "\n", + "Convert IN.DAT to inequality problem then run it. Take the solution vector from the MFILE.DAT and copy it back into the original inequality IN.DAT, but make it a \"once-through\" (non-optimising) input. This input file is then prepared for UQ at the solution vector." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "from mfile_to_in import convert\n", + "import subprocess" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Convert original input file to inequalities\n", + "\n", + "Take original large tokamak IN.DAT (`lt_orig_IN.DAT`). Convert it to an inequalities input file (`lt_IN.DAT`), maintaining any f-value initialisations.\n", + "\n", + "This isn't required if input file is already an inequalities file." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "original_in_name = \"/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_IN.DAT\"\n", + "ineqs_in_name = \"/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_IN.DAT\"" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Keeping f-value initialisation for fracture_toughness = 150.0\n", + "Removing f-value initialisation for fbetatry = 0.45845305287829197\n", + "Keeping f-value initialisation for fdene = 1.2\n", + "Removing f-value initialisation for ffuspow = 1\n", + "Removing f-value initialisation for fiooic = 0.733862251259087\n", + "Removing f-value initialisation for fjohc = 0.6154408322072109\n", + "Removing f-value initialisation for fjohc0 = 0.5681989768281468\n", + "Removing f-value initialisation for fjprot = 1.0\n", + "Keeping f-value initialisation for flhthresh = 1.4999999999999998\n", + "Removing f-value initialisation for fncycle = 1.0\n", + "Removing f-value initialisation for foh_stress = 0.5470684327421722\n", + "Removing f-value initialisation for fpeakb = 1.0\n", + "Removing f-value initialisation for fpinj = 1.0\n", + "Removing f-value initialisation for fpnetel = 1.0\n", + "Removing f-value initialisation for fpsepbqar = 0.8747519334818635\n", + "Removing f-value initialisation for fstrcase = 1.0\n", + "Removing f-value initialisation for fstrcond = 0.7987626453167929\n", + "Removing f-value initialisation for fmaxvvstress = 0.31721023709510027\n", + "Removing f-value initialisation for ftburn = 1.0\n", + "Removing f-value initialisation for ftmargoh = 1.0\n", + "Removing f-value initialisation for ftmargtf = 1.0\n", + "Removing f-value initialisation for fvdump = 1.0\n", + "Removing f-value initialisation for fwalld = 0.13500089604305868\n", + "Removing f-value initialisation for ftaulimit = 0.8924182657580688\n", + "Keeping f-value initialisation for fcap0 = 1.15\n", + "Keeping f-value initialisation for fcap0cp = 1.06\n", + "Removing f-value initialisation for fcr0 = 0.065\n", + "Removing f-value initialisation for fcuohsu = 0.70\n", + "Keeping f-value initialisation for fkzohm = 1.0245\n", + "Removing f-value initialisation for fne0 = 0.5963799216271634\n", + "f-values removed as optimisation parameters = 20\n", + "f-value initialisations removed = 24\n" + ] + }, + { + "data": { + "text/plain": [ + "'/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_IN.DAT'" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "convert(\n", + " original_in_name=original_in_name,\n", + " new_in_name=ineqs_in_name,\n", + " no_optimisation=False,\n", + " n_equalities=3,\n", + " remove_f_value_inits=True, # this might want to be the default\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now run with VMCON. Result is inequality-solved solution." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The IN.DAT file does not contain any obsolete variables.\n", + " \n", + " **************************************************************************************************************\n", + " ************************************************** PROCESS ***************************************************\n", + " ************************************** Power Reactor Optimisation Code ***************************************\n", + " **************************************************************************************************************\n", + " \n", + " Program :\n", + " Version : 3.1.0 Release Date :: 2024-03-21\n", + " Tag No. : v3.1.0-139-g627861e code contains untracked changes\n", + " Warning in routine OCMMNT :\n", + " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", + "This is longer than 110 columns.\n", + " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", + " Git log : Don|t allow MFile comparison with an error3 MFile ([hash]3179)\n", + " Date/time : 9 Sep 2024 20:49:00 +01:00(hh:mm) UTC\n", + " User : graeme\n", + " Computer : graeme\n", + " Directory : /home/graeme/process-gh/process\n", + " Input : /home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_IN.DAT\n", + " Run title : eu-demo 2018 baseline\n", + " Run type : Reactor concept design: Pulsed tokamak model, (c) CCFE\n", + " \n", + " **************************************************************************************************************\n", + " \n", + " Equality constraints : 03\n", + " Inequality constraints : 22\n", + " Total constraints : 25\n", + " Iteration variables : 19\n", + " Max iterations : ***\n", + " Figure of merit : +01 -- minimise major radius\n", + " Convergence parameter : 1.00E-08\n", + " \n", + " **************************************************************************************************************\n", + " Warning in routine OCMMNT :\n", + " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", + "This is longer than 110 columns.\n", + "78 | Convergence Parameter: 1.022E+00\r" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/graeme/process-gh/process/process/sctfcoil.py:3471: RuntimeWarning: invalid value encountered in sqrt\n", + " sctfcoil_module.t_cable = numpy.sqrt(\n", + "process.sctfcoil - WARNING - Negative Iop/Icrit for TF coil\n", + " jsc: -625108623.6248327\n", + " iooic: -0.24467635364401158\n", + " j_crit_sc: 2554838725.994445\n", + " Check conductor dimensions. Cable space area acs likely gone negative. acs: -0.0005508737513930539\n", + " This is likely because t_cable_radial or t_cable_toroidal has gone negative:\n", + " t_cable_radial: -0.004791908399383562\n", + " t_cable_toroidal: 0.10815747369277497\n", + " \n", + "Traceback (most recent call last):\n", + " File \"/home/graeme/process-gh/process/venvprocess/bin/process\", line 33, in \n", + " sys.exit(load_entry_point('process', 'console_scripts', 'process')())\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 652, in main\n", + " Process(args)\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 126, in __init__\n", + " self.run_mode()\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 203, in run_mode\n", + " self.run.run()\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 361, in run\n", + " self.run_scan(self.solver)\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 464, in run_scan\n", + " self.scan = Scan(self.models, solver)\n", + " File \"/home/graeme/process-gh/process/process/scan.py\", line 22, in __init__\n", + " self.run_scan()\n", + " File \"/home/graeme/process-gh/process/process/scan.py\", line 36, in run_scan\n", + " ifail = self.doopt()\n", + " File \"/home/graeme/process-gh/process/process/scan.py\", line 57, in doopt\n", + " ifail = self.optimiser.run()\n", + " File \"/home/graeme/process-gh/process/process/optimiser.py\", line 54, in run\n", + " ifail = self.solver.solve()\n", + " File \"/home/graeme/process-gh/process/process/solver.py\", line 213, in solve\n", + " x, _, _, res = solve(\n", + " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/pyvmcon/vmcon.py\", line 179, in solve\n", + " alpha, mu_equality, mu_inequality, new_result = perform_linesearch(\n", + " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/pyvmcon/vmcon.py\", line 390, in perform_linesearch\n", + " result_at_1 = problem(x_jm1 + delta)\n", + " File \"/home/graeme/process-gh/process/process/solver.py\", line 132, in __call__\n", + " objf, conf = self._evaluator.fcnvmc1(n, self.total_constraints, x, 0)\n", + " File \"/home/graeme/process-gh/process/process/evaluators.py\", line 53, in fcnvmc1\n", + " objf, conf = self.caller.call_models(xv, m)\n", + " File \"/home/graeme/process-gh/process/process/caller.py\", line 65, in call_models\n", + " self._call_models_once(xc)\n", + " File \"/home/graeme/process-gh/process/process/caller.py\", line 226, in _call_models_once\n", + " self.models.sctfcoil.run(output=False)\n", + " File \"/home/graeme/process-gh/process/process/sctfcoil.py\", line 66, in run\n", + " ) = self.supercon(\n", + " File \"/home/graeme/process-gh/process/process/sctfcoil.py\", line 862, in supercon\n", + " t_zero_margin, root_result = optimize.newton(\n", + " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/scipy/optimize/_zeros_py.py\", line 391, in newton\n", + " raise RuntimeError(msg)\n", + "RuntimeError: Failed to converge after 50 iterations, value is 12.353664475222791.\n" + ] + }, + { + "data": { + "text/plain": [ + "CompletedProcess(args=['process', '-i', '/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_IN.DAT'], returncode=1)" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subprocess.run([\"process\", \"-i\", ineqs_in_name])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "rm: cannot remove '*SIG_TF.json': No such file or directory\n", + "rm: cannot remove '*OUT.DAT': No such file or directory\n" + ] + }, + { + "data": { + "text/plain": [ + "CompletedProcess(args='rm *SIG_TF.json *OUT.DAT', returncode=1)" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Remove unwanted outputs\n", + "subprocess.run(\"rm *SIG_TF.json *OUT.DAT\", shell=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "\n", + "## Create once-through input file from solution point for UQ studies\n", + "\n", + "Use the solution vector to create a once-through (non-optimising) input file for UQ studies." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Key 'nvar' not in MFILE. KeyError! Check MFILE\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Optimisation parameter f-values ignored = 0\n", + "f-values removed as optimisation parameters = 0\n" + ] + }, + { + "data": { + "text/plain": [ + "PosixPath('/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_sol_IN.DAT')" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "input_name_stem = ineqs_in_name.split(\"_IN.DAT\")[0]\n", + "mfile_name = input_name_stem + \"_MFILE.DAT\"\n", + "sol_in_name = input_name_stem + \"_sol_IN.DAT\"\n", + "\n", + "convert(\n", + " original_in_name=ineqs_in_name,\n", + " mfile_name=mfile_name,\n", + " new_in_name=sol_in_name,\n", + " no_optimisation=True,\n", + " n_equalities=3,\n", + " remove_f_value_inits=False,\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Optionally run the solution vector once-through IN.DAT." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The IN.DAT file does not contain any obsolete variables.\n", + " \n", + " **************************************************************************************************************\n", + " ************************************************** PROCESS ***************************************************\n", + " ************************************** Power Reactor Optimisation Code ***************************************\n", + " **************************************************************************************************************\n", + " \n", + " Program :\n", + " Version : 3.1.0 Release Date :: 2024-03-21\n", + " Tag No. : v3.1.0-139-g627861e code contains untracked changes\n", + " Warning in routine OCMMNT :\n", + " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", + "This is longer than 110 columns.\n", + " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", + " Git log : Don|t allow MFile comparison with an error3 MFile ([hash]3179)\n", + " Date/time : 10 Sep 2024 8:01:36 +01:00(hh:mm) UTC\n", + " User : graeme\n", + " Computer : graeme\n", + " Directory : /home/graeme/process-gh/process\n", + " Input : /home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_sol_IN.DAT\n", + " Run title : eu-demo 2018 baseline\n", + " Run type : Reactor concept design: Pulsed tokamak model, (c) CCFE\n", + " \n", + " **************************************************************************************************************\n", + " \n", + " Equality constraints : 03\n", + " Inequality constraints : 22\n", + " Total constraints : 25\n", + " Iteration variables : 19\n", + " Max iterations : ***\n", + " Figure of merit : +01 -- minimise major radius\n", + " Convergence parameter : 1.00E-08\n", + " \n", + " **************************************************************************************************************\n", + " Warning in routine OCMMNT :\n", + " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", + "This is longer than 110 columns.\n", + "78 | Convergence Parameter: 1.022E+00\r" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/home/graeme/process-gh/process/process/sctfcoil.py:3471: RuntimeWarning: invalid value encountered in sqrt\n", + " sctfcoil_module.t_cable = numpy.sqrt(\n", + "process.sctfcoil - WARNING - Negative Iop/Icrit for TF coil\n", + " jsc: -625108623.6248327\n", + " iooic: -0.24467635364401158\n", + " j_crit_sc: 2554838725.994445\n", + " Check conductor dimensions. Cable space area acs likely gone negative. acs: -0.0005508737513930539\n", + " This is likely because t_cable_radial or t_cable_toroidal has gone negative:\n", + " t_cable_radial: -0.004791908399383562\n", + " t_cable_toroidal: 0.10815747369277497\n", + " \n", + "Traceback (most recent call last):\n", + " File \"/home/graeme/process-gh/process/venvprocess/bin/process\", line 33, in \n", + " sys.exit(load_entry_point('process', 'console_scripts', 'process')())\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 652, in main\n", + " Process(args)\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 126, in __init__\n", + " self.run_mode()\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 203, in run_mode\n", + " self.run.run()\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 361, in run\n", + " self.run_scan(self.solver)\n", + " File \"/home/graeme/process-gh/process/process/main.py\", line 464, in run_scan\n", + " self.scan = Scan(self.models, solver)\n", + " File \"/home/graeme/process-gh/process/process/scan.py\", line 22, in __init__\n", + " self.run_scan()\n", + " File \"/home/graeme/process-gh/process/process/scan.py\", line 36, in run_scan\n", + " ifail = self.doopt()\n", + " File \"/home/graeme/process-gh/process/process/scan.py\", line 57, in doopt\n", + " ifail = self.optimiser.run()\n", + " File \"/home/graeme/process-gh/process/process/optimiser.py\", line 54, in run\n", + " ifail = self.solver.solve()\n", + " File \"/home/graeme/process-gh/process/process/solver.py\", line 213, in solve\n", + " x, _, _, res = solve(\n", + " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/pyvmcon/vmcon.py\", line 179, in solve\n", + " alpha, mu_equality, mu_inequality, new_result = perform_linesearch(\n", + " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/pyvmcon/vmcon.py\", line 390, in perform_linesearch\n", + " result_at_1 = problem(x_jm1 + delta)\n", + " File \"/home/graeme/process-gh/process/process/solver.py\", line 132, in __call__\n", + " objf, conf = self._evaluator.fcnvmc1(n, self.total_constraints, x, 0)\n", + " File \"/home/graeme/process-gh/process/process/evaluators.py\", line 53, in fcnvmc1\n", + " objf, conf = self.caller.call_models(xv, m)\n", + " File \"/home/graeme/process-gh/process/process/caller.py\", line 65, in call_models\n", + " self._call_models_once(xc)\n", + " File \"/home/graeme/process-gh/process/process/caller.py\", line 226, in _call_models_once\n", + " self.models.sctfcoil.run(output=False)\n", + " File \"/home/graeme/process-gh/process/process/sctfcoil.py\", line 66, in run\n", + " ) = self.supercon(\n", + " File \"/home/graeme/process-gh/process/process/sctfcoil.py\", line 862, in supercon\n", + " t_zero_margin, root_result = optimize.newton(\n", + " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/scipy/optimize/_zeros_py.py\", line 391, in newton\n", + " raise RuntimeError(msg)\n", + "RuntimeError: Failed to converge after 50 iterations, value is 12.353664475222791.\n", + "rm: cannot remove '*SIG_TF.json': No such file or directory\n", + "rm: cannot remove '*OUT.DAT': No such file or directory\n" + ] + }, + { + "data": { + "text/plain": [ + "CompletedProcess(args='rm *SIG_TF.json *OUT.DAT', returncode=1)" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "subprocess.run([\"process\", \"-i\", sol_in_name])\n", + "# Remove unwanted outputs\n", + "subprocess.run(\"rm *SIG_TF.json *OUT.DAT\", shell=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Could extend to convert solution IN.DAT to template for UQ." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "easyVVUQ-process", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.14" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/process/build.py b/process/build.py index 9dcdcd8f2b..7443ba40a5 100755 --- a/process/build.py +++ b/process/build.py @@ -111,20 +111,20 @@ def vbuild(self, output: bool): """ divht = self.divgeom(output) # Issue #481 Remove build_variables.vgaptf - if build_variables.vgap < 0.00001e0: - build_variables.vgap = divht + if build_variables.vgap_xpoint_divertor < 0.00001e0: + build_variables.vgap_xpoint_divertor = divht - # If build_variables.vgap /= 0 use the value set by the user. + # If build_variables.vgap_xpoint_divertor /= 0 use the value set by the user. # Height to inside edge of TF coil. TF coils are assumed to be symmetrical. # Therefore this applies to single and double null cases. build_variables.hmax = ( physics_variables.rminor * physics_variables.kappa - + build_variables.vgap + + build_variables.vgap_xpoint_divertor + divertor_variables.divfix + build_variables.shldlth + build_variables.d_vv_bot - + build_variables.vgap2 + + build_variables.vgap_vv_thermalshield + build_variables.thshield_vb + build_variables.tftsgap ) @@ -138,7 +138,7 @@ def vbuild(self, output: bool): build_variables.tfcth + build_variables.tftsgap + build_variables.thshield_vb - + build_variables.vgap2 + + build_variables.vgap_vv_thermalshield + build_variables.d_vv_top + build_variables.shldtth + build_variables.vvblgap @@ -1295,7 +1295,7 @@ def radialb(self, output: bool): # Half-height of first wall (internal surface) hbot = ( physics_variables.rminor * physics_variables.kappa - + build_variables.vgap + + build_variables.vgap_xpoint_divertor + divertor_variables.divfix - build_variables.blnktth - 0.5e0 * (build_variables.fwith + build_variables.fwoth) @@ -1926,7 +1926,7 @@ def radialb(self, output: bool): + build_variables.tfcth + build_variables.tftsgap + build_variables.thshield_vb - + build_variables.vgap2 + + build_variables.vgap_vv_thermalshield + build_variables.d_vv_top + build_variables.shldtth + divertor_variables.divfix @@ -1992,17 +1992,17 @@ def radialb(self, output: bool): po.obuild( self.outfile, "Gap", - build_variables.vgap2, + build_variables.vgap_vv_thermalshield, vbuild, - "(vgap2)", + "(vgap_vv_thermalshield)", ) po.ovarre( self.mfile, "Vessel - TF coil vertical gap (m)", - "(vgap2)", - build_variables.vgap2, + "(vgap_vv_thermalshield)", + build_variables.vgap_vv_thermalshield, ) - vbuild = vbuild - build_variables.vgap2 + vbuild = vbuild - build_variables.vgap_vv_thermalshield po.obuild( self.outfile, @@ -2081,19 +2081,19 @@ def radialb(self, output: bool): "(rminor*kappa)", ) - vbuild = vbuild - build_variables.vgap + vbuild = vbuild - build_variables.vgap_xpoint_divertor po.obuild( self.outfile, "Lower scrape-off", - build_variables.vgap, + build_variables.vgap_xpoint_divertor, vbuild, - "(vgap)", + "(vgap_xpoint_divertor)", ) po.ovarre( self.mfile, "Bottom scrape-off vertical thickness (m)", - "(vgap)", - build_variables.vgap, + "(vgap_xpoint_divertor)", + build_variables.vgap_xpoint_divertor, ) vbuild = vbuild - divertor_variables.divfix @@ -2134,13 +2134,13 @@ def radialb(self, output: bool): build_variables.d_vv_bot, ) - vbuild = vbuild - build_variables.vgap2 + vbuild = vbuild - build_variables.vgap_vv_thermalshield po.obuild( self.outfile, "Gap", - build_variables.vgap2, + build_variables.vgap_vv_thermalshield, vbuild, - "(vgap2)", + "(vgap_vv_thermalshield)", ) vbuild = vbuild - build_variables.thshield_vb @@ -2197,7 +2197,7 @@ def radialb(self, output: bool): + build_variables.tfcth + build_variables.tftsgap + build_variables.thshield_vb - + build_variables.vgap2 + + build_variables.vgap_vv_thermalshield + 0.5e0 * (build_variables.d_vv_top + build_variables.d_vv_bot) + build_variables.vvblgap + build_variables.shldtth @@ -2264,17 +2264,17 @@ def radialb(self, output: bool): po.obuild( self.outfile, "Gap", - build_variables.vgap2, + build_variables.vgap_vv_thermalshield, vbuild, - "(vgap2)", + "(vgap_vv_thermalshield)", ) po.ovarre( self.mfile, "Vessel - TF coil vertical gap (m)", - "(vgap2)", - build_variables.vgap2, + "(vgap_vv_thermalshield)", + build_variables.vgap_vv_thermalshield, ) - vbuild = vbuild - build_variables.vgap2 + vbuild = vbuild - build_variables.vgap_vv_thermalshield po.obuild( self.outfile, @@ -2372,19 +2372,19 @@ def radialb(self, output: bool): "(rminor*kappa)", ) - vbuild = vbuild - build_variables.vgap + vbuild = vbuild - build_variables.vgap_xpoint_divertor po.obuild( self.outfile, "Lower scrape-off", - build_variables.vgap, + build_variables.vgap_xpoint_divertor, vbuild, - "(vgap)", + "(vgap_xpoint_divertor)", ) po.ovarre( self.mfile, "Bottom scrape-off vertical thickness (m)", - "(vgap)", - build_variables.vgap, + "(vgap_xpoint_divertor)", + build_variables.vgap_xpoint_divertor, ) vbuild = vbuild - divertor_variables.divfix @@ -2425,13 +2425,13 @@ def radialb(self, output: bool): build_variables.d_vv_bot, ) - vbuild = vbuild - build_variables.vgap2 + vbuild = vbuild - build_variables.vgap_vv_thermalshield po.obuild( self.outfile, "Gap", - build_variables.vgap2, + build_variables.vgap_vv_thermalshield, vbuild, - "(vgap2)", + "(vgap_vv_thermalshield)", ) vbuild = vbuild - build_variables.thshield_vb diff --git a/process/buildings.py b/process/buildings.py index 4ddaf6ec69..9eaadaf3aa 100644 --- a/process/buildings.py +++ b/process/buildings.py @@ -74,7 +74,7 @@ def run(self, output: bool = False): tfcoil_variables.n_tf, build_variables.rsldo, build_variables.rsldi, - 2.0e0 * (build_variables.hmax - build_variables.vgap2) + 2.0e0 * (build_variables.hmax - build_variables.vgap_vv_thermalshield) - build_variables.d_vv_top - build_variables.d_vv_bot, fwbs_variables.whtshld, @@ -532,7 +532,7 @@ def bldgs_sizes(self, output, tf_radial_dim, tf_vertical_dim): build_variables.tfcth + build_variables.tftsgap + build_variables.thshield_vb - + build_variables.vgap2 + + build_variables.vgap_vv_thermalshield ) ) hcomp_rad_thk = ( @@ -576,7 +576,7 @@ def bldgs_sizes(self, output, tf_radial_dim, tf_vertical_dim): build_variables.tfcth + build_variables.tftsgap + build_variables.thshield_vb - + build_variables.vgap2 + + build_variables.vgap_vv_thermalshield ) ) hcomp_rad_thk = ( diff --git a/process/divertor.py b/process/divertor.py index 711e793712..831b05659a 100644 --- a/process/divertor.py +++ b/process/divertor.py @@ -39,7 +39,7 @@ def run(self, output: bool) -> None: pv.rminor, pv.triang, bv.scrapli, - bv.vgap, + bv.vgap_xpoint_divertor, pv.pdivt, output=output, ) @@ -752,7 +752,7 @@ def divtart( rminor: float, triang: float, scrapli: float, - vgap: float, + vgap_xpoint_divertor: float, pdivt: float, output: bool, ) -> float: @@ -777,8 +777,8 @@ def divtart( :param scrapli: inboard scrape-off width (m) :type scrapli: float - :param vgap: top scrape-off width (m) - :type vgap: float + :param vgap_xpoint_divertor: top scrape-off width (m) + :type vgap_xpoint_divertor: float :param pdivt: power to the divertor (MW) :type pdivt: float @@ -800,15 +800,15 @@ def divtart( # Angle of diagonal divertor plate from horizontal - if vgap <= 0.0e0: - eh.fdiags[0] = vgap + if vgap_xpoint_divertor <= 0.0e0: + eh.fdiags[0] = vgap_xpoint_divertor eh.report_error(22) - theta = math.atan(vgap / (r2 - r1)) + theta = math.atan(vgap_xpoint_divertor / (r2 - r1)) # Vertical plate area - a1 = 2.0e0 * constants.pi * r1 * vgap + a1 = 2.0e0 * constants.pi * r1 * vgap_xpoint_divertor # Horizontal plate area diff --git a/process/io/mfile_comparison.py b/process/io/mfile_comparison.py index 4e02b4b4fb..fc77b479fc 100755 --- a/process/io/mfile_comparison.py +++ b/process/io/mfile_comparison.py @@ -259,11 +259,11 @@ "gapsto", "tftsgap", "tfthko", - "vgap", + "vgap_xpoint_divertor", "divfix", "d_vv_bot", "shldlth", - "vgap2", + "vgap_vv_thermalshield", ] diff --git a/process/io/plot_proc.py b/process/io/plot_proc.py index 5036ac608a..0b83446360 100755 --- a/process/io/plot_proc.py +++ b/process/io/plot_proc.py @@ -154,11 +154,11 @@ def parse_args(args): vertical_lower = [ "rminor*kappa", - "vgap", + "vgap_xpoint_divertor", "divfix", "shldlth", "d_vv_bot", - "vgap2", + "vgap_vv_thermalshield", "thshield_vb", "tftsgap", "tfcth", @@ -3174,7 +3174,7 @@ def main(args=None): "divfix", "shldtth", "d_vv_top", - "vgap2", + "vgap_vv_thermalshield", "thshield_vb", "tftsgap", "tfcth", @@ -3188,7 +3188,7 @@ def main(args=None): "vvblgap", "shldtth", "d_vv_top", - "vgap2", + "vgap_vv_thermalshield", "thshield_vb", "tftsgap", "tfcth", diff --git a/process/sctfcoil.py b/process/sctfcoil.py index b6ad69e9a0..0b70aa3b1e 100644 --- a/process/sctfcoil.py +++ b/process/sctfcoil.py @@ -2286,7 +2286,7 @@ def vv_stress_on_quench(self): H_vv = ( physics_variables.rminor * physics_variables.kappa - + build_variables.vgap + + build_variables.vgap_xpoint_divertor + divertor_variables.divfix + build_variables.shldtth + (build_variables.d_vv_top / 2) diff --git a/process/utilities/errorlist.json b/process/utilities/errorlist.json index d8717c5994..f07b31d373 100644 --- a/process/utilities/errorlist.json +++ b/process/utilities/errorlist.json @@ -118,7 +118,7 @@ { "no": 22, "level": 3, - "message": "DIVCALL: Non-positive vgap" + "message": "DIVCALL: Non-positive vgap_xpoint_divertor" }, { "no": 23, @@ -1446,4 +1446,4 @@ "message": "[pfcoil][cntrpost]: fjohc0 shouldn't be above 0.7 for engineering reliability." } ] -} +} \ No newline at end of file diff --git a/source/fortran/blanket_library.f90 b/source/fortran/blanket_library.f90 index 147fb60834..c192ccaa32 100644 --- a/source/fortran/blanket_library.f90 +++ b/source/fortran/blanket_library.f90 @@ -253,7 +253,7 @@ function component_half_height(icomponent) ! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - use build_variables, only: hmax, vgap, vgap2, blnktth, shldtth, scrapli, scraplo, & + use build_variables, only: hmax, vgap_xpoint_divertor, vgap_vv_thermalshield, blnktth, shldtth, scrapli, scraplo, & fwith, fwoth, d_vv_bot, d_vv_top use physics_variables, only: rminor, kappa, idivrt use divertor_variables, only: divfix @@ -272,11 +272,11 @@ function component_half_height(icomponent) ! Calculate component internal lower half-height (m) ! Blanket - if (icomponent==0) hbot = rminor*kappa + vgap + divfix - blnktth + if (icomponent==0) hbot = rminor*kappa + vgap_xpoint_divertor + divfix - blnktth ! Sheild - if (icomponent==1) hbot = rminor*kappa + vgap + divfix + if (icomponent==1) hbot = rminor*kappa + vgap_xpoint_divertor + divfix ! Vacuum vessel - if (icomponent==2) hbot = hmax - vgap2 - d_vv_bot + if (icomponent==2) hbot = hmax - vgap_vv_thermalshield - d_vv_bot ! Calculate component internal upper half-height (m) ! If a double null machine then symmetric diff --git a/source/fortran/build_variables.f90 b/source/fortran/build_variables.f90 index 747b2ac6c6..843ad5f61e 100644 --- a/source/fortran/build_variables.f90 +++ b/source/fortran/build_variables.f90 @@ -267,14 +267,14 @@ module build_variables real(dp) :: thshield_vb !! TF-VV thermal shield thickness, vertical build (m) - real(dp) :: vgap2 + real(dp) :: vgap_vv_thermalshield !! vertical gap between vacuum vessel and thermal shields (m) - real(dp) :: vgap + real(dp) :: vgap_xpoint_divertor !! vertical gap between x-point and divertor (m) (if = 0, it is calculated) real(dp) :: vgaptop - !! vertical gap between top of plasma and first wall (m) (= vgap if double-null) + !! vertical gap between top of plasma and first wall (m) (= vgap_xpoint_divertor if double-null) real(dp) :: vvblgap !! gap between vacuum vessel and blanket (m) @@ -376,8 +376,8 @@ subroutine init_build_variables thshield_ib = 0.05D0 thshield_ob = 0.05D0 thshield_vb = 0.05D0 - vgap2 = 0.163D0 - vgap= 0.0D0 + vgap_vv_thermalshield = 0.163D0 + vgap_xpoint_divertor= 0.0D0 vgaptop = 0.60D0 vvblgap = 0.05D0 plleni = 1.0D0 diff --git a/source/fortran/initial.f90 b/source/fortran/initial.f90 index 97f0b0b45d..b15cea7b56 100755 --- a/source/fortran/initial.f90 +++ b/source/fortran/initial.f90 @@ -242,7 +242,7 @@ subroutine check ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! use build_variables, only: blnkith, bore, gapoh, ohcth, precomp, iprecomp, & - i_r_cp_top, r_cp_top, vgaptop, vgap, shldtth, shldlth, d_vv_top, d_vv_bot, tf_in_cs + i_r_cp_top, r_cp_top, vgaptop, vgap_xpoint_divertor, shldtth, shldlth, d_vv_top, d_vv_bot, tf_in_cs use buildings_variables, only: esbldgm3, triv use current_drive_variables, only: gamcd, iefrf, irfcd use error_handling, only: errors_on, idiags, fdiags, report_error @@ -489,7 +489,7 @@ subroutine check if (i_single_null == 0) then idivrt = 2 - vgaptop = vgap + vgaptop = vgap_xpoint_divertor shldtth = shldlth d_vv_top = d_vv_bot call report_error(272) diff --git a/source/fortran/input.f90 b/source/fortran/input.f90 index c1d79dcaed..a28e50bb03 100644 --- a/source/fortran/input.f90 +++ b/source/fortran/input.f90 @@ -193,13 +193,13 @@ subroutine parse_input_file(in_file,out_file,show_changes) use constants, only: dcopper, dalu use global_variables, only: run_tests, verbose, maxcal, runtitle use build_variables, only: tf_in_cs, blbmoth, blbuith, shldoth, & - shldtth, shldlth, vgap2, plleni, fwoth, vvblgap, & + shldtth, shldlth, vgap_vv_thermalshield, plleni, fwoth, vvblgap, & thshield_ib, thshield_ob, thshield_vb, iprecomp, & blbpith, aplasmin, blbuoth, tfcth, & iohcl, tftsgap, clhsf, bore, plleno, scrapli, gapomin, ddwex, & rinboard, blnkoth, fseppc, plsepo, blnkith, & ohcth, plsepi, blbmith, gapoh, fcspc, scraplo, vgaptop, & - blbpoth, gapds, fwith, vgap, shldith, sigallpc, tfootfi, f_avspace,& + blbpoth, gapds, fwith, vgap_xpoint_divertor, shldith, sigallpc, tfootfi, f_avspace,& r_cp_top, d_vv_in, d_vv_out, d_vv_top, d_vv_bot, f_r_cp, i_r_cp_top use buildings_variables, only: hcwt, conv, wgt, trcl, rbwt, & esbldgm3, fndt, row, wgt2, pibv, clh1, stcl, clh2, & @@ -1421,11 +1421,11 @@ subroutine parse_input_file(in_file,out_file,show_changes) case ('thshield_vb') call parse_real_variable('thshield_vb', thshield_vb, 0.0D0, 10.0D0, & 'TF/VV thermal shield thickness, vertical build (m)') - case ('vgap') - call parse_real_variable('vgap', vgap, 0.0D0, 10.0D0, & + case ('vgap_xpoint_divertor') + call parse_real_variable('vgap_xpoint_divertor', vgap_xpoint_divertor, 0.0D0, 10.0D0, & 'Vert gap between x-pnt and divertor (m)') - case ('vgap2') - call parse_real_variable('vgap2', vgap2, 0.0D0, 10.0D0, & + case ('vgap_vv_thermalshield') + call parse_real_variable('vgap_vv_thermalshield', vgap_vv_thermalshield, 0.0D0, 10.0D0, & 'Vert gap between TF coil and shield (m)') case ('vgaptop') call parse_real_variable('vgaptop', vgaptop, 0.0D0, 10.0D0, & diff --git a/tests/integration/ref_dicts.json b/tests/integration/ref_dicts.json index 159a778949..ded54b5d08 100644 --- a/tests/integration/ref_dicts.json +++ b/tests/integration/ref_dicts.json @@ -7916,8 +7916,8 @@ "vfpblkt": 0.1, "vfshld": 0.25, "vftf": 0.4, - "vgap": 0.0, - "vgap2": 0.163, + "vgap_xpoint_divertor": 0.0, + "vgap_vv_thermalshield": 0.163, "vgaptop": 0.6, "vlabel": "", "vlabel_2": "", @@ -11016,9 +11016,9 @@ "vfpblkt": "He purge gas fraction of blanket by volume (`iblanket= 1,3` (CCFE HCPB))", "vfshld": "coolant void fraction in shield", "vftf": "coolant fraction of TFC 'cable' (`i_tf_sup=1`), or of TFC leg (`i_tf_ssup=0`)", - "vgap": "vertical gap between x-point and divertor (m) (if = 0, it is calculated)", - "vgap2": "vertical gap between vacuum vessel and thermal shields (m)", - "vgaptop": "vertical gap between top of plasma and first wall (m) (= vgap if double-null)", + "vgap_xpoint_divertor": "vertical gap between x-point and divertor (m) (if = 0, it is calculated)", + "vgap_vv_thermalshield": "vertical gap between vacuum vessel and thermal shields (m)", + "vgaptop": "vertical gap between top of plasma and first wall (m) (= vgap_xpoint_divertor if double-null)", "vlabel": "scan value name label", "vlabel_2": "scan value name label (2nd dimension)", "vlam": "", @@ -14956,11 +14956,11 @@ "lb": 0.0, "ub": 1.0 }, - "vgap": { + "vgap_xpoint_divertor": { "lb": 0.0, "ub": 10.0 }, - "vgap2": { + "vgap_vv_thermalshield": { "lb": 0.0, "ub": 10.0 }, @@ -17057,8 +17057,8 @@ "tfthko", "tftsgap", "thshield", - "vgap2", - "vgap", + "vgap_vv_thermalshield", + "vgap_xpoint_divertor", "vgaptop", "vvblgap", "plleni", @@ -20865,8 +20865,8 @@ "vfpblkt": "real_variable", "vfshld": "real_variable", "vftf": "real_variable", - "vgap": "real_variable", - "vgap2": "real_variable", + "vgap_xpoint_divertor": "real_variable", + "vgap_vv_thermalshield": "real_variable", "vgaptop": "real_variable", "vvblgap": "real_variable", "vvhealw": "real_variable", diff --git a/tests/regression/input_files/large_tokamak.MFILE.DAT.json b/tests/regression/input_files/large_tokamak.MFILE.DAT.json new file mode 100644 index 0000000000..7c54607c57 --- /dev/null +++ b/tests/regression/input_files/large_tokamak.MFILE.DAT.json @@ -0,0 +1,1091 @@ +{ + "procver": "3.1.0 R", + "date": "02/09/2024", + "time": "09:52", + "username": "graeme", + "runtitle": "\"Generic large tokamak ", + "tagno": "v3.1.0-136-g72776cb", + "branch_name": "main", + "commsg": "Added warning for magnet current ratios above 0.7 ([hash]3297)", + "fileprefix": "/home/graeme/process-gh/process/tests/regression/input_files/large_tokamak.IN.DAT", + "ifail": 1.0, + "nvar": 43.0, + "neqns+nineqns": 26.0, + "ioptimz": 1.0, + "minmax": 1.0, + "objf_name": "major radius", + "norm_objf": 1.6, + "sqsumsq": 2.7108846213506083e-06, + "convergence_parameter": 1.6736595259932239e-12, + "nviter": 7.0, + "itvar001": 5.326133750416047, + "xcm001": 0.934409429897552, + "nitvar001": 0.17726354619593357, + "itvar002": 8.0, + "xcm002": 1.0, + "nitvar002": 0.0, + "itvar003": 12.57086118649838, + "xcm003": 1.0475717655415318, + "nitvar003": 0.07477007853894548, + "itvar004": 0.03335095896153653, + "xcm004": 1.1116986320512177, + "nitvar004": 0.032383342303840365, + "itvar005": 8.016748468651018e+19, + "xcm005": 1.0688997958201356, + "nitvar005": 0.06139539253725528, + "itvar006": 1.200067379626934, + "xcm006": 1.0909703451153945, + "nitvar006": 1.0, + "itvar007": 1.2, + "xcm007": 1.0, + "nitvar007": 0.11627906976744184, + "itvar008": 0.5092482913911441, + "xcm008": 0.5092482913911441, + "nitvar008": 0.5087570484395837, + "itvar009": 0.5717066382900822, + "xcm009": 1.1434132765801643, + "nitvar009": 0.0280109936381528, + "itvar010": 3.6404829299098447, + "xcm010": 1.0401379799742414, + "nitvar010": 0.013627296381060534, + "itvar011": 1.0001161929488913, + "xcm011": 1.0001161929488913, + "nitvar011": 1.0, + "itvar012": 0.5418324938709288, + "xcm012": 0.5418324938709288, + "nitvar012": 0.5413738677386675, + "itvar013": 1.978568309961802, + "xcm013": 0.989284154980901, + "nitvar013": 0.18975437474361637, + "itvar014": 0.8751554542741979, + "xcm014": 0.8751554542741979, + "nitvar014": 0.875030484758957, + "itvar015": 0.5057731620849355, + "xcm015": 1.011546324169871, + "nitvar015": 0.505278440525461, + "itvar016": 20454478.696009487, + "xcm016": 1.3636319130672991, + "nitvar016": 0.20374853549559047, + "itvar017": 0.5686081370498858, + "xcm017": 0.9476802284164761, + "nitvar017": 0.564250643484733, + "itvar018": 0.5412377723126924, + "xcm018": 0.9020629538544872, + "nitvar018": 0.5407785508635559, + "itvar019": 0.9394232225609916, + "xcm019": 1.0438035806233241, + "nitvar019": 0.9393625851461378, + "itvar020": 0.4295621585104683, + "xcm020": 1.0739053962761707, + "nitvar020": 0.4289911496601284, + "itvar021": 0.3854141647888875, + "xcm021": 0.3854141647888875, + "nitvar021": 0.38479896375264017, + "itvar022": 1.000399977869715, + "xcm022": 1.000399977869715, + "nitvar022": 1.0, + "itvar023": 0.8540299392516906, + "xcm023": 0.8540299392516906, + "nitvar023": 0.8538838230747653, + "itvar024": 0.7153040698990529, + "xcm024": 1.1004677998446966, + "nitvar024": 0.715019088988041, + "itvar025": 0.9463261994231574, + "xcm025": 0.9463261994231574, + "nitvar025": 0.9462724718950525, + "itvar026": 1.0001916776956143, + "xcm026": 1.0001916776956143, + "nitvar026": 1.0, + "itvar027": 0.9962806324212535, + "xcm027": 0.9962806324212535, + "nitvar027": 0.9962769093305841, + "itvar028": 18.61587555808199, + "xcm028": 0.7446350223232795, + "nitvar028": 0.18534409968050036, + "itvar029": 0.28403092656598855, + "xcm029": 0.5680618531319771, + "nitvar029": 0.24634834375367218, + "itvar030": 0.00799968522020225, + "xcm030": 0.9999606525252812, + "nitvar030": 0.0, + "itvar031": 0.8397699365874538, + "xcm031": 1.0497124207343171, + "nitvar031": 0.772204401335122, + "itvar032": 87380.58190140124, + "xcm032": 1.3443166446369421, + "nitvar032": 0.8952232760560496, + "itvar033": 1.6818464699110338, + "xcm033": 1.6818464699110338, + "nitvar033": 0.07576071887900376, + "itvar034": 0.9970344458979716, + "xcm034": 0.9970344458979716, + "nitvar034": 0.997031477375347, + "itvar035": 0.08293735533382524, + "xcm035": 0.8293735533382524, + "nitvar035": 0.6587471066765047, + "itvar036": 0.738388549140562, + "xcm036": 0.738388549140562, + "nitvar036": 0.7381266758163784, + "itvar037": 0.43074427105190355, + "xcm037": 0.43074427105190355, + "nitvar037": 0.43017444549740097, + "itvar038": 0.9997735640131954, + "xcm038": 0.9997735640131954, + "nitvar038": 0.999773337350546, + "itvar039": 0.5202398014584474, + "xcm039": 0.6502997518230592, + "nitvar039": 0.5471441532754978, + "itvar040": 0.8961997128280894, + "xcm040": 0.8961997128280894, + "nitvar040": 0.8960958086367261, + "itvar041": 0.0005733634211619243, + "xcm041": 1.5088511083208533, + "nitvar041": 0.05733539945159188, + "itvar042": 0.5130350266123881, + "xcm042": 1.0260700532247762, + "nitvar042": 0.07064689163274254, + "itvar043": 0.5963799523208525, + "xcm043": 0.5963799523208525, + "nitvar043": 0.5959759282491016, + "eq_con001": 1.4096766989268872e-06, + "eq_con002": 4.3361936263863754e-10, + "eq_con011": 1.0695888619238758e-12, + "eq_con005": 2.5614146137442617e-08, + "eq_con008": 6.611896075092716e-08, + "eq_con009": 1.1354944495778341e-07, + "eq_con013": 2.1630982716125402e-07, + "eq_con015": -1.5753578841426474e-07, + "eq_con030": 2.11691219220711e-07, + "eq_con016": 1.5448176071686248e-07, + "eq_con024": 7.406727597913942e-07, + "eq_con025": -2.417359090678417e-09, + "eq_con026": -4.243906492895633e-08, + "eq_con027": -4.0426210157207265e-09, + "eq_con033": 1.838669940745774e-07, + "eq_con034": 1.7405994232611022e-06, + "eq_con035": 9.259891520230212e-09, + "eq_con036": -1.1919832449969192e-06, + "eq_con060": 4.1360093128162134e-10, + "eq_con062": -2.297801744433059e-07, + "eq_con065": 1.3496520079314678e-07, + "eq_con072": 3.5752187876880726e-08, + "eq_con081": 1.7053177758796778e-08, + "eq_con068": 2.8098235094198287e-07, + "eq_con031": 9.851251148162987e-08, + "eq_con032": 8.624477620955417e-08, + "fwbllife": 6.136496203227313, + "divlife.": 3.836855085106086, + "coe": 514.3904177151642, + "fkind": 1.0, + "lsa": 4.0, + "c211": 35.2, + "c212": 453.07517378744404, + "c213": 38.0, + "c2141": 103.06766676874581, + "c2142": 57.64127691510489, + "c215": 14.799999999999999, + "c216": 19.72901095136551, + "c2171": 18.0, + "c2172": 21.0, + "c2173": 11.499999999999998, + "c2174": 7.5608603846723526, + "c21": 779.5739888073324, + "c2211": 191.30079210601932, + "c22121": 261.0927397468544, + "c22122": 639.8460606457973, + "c22123": 80.726178241377, + "c22124": 0.0, + "c2212": 981.6649786340288, + "c22131": 78.39420268317497, + "c22132": 78.39420268317497, + "c2213": 156.78840536634993, + "c2214": 41.06270685862603, + "c2215": 41.660031860723535, + "c221": 1412.4769148257476, + "c22211": 134.11866065804657, + "c22212": 56.13089157346991, + "c22213": 447.1774533180073, + "c22214": 151.22972859955922, + "c22215": 44.807387407208985, + "c2221": 833.464121556292, + "c22221": 462.22327347185046, + "c22222": 76.5706243040698, + "c22223": 94.35226036338396, + "c22224": 7.924521436277656, + "c2222": 641.070679575582, + "c2223": 254.04212380591363, + "c222": 1728.5769249377875, + "c2231": 231.24844992006604, + "c2232": 0.0, + "c2233": 0.0, + "c223": 231.24844992006604, + "c2241": 12.479999999999999, + "c2242": 4.68, + "c2243": 2.571359218249475, + "c2244": 5.833472788444279, + "c2245": 0.0, + "c2246": 1.3, + "c224": 26.864832006693753, + "c22511": 4.010227929682539, + "c22512": 34.182980917589475, + "c22513": 21.590956152532534, + "c22514": 4.8, + "c22515": 34.31842796551534, + "c2251": 98.9025929653199, + "c22521": 2.999838036790265, + "c22522": 3.5999999999999996, + "c22523": 11.995199999999999, + "c22524": 1.2679371237932096, + "c22525": 14.709370284405457, + "c22526": 4.313509832440751, + "c22527": 0.8999999999999999, + "c2252": 39.78585527742968, + "c2253": 16.864002605180406, + "c225": 155.55245084793, + "cpp": 36.87912796356539, + "chx": 71.7719385486551, + "c2261": 108.6510665122205, + "cppa": 28.990142044206674, + "c2262": 28.990142044206674, + "c2263": 193.01314317695278, + "c226": 330.65435173337994, + "c2271": 22.3, + "c2272": 102.46823351165338, + "c2273": 58.170356317967574, + "c2274": 69.2798115045696, + "c227": 252.21840133419056, + "c228": 150.0, + "c229": 125.0, + "c22": 4412.592325605795, + "c23": 176.36314268919259, + "c241": 18.4, + "c242": 7.421236059187929, + "c243": 6.54421307384162, + "c244": 6.8, + "c245": 1.5, + "c24": 40.66544913302955, + "c25": 25.0, + "c26": 49.956703959179436, + "cdirt": 5484.151610194528, + "crctcore": 3372.302289683601, + "c9": 1828.9645619998748, + "ccont": 1426.0576535779085, + "concost": 8739.173825772312, + "moneyint": 1441.9636812524318, + "capcost": 10181.137507024743, + "abktflnc": 5.0, + "adivflnc": 7.0, + "bktlife": 6.136496203227313, + "divlife": 3.836855085106086, + "cdrlife": 6.136496203227313, + "tlife": 30.0, + "cfactr": 0.8, + "bktcycles": 15745.584859883867, + "itart": 0.0, + "rmajor": 8.0, + "rminor": 2.6666666666666665, + "aspect": 3.0, + "kappa": 1.85, + "kappa95": 1.6517857142857142, + "kappaa": 1.718793808554279, + "triang": 0.5, + "triang95": 0.3333333333333333, + "pperim": 24.081367139525412, + "xarea": 38.39822223637151, + "sarea": 1173.8427771245592, + "vol": 1888.171153995669, + "icurr": 4.0, + "plascur/1d6": 16.528278760008096, + "alphaj": 2.0172352695445492, + "rli": 1.2370224162734498, + "bvert": -0.7441276400482666, + "bt": 5.326133750416047, + "bp": 0.8624945394733476, + "btot": 5.39551643106962, + "q0": 1.0, + "q95": 3.640482929909845, + "qstar": 3.0172352695445492, + "beta": 0.033350958961536524, + "betap": 1.305153692681755, + "total_toroidal_beta": 0.0342255336374381, + "betaft": 0.004227708298091151, + "betanb": 0.0, + "gammaft": 0.14516608557703495, + "thermal_beta": 0.02912325066344537, + "thermal_poloidal_beta": 1.1397069028848372, + "thermal_toroidal_physics_variables.beta_(=_beta-exp)": 0.029886960562748654, + "eps*betap": 0.43505123089391834, + "epbetmax": 1.38, + "dnbeta": 4.948089665093799, + "normalised_thermal_beta": 2.5026091025798896, + "normalised_total_beta": 2.8659030697308685, + "normalised_toroidal_beta": 2.9410567182741043, + "betalim": 0.05758168763678506, + "plasma_thermal_energy_(j)": 955429496.230412, + "total_plasma_internal_energy": 1094125456.2430193, + "te": 12.570861186498382, + "te0": 25.986118047669795, + "ti": 12.570861186498382, + "ti0": 25.986118047669795, + "ten": 13.900929357310797, + "dene": 8.016748468651018e+19, + "ne0": 1.054474759840606e+20, + "dnla": 8.878130543508506e+19, + "dnla_gw": 1.1999999692630252, + "dnitot": 7.1297522422781575e+19, + "deni": 6.45836002502319e+19, + "dnz": 4.636594070923621e+16, + "dnalp": 6.648879163664088e+18, + "dnprot": 1.867706817635482e+16, + "dnbeam": 0.0, + "dnelimt": 7.398442309095201e+19, + "boundu(9)": 7.398442309095201e+19, + "ralpne": 0.08293735533382524, + "fimp(01)": 0.8058413903221652, + "fimp(02)": 0.08293735533382524, + "fimp(03)": 0.0, + "fimp(04)": 0.0, + "fimp(05)": 0.0, + "fimp(06)": 0.0, + "fimp(07)": 0.0, + "fimp(08)": 0.0, + "fimp(09)": 0.0, + "fimp(10)": 0.0, + "fimp(11)": 0.0, + "fimp(12)": 0.0, + "fimp(13)": 0.0005733634211619244, + "fimp(14)": 4.9999999999999996e-06, + "aion": 2.7235463417462302, + "zeff": 2.5211399464385624, + "alphan": 1.0, + "ipedestal": 1.0, + "rhopedn": 0.9400000000000001, + "neped": 6.2886759627309195e+19, + "fgwped_out": 0.8499999999999998, + "rhopedt": 0.9400000000000001, + "teped": 5.5, + "tesep": 0.1, + "nesep": 3.6992211545476006e+19, + "fgwsep_out": 0.5, + "alphat": 1.45, + "tbeta": 2.0, + "dlimit(1)": 5.2740200899341165e+19, + "dlimit(2)": 1.0995014528645779e+20, + "dlimit(3)": 4.375781881263019e+19, + "dlimit(4)": 3.012169558649921e+21, + "dlimit(5)": 4.379134038753384e+20, + "dlimit(6)": 6.619636779956869e+19, + "dlimit(7)": 7.398442309095201e+19, + "fdeut": 0.5, + "ftrit": 0.5, + "powfmw": 1625.4972970384704, + "pdt": 1623.5348164299871, + "pdd": 1.96248060848292, + "pdhe3": 0.0, + "palpmw": 324.70696328599746, + "palpnb": 0.0, + "pneutmw": 1299.5160632349946, + "pchargemw": 1.2742705174783238, + "tot_power_plasma": 387.44298756151835, + "psyncpv*vol": 15.72872637254633, + "ssync": 0.6000000000000001, + "coreradius": 0.7500000000000001, + "coreradiationfraction": 0.6000000000000001, + "pinnerzoneradmw": 90.59670654590884, + "pouterzoneradmw": 132.84029507049215, + "pradmw": 223.437001616401, + "rad_fraction_lcfs": 0.5766964657759449, + "photon_wall": 0.1751188877190461, + "peakfactrad": 3.33, + "maxradwallload": 1.0, + "peakradwallload": 0.5831458961044236, + "palpfwmw": 16.235348164299886, + "wallmw": 1.018496515440357, + "ptarmw": 32.80119718902346, + "ftar": 1.0, + "lambdaio": 0.00157, + "fio": 0.41, + "fli": 0.41, + "flo": 0.5900000000000001, + "plimw": 13.448490847499619, + "plomw": 19.352706341523845, + "pohmmw": 0.6142852823203814, + "falpha": 0.95, + "falpe": 0.7172665253816517, + "falpi": 0.2827334746183483, + "ptrimw": 139.7313134745139, + "ptremw": 157.11496770909844, + "pinjimw": 0.0, + "pinjemw": 77.08281664002202, + "ignite": 0.0, + "pdivt": 164.00598594511735, + "pdivt/rmajor": 20.500748243139668, + "pdivtbt/qar": 9.997732830945473, + "pthrmw(1)": 129.95806884395483, + "pthrmw(2)": 285.9808925986646, + "pthrmw(3)": 58.269318312815805, + "pthrmw(4)": 214.3928152339829, + "pthrmw(5)": 172.13808246188188, + "pthrmw(6)": 97.5154478818779, + "pthrmw(7)": 127.83362741419408, + "pthrmw(8)": 67.19726834956172, + "pthrmw(9)": 67.91920789138034, + "pthrmw(10)": 99.63078549530022, + "pthrmw(11)": 45.93077993401285, + "pthrmw(12)": 31.032034770399456, + "pthrmw(13)": 43.17743169094646, + "pthrmw(14)": 22.146586590758233, + "pthrmw(15)": 27.278808402024605, + "pthrmw(16)": 14.215196812183729, + "pthrmw(17)": 52.34772832283361, + "pthrmw(18)": 260.80361402180387, + "pthrmw(19)": 97.5154478818779, + "pthrmw(20)": 127.83362741419408, + "pthrmw(21)": 67.19726834956172, + "boundl(103)": 97.5154478818779, + "plhthresh": 97.5154478818779, + "tauelaw": "IPB98(y,2)", + "hfact": 1.2000673796269339, + "taueff": 3.2182491458976963, + "tauei": 3.2182491458976967, + "tauee": 3.2182491458976963, + "dntau": 2.57998939121128e+20, + "dntau*te": 3.243268849955547e+21, + "powerht": 296.8462810156095, + "iradloss": 1.0, + "radiation_power_subtracted_from_plasma_power_balance_(mw)": 90.59670654590884, + "hstar": 1.1049512475541297, + "taup": 21.79237753723082, + "taup/taueff": 6.7715010707016186, + "taulimit": 5.0, + "total_energy_conf_time": 2.8239650512949175, + "beta_mcdonald": 0.03422553363743809, + "rho_star": 0.0019565075857386678, + "nu_star": 0.003685790299051017, + "kappaa_ipb": 1.68145080681586, + "vsstt": 552.9661984103373, + "vsind": 235.18431658959855, + "gamma": 0.30000000000000004, + "vsres": 49.848114386144594, + "vsbrn": 267.93376743459413, + "cboot": 1.0, + "bscf_iter89": 0.37591710255962607, + "bscf_sauter": 0.4236675302755845, + "bscf_nevins": 0.35398266745258933, + "bscf_wilson": 0.43759445182802537, + "bscf_sakai": 0.3313573094155941, + "diacf_hender": 0.01191105677197733, + "diacf_scene": 0.011101733591771228, + "pscf_scene": -0.003001586306538287, + "bootipf.": 0.4236675302755845, + "diaipf.": 0.0, + "psipf.": 0.0, + "vburn": 0.037165714061327966, + "rplas": 3.941908367053235e-09, + "res_time": 3087.94542796045, + "rlp": 1.4229208014003955e-05, + "csawth": 1.0, + "tauratio": 1.0, + "qfuel": 3.39369812758061e+21, + "rndfuel": 5.794528801334492e+20, + "burnup": 0.17074378991585354, + "iefrf": 10.0, + "iefrffix": 0.0, + "startupratio": 1.0, + "pheat": 75.0, + "pcurrentdrivemw": 2.082816640022017, + "bscfmax": 0.9500000000000001, + "bigq": 20.920951448911715, + "auxiliary_cd": 97428.05865277287, + "effcd": 0.04677706946481028, + "gamcd": 0.30000000000000004, + "etacd": 0.5, + "gamma_ecrh": 0.30000000000000004, + "bootipf": 0.4236675302755845, + "diaipf": 0.0, + "psipf": 0.0, + "faccd": 0.0058946282348837364, + "facoh": 0.5704378414895317, + "plasipf+faccd+facoh": 1.0, + "fvsbrnni": 0.42956215851046825, + "echpwr": 77.08281664002202, + "pinjalw": 200.0, + "etaech": 0.5, + "echwpow": 154.16563328004403, + "abs(vstot)": 573.8463176139876, + "vssoft": 285.0324309757431, + "vsmax": 267.93376743459413, + "tramp": 500.0, + "tohs": 165.28278760008098, + "t_fusion_ramp": 10.0, + "tburn": 7199.1650652122735, + "tqnch": 165.28278760008098, + "tdwell": 1800.0, + "tcycle": 9839.730640412436, + "tf_in_cs": 0.0, + "inboard_build": 5.333333333333334, + "bore": 1.978568309961802, + "ohcth": 0.5717066382900822, + "precomp": 0.06833266846664313, + "gapoh": 0.08, + "tfcth": 0.9267257166233631, + "tftsgap": 0.05, + "thshield_ib": 0.05, + "gapds": 0.02, + "d_vv_in": 0.30000000000000004, + "shldith": 0.30000000000000004, + "vvblgap": 0.02, + "blnkith": 0.7000000000000001, + "fwith": 0.018000000000000002, + "scrapli": 0.25, + "scraplo": 0.25, + "fwoth": 0.018000000000000002, + "blnkoth": 1.0, + "shldoth": 0.8, + "d_vv_out": 0.30000000000000004, + "gapsto": 1.3667671851087198, + "thshield_ob": 0.05, + "tfthko": 0.9267257166233631, + "i_single_null": 1.0, + "clh1": 5.603853948155594, + "thshield_vb": 0.05, + "vgap_xpoint_divertor2": 0.163, + "d_vv_top": 0.30000000000000004, + "shldtth": 0.6, + "blnktth": 0.8500000000000001, + "fwtth": 0.018000000000000002, + "vgap_xpoint_divertortop": 0.6, + "rminor*kappa": 4.933333333333334, + "vgap_xpoint_divertor": 2.001883830794158, + "divfix": 0.6200000000000001, + "shldlth": 0.7, + "d_vv_bot": 0.30000000000000004, + "ddwex": 0.15000000000000002, + "ohhghf": 0.9, + "ptop_radial": 6.666666666666667, + "ptop_vertical": 4.933333333333334, + "physics_variables.rmajor.": 8.0, + "0.0": 0.0, + "tril": 0.5, + "physics_variables.kappa.": 1.85, + "tfoffset": -0.6169419153970797, + "rco": 5.042222222222223, + "rci": 9.793333333333333, + "rxpt": 6.666666666666667, + "zxpt": -4.933333333333334, + "thetai": 0.2081998762191988, + "thetao": 1.0428688795434875, + "betai": 1.0, + "betao": 1.0, + "plsepi": 1.0, + "plsepo": 1.5, + "plleni": 1.0, + "plleno": 1.0, + "rspi": 5.6882620831496995, + "zspi": -5.140032319670928, + "rplti": 5.865613609626642, + "zplti": -4.672542815985231, + "rplbi": 5.510910556672757, + "zplbi": -5.607521823356624, + "rspo": 7.422282732017246, + "zspo": -6.229112775130474, + "rplto": 7.649649298858225, + "zplto": -5.783798903481559, + "rplbo": 7.1949161651762665, + "zplbo": -6.67442664677939, + "divht": 2.001883830794158, + "sig_tf_case_max": 750000000.0, + "sig_tf_wp_max": 750000000.0, + "eyoung_wp_trans*1.0d-9": 43.80992575828373, + "eyoung_wp_axial*1.0d-9": 115.43449733347816, + "poisson_wp_trans": 0.3039357671637508, + "poisson_wp_axial": 0.31556529867739486, + "sig_tf_r_max(1)": 4.8848669309786465e-08, + "sig_tf_t_max(1)": -489326248.98045564, + "sig_tf_z_max(1)": 260973660.50790218, + "sig_tf_vmises_max(1)": 659733803.7414843, + "sig_tf_tresca_max(1)": 750299909.4883578, + "sig_tf_r_max(2)": -154872406.50739866, + "sig_tf_t_max(2)": -379548738.68915474, + "sig_tf_z_max(2)": 260973660.50790218, + "sig_tf_vmises_max(2)": 557868013.2399491, + "sig_tf_tresca_max(2)": 640522399.1970569, + "sig_tf_r_max(3)": 6141875.284081604, + "sig_tf_t_max(3)": -363257800.1825306, + "sig_tf_z_max(3)": 145487551.3676068, + "sig_tf_vmises_max(3)": 453841761.9172272, + "sig_tf_tresca_max(3)": 508745351.5501374, + "deflect": -0.0062720153428098575, + "casestr": 0.0012730422463800106, + "insstrain": -0.007730435499178614, + "i_tf_sup": 1.0, + "i_tf_sc_mat": 1.0, + "i_tf_bucking": 1.0, + "n_tf": 16.0, + "r_tf_inboard_mid": 3.161970475030209, + "r_tf_inboard_in": 2.6986076167185273, + "r_tf_inboard_out": 3.6253333333418905, + "i_tf_wp_geom": 1.0, + "r_wp_inner": 2.9826385432845157, + "r_tf_outboard_mid": 14.98479671008707, + "i_tf_case_geom": 0.0, + "tftort": 1.414534894834946, + "hmax": 8.818217164127494, + "tfleng": 47.96269479666271, + "i_tf_shape": 1.0, + "xarc(1)": 3.6253333333418905, + "yarc(1)": 4.5506, + "xarc(2)": 7.466666666666667, + "yarc(2)": 7.584333333333333, + "xarc(3)": 14.521433851775388, + "yarc(3)": 0.0, + "xarc(4)": 7.466666666666667, + "yarc(4)": -8.818217164127494, + "xarc(5)": 3.6253333333418905, + "yarc(5)": -5.290930298476496, + "tfareain": 18.41148818558753, + "a_tf_steel*n_tf": 12.98138737529802, + "f_tf_steel": 0.7050699674271752, + "a_tf_ins*n_tf": 0.8601501149912956, + "f_tf_ins": 0.046718120030330795, + "acasetf": 0.5670935243915998, + "casthi": 0.06, + "thkcas": 0.28403092656598855, + "casths": 0.05, + "whtcas": 558971.8166475091, + "awpc": 0.5836244872076208, + "aswp": 0.5254979180939733, + "dr_tf_wp": 0.5130350266123881, + "wwp1": 1.1886163990572312, + "wwp2": 1.086567387365075, + "tinstf": 0.008, + "tfinsgap": 0.01, + "aswp*n_tf": 3.907890985032423, + "aswp/awpc": 0.4184937265622962, + "aiwp/awpc": 0.04839644684019424, + "awpc-aswp-aiwp)": 0.5331098265975095, + "i_tf_turns_integer": 0.0, + "n_tf_turn": 152.3832193182796, + "t_turn_tf": 0.058724175468887765, + "t_conductor": 0.05712417546888777, + "t_cable": 0.04112480502848327, + "thwcndut": 0.00799968522020225, + "thicndut": 0.0008, + "dhecoil": 0.01, + "acstf": 0.0016603493559957693, + "vftf": 0.30000000000000004, + "fcutfsu": 0.8397699365874537, + "1-fcutfsu": 0.1602300634125463, + "check_total_area_fractions_in_winding_pack_=_1": 1.0, + "tmargmin_tf": 1.5, + "tmargtf": 1.505598084728093, + "i_tf_cond_eyoung_axial": 0.0, + "eyoung_cond_axial": 0.0, + "eyoung_cond_trans": 0.0, + "whtconsc": 4785.269196991952, + "whtconcu": 58378.72996915903, + "whtconsh": 91373.57902419812, + "whtconin": 2438.5017095450826, + "whtcon": 156976.0798998942, + "whttf/n_tf": 720966.1289565583, + "whttf": 11535458.063304933, + "bmaxtf": 12.25217638945668, + "ritfc/1.d6": 213.04535001664186, + "ritfc": 213045350.01664189, + "bmaxtfrp": 12.714386263027976, + "jwptf": 25338510.234894928, + "oacdcp": 11571326.981781587, + "estotftgj": 123.14832087161449, + "vforce": 211737511.36266205, + "vforce_outboard": 211737511.36266205, + "f_vforce_inboard": 0.5, + "cforce": 81570912.72991982, + "ripmax": 0.6000000000000001, + "ripple": 0.6000000000000001, + "tdmptf": 18.61587555808199, + "vv_stress_quench": 61596422.44704868, + "vdalw": 10.0, + "vtfskv": 9.463245522511876, + "tmaxpro": 150.0, + "isumat": 1.0, + "bc20m": 32.97, + "tc0m": 16.06, + "thelium": 4.75, + "fhetot": 0.34730318716125974, + "str_tf_con_res": -0.005, + "str_wp": 0.002072346466913251, + "j_crit_sc": 703508487.9936773, + "j_crit_cable": 73574079.66660734, + "jwdgcrt": 35423417.76048685, + "jwdgop": 25338510.234894928, + "tmarg": 1.505598084728093, + "icrit": 122158.67579243291, + "cpttf": 87380.58190140124, + "iooic": 0.7153039383782679, + "isumatoh": 1.0, + "bmaxoh0": 14.014526759498645, + "jscoh_bop": 352385554.89995176, + "jcableoh_bop": 74000966.52898985, + "rjohc0": 35502718.394214965, + "cohbop": 19215412.29241038, + "bmaxoh": 13.963104694327475, + "jscoh_eof": 357052284.7559312, + "jcableoh_eof": 74980979.79874553, + "rjohc": 35972889.755086295, + "coheof": 20454478.696009487, + "areaoh": 9.074579923107418, + "awpoh": 4.353622265591202, + "awpoh*(1-vfohc)": 3.0475355859138413, + "awpoh*vfohc": 1.3060866796773605, + "areaoh-awpoh": 4.720957657516216, + "oh_steel_frac": 0.5202398014584474, + "i_cs_stress": 0.0, + "alstroh": 750000000.0, + "sig_hoop": 672149760.5902425, + "sig_axial": -765362193.9124677, + "s_tresca_oh": 672149760.5902425, + "axial_force": -1619388248.1701345, + "tfcoil_variables.str_cs_con_r": -0.005, + "fcuohsu": 0.7000000000000001, + "vfohc": 0.3, + "tftmp": 4.75, + "tmargoh": 1.5044615627792455, + "tmargmin_cs": 1.5, + "residual_sig_hoop": 240000000.0, + "tbrnmn": 7200.0, + "t_crack_vertical": 0.00089, + "t_crack_radial": 0.0026699999999999996, + "a_oh_turn": 0.001955561938022097, + "l_cond_cst": 0.07659429361294672, + "r_in_cst": 0.0074182349072730615, + "d_cond_cst": 0.02553143120431557, + "t_structural_vertical": 0.005347480694884724, + "t_structural_radial": 0.005347480694884724, + "n_cycle": 135.8422857046066, + "n_cycle_min": 20000.0, + "isumatpf": 3.0, + "fcupfsu": 0.69, + "sigpfcalw": 500.0, + "sigpfcf": 0.6660000000000001, + "rpf[0]": 5.566666666666666, + "zpf[0]": 9.371059049956695, + "pfdr(0)": 1.2683151833488946, + "pfdz(0)": 1.2683151833488928, + "turns[0]": 442.37143618616824, + "ric[0]": 17.69485744744673, + "bpf[0]": 6.191359669633713, + "rpf[1]": 5.566666666666666, + "zpf[1]": -10.604942880750857, + "pfdr(1)": 1.3600487310857812, + "pfdz(1)": -1.3600487310857794, + "turns[1]": 508.67645150521156, + "ric[1]": 20.34705806020846, + "bpf[1]": 6.658540993643877, + "rpf[2]": 16.737054748216458, + "zpf[2]": 2.6666666666666665, + "pfdr(2)": 1.1330649473603884, + "pfdz(2)": 1.1330649473603893, + "turns[2]": 192.57542624052033, + "ric[2]": -7.703017049620812, + "bpf[2]": 2.6379469690893345, + "rpf[3]": 16.737054748216458, + "zpf[3]": -2.6666666666666665, + "pfdr(3)": 1.1330649473603884, + "pfdz(3)": -1.1330649473603893, + "turns[3]": 192.57542624052033, + "ric[3]": -7.703017049620812, + "bpf[3]": 2.6379469690893345, + "rpf[4]": 15.214762622032426, + "zpf[4]": 7.466666666666666, + "pfdr(4)": 0.8065946800406465, + "pfdz(4)": 0.8065946800406465, + "turns[4]": 130.11899557397473, + "ric[4]": -5.204759822958989, + "bpf[4]": 2.5701375259367465, + "rpf[5]": 15.214762622032426, + "zpf[5]": -7.466666666666666, + "pfdr(5)": 0.8065946800406465, + "pfdz(5)": -0.8065946800406465, + "turns[5]": 130.11899557397473, + "ric[5]": -5.204759822958989, + "bpf[5]": 2.5701375259367465, + "rpf[nohc-1]": 2.264421629106843, + "zpf[nohc-1]": 0.0, + "ohdr": 0.5717066382900822, + "ohdz": 15.87279089542949, + "turns[nohc-1]": 4640.395042810902, + "ric[nohc-1]": -185.61580171243608, + "bpf[nohc-1]": 14.014526759498645, + "ssq0": 0.00034489046110061975, + "alfapf": 5e-10, + "vstot": -570.0, + "fcohbop": 0.9394232225609916, + "fcohbof": -0.13815159398525864, + "ncirt": 8.0, + "pfc0t0": 0.0, + "pfc0t1": 13876718.90048715, + "pfc0t2": 17694857.44744673, + "pfc0t3": 17694857.44744673, + "pfc0t4": 882616.322707653, + "pfc0t5": 0.0, + "pfc1t0": 0.0, + "pfc1t1": 18143223.487206817, + "pfc1t2": 20347058.060208462, + "pfc1t3": 20347058.060208462, + "pfc1t4": -1634236.6705107838, + "pfc1t5": 0.0, + "pfc2t0": -0.0, + "pfc2t1": 494127.52580783895, + "pfc2t2": -7104360.323212635, + "pfc2t3": -7104360.323212635, + "pfc2t4": -7703017.049620813, + "pfc2t5": -0.0, + "pfc3t0": -0.0, + "pfc3t1": 494127.52580783895, + "pfc3t2": -7104360.323212635, + "pfc3t3": -7104360.323212635, + "pfc3t4": -7703017.049620813, + "pfc3t5": -0.0, + "pfc4t0": -0.0, + "pfc4t1": 311170.46841456083, + "pfc4t2": -4827763.431852445, + "pfc4t3": -4827763.431852445, + "pfc4t4": -5204759.822958989, + "pfc4t5": -0.0, + "pfc5t0": -0.0, + "pfc5t1": 311170.46841456083, + "pfc5t2": -4827763.431852445, + "pfc5t3": -4827763.431852445, + "pfc5t4": -5204759.822958989, + "pfc5t5": -0.0, + "cs_t0": -0.0, + "cs_t1": 174371794.6029387, + "cs_t2": 25643118.875424743, + "cs_t3": 25643118.875424743, + "cs_t4": -185615801.71243608, + "cs_t5": -0.0, + "plasmat0": 0.0, + "plasmat1": 0.0, + "plasmat2": 16528278.760008097, + "plasmat3": 16528278.760008097, + "plasmat4": 16528278.760008097, + "plasmat5": 0.0, + "fncmass": 226414.89817936163, + "aintmass": 4320849.388558835, + "coldmass": 34483447.61357749, + "clgsmass": 1280211.0687773996, + "gsm1": 85819.53724071878, + "gsm2": 401715.3656188316, + "gsm3": 685685.2931011935, + "x_shield": 4.056, + "x_blanket": 2.2911207098527977, + "tfc_nuc_heating": 15010.517437669394, + "ptfnuc.": 0.024399555522080427, + "powfmw.": 1625.4972970384704, + "dp_he": 550000.0, + "fpump": 0.08946326171265166, + "p_plasma": 1671.9742663381444, + "t_in_compressor": 557.0266128917227, + "t_in_bb": 573.13, + "t_out_bb": 773.13, + "htpmw_fw_blkt": 164.27703032343044, + "htpmw_div": 1.6962349622927138, + "htpmw_shld": 0.007091948864551574, + "fbltibe12": 0.375, + "fblli2sio4": 0.375, + "fblss_ccfe": 0.09705, + "vfcblkt": 0.05295, + "vfpblkt": 0.1, + "fw_armour_vol": 5.869213885622797, + "volfw": 19.806924177715423, + "volblkt": 1184.9001123070318, + "volshld": 785.1983441824417, + "vdewin": 1017.7969703762566, + "fw_armour_mass": 112982.36729823884, + "fwmass": 154494.0085861803, + "whtblkt": 2967570.482271838, + "whtbltibe12": 1004202.8451802094, + "whtblli4sio4": 1066410.1010763287, + "whtblss": 896957.5360153001, + "armour_fw_bl_mass": 3235046.8581562573, + "whtshld": 2449818.8338492177, + "vvmass": 7938816.368934802, + "ptfnuc": 0.025446040769260235, + "pnucfw": 163.6877633222338, + "pnucblkt": 1294.309408421096, + "pnucshld": 1.4183897729103148, + "pnucdiv": 149.54575132753928, + "exp_blanket": 0.9993559308836573, + "exp_shield1": 0.0019523496307253152, + "exp_shield2": 0.2542676059101394, + "fdiv": 0.115, + "secondary_cycle": 2.0, + "fwpressure": 15500000.0, + "blpressure": 15500000.0, + "nblktmodpi": 7.0, + "nblktmodti": 32.0, + "nblktmodpo": 8.0, + "nblktmodto": 48.0, + "etaiso": 0.9, + "fwarea": 1604.4317885488435, + "rdewex": 17.803587221896652, + "zdewex": 15.348796828906451, + "divsur": 148.7858280740126, + "divmas": 36452.52787813309, + "itfka": 87.38058190140124, + "ntfc": 16.0, + "tchghr": 4.0, + "ltfth": 32.25734545397118, + "rcoils": 0.0, + "tfcv": 300.3134460048771, + "ntfbkr": 16.0, + "ndumpr": 64.0, + "r1dump": 0.10829918177004177, + "r1ppmw": 206.7259751082294, + "r1emj": 1924.1895070728715, + "ttfsec": 18.615875558081985, + "tfpsv": 315.32911830512097, + "tfpska": 91.7496109964713, + "tfckw": 28931.323940355127, + "tfackw": 32145.915489283474, + "rpower": 9.137630210330306, + "xpower": 17.1039334543909, + "djmka": 0.125, + "albusa": 699.0446552112099, + "tfbusl": 3193.061929829747, + "albuswt": 602.6650764675866, + "rtfbus": 0.0011967507646026248, + "vtfbus": 104.57277820192421, + "drarea": 4964.708948425594, + "tfcfsp": 1819.7416453357514, + "tfcbv": 10918.44987201451, + "xpwrmw": 19.00437050487878, + "tfacpd": 10.152922455922562, + "pfckts": 12.0, + "spsmva": 304.0408070294364, + "spfbusl": 2448.0, + "pfbuspwr": 964.9306270770265, + "srcktpm": 964.9306270770267, + "vpfskv": 20.0, + "etapsu": 0.9, + "ensxpfm": 28756.732216271674, + "peakpoloidalpower": 173.98503881633206, + "rat": 1.3e-08, + "ogas": 0.00016690576987239827, + "pbase": 0.0005, + "s(1)": 0.33381153974479655, + "snet(1)": 23.99270157129931, + "volume": 2258.798499653022, + "pend": 0.1659466933010761, + "pstart": 0.001659466933010761, + "dwell_pump": 0.0, + "tdwell.": 1800.0, + "tramp.": 500.0, + "tpump": 1800.0, + "s(2)": 5.778973059309295, + "snet(2)": 58.16367479041741, + "prdiv": 0.36, + "fhe": 0.17011638731333348, + "s(3)": 39.017095302024366, + "snet(3)": 39.017095302024366, + "frate": 2.817683913486213e-05, + "s(4)": 39.01709530202437, + "snet(4)": 58.16367479041741, + "nduct": 16.0, + "d(imax)": 0.4840599772915367, + "l1": 1.7267257166233632, + "dout": 0.580871972749844, + "l2": 4.8, + "l3": 2.0, + "pumpn": 32.0, + "vrci": 998672.3282036675, + "wrbi": 39.553139173576874, + "efloor": 337127.3773393309, + "rbv": 1132687.9344686102, + "rmbv": 396414.1029567147, + "wsv": 125307.1237284889, + "triv": 40000.0, + "elev": 51918.449872014506, + "conv": 60000.0, + "cryv": 16436.65301015729, + "admv": 100000.0, + "shov": 100000.0, + "volnucb": 1576830.2078990284, + "basemw": 5.0, + "bdvmw": 0.0, + "crymw": 44.04446574153632, + "htpmw..": 190.78201980987092, + "ppfmw": 86.67458882108461, + "ptfmw": 10.152922455922562, + "pheatingmw": 154.16563328004403, + "trithtmw..": 15.0, + "vachtmw..": 0.5, + "pacpmw": 501.31963010845845, + "fcsht": 55.56910660089964, + "qss/1.0d6": 0.025765247523735987, + "qnuc/1.0d6": 0.013, + "qac/1.0d6": 0.0038140264669585906, + "qcl/1.0d6": 0.019014014621744908, + "qmisc/1.0d6": 0.027716979875597767, + "helpow_+_helpow_cryal/1.0d6": 0.08931026848803725, + "tmpcry": 4.5, + "tcoolin": 313.15, + "efficiency_(figure_of_merit)_of_cryogenic_plant_is_13%_of_ideal_carnot_v": 0.0020277296360485266, + "efficiency_(figure_of_merit)_of_cryogenic_aluminium_plant_is_40%_of_idea": -2.0203225806451637, + "crypmw": 44.04446574153632, + "emult": 1.269, + "fhcd": 0.0, + "1-fdiv-fhcd": 0.885, + "primary_pumping": 3.0, + "htpmw_fw": 0.0, + "htpmw_blkt": 0.0, + "htpmwe_fw_blkt": 188.8241727855522, + "htpmwe_shld": 0.008151665361553533, + "htpmwe_div": 1.949695358957142, + "htpmw": 190.78201980987092, + "fpumpshld": 0.005, + "fpumpdiv": 0.005, + "etahtp": 0.8700000000000001, + "etath": 0.4, + "pdivfraction": 0.15649504113269377, + "total_power_leaving_reactor_(across_vacuum_vessel_boundary)_(mw)": 2014.3938675622935, + "fachtmw": 55.56910660089964, + "htpsecmw": 24.801662575283217, + "pinjht": 77.08281664002202, + "trithtmw": 15.0, + "vachtmw": 0.5, + "tfcmw": 0.0, + "psechtmw": 228.41021269512945, + "pthermmw": 2178.620005804185, + "nphx": 3.0, + "pscalingmw": 296.84628118361235, + "pcoreradmw.": 90.59670654590884, + "total_(mw)": 387.4429877295212, + "falpha*palpmw": 308.4716151216976, + "pchargemw.": 1.2742705174783238, + "pohmmw.": 0.6142852823203814, + "pinjmw": 77.08281664002202, + "emultmw": 309.3692915940389, + "pinjmw.": 77.08281664002202, + "htpmw_mech": 165.9803572345877, + "pthermfw_blkt": 1836.2512966615748, + "pthermshld": 1.4254817217748663, + "pthermdiv": 340.94322742083546, + "psechcd": 0.0, + "pnetelmw.": 400.0000617927041, + "pnetelin": 400.0, + "pinjwp": 154.16563328004403, + "pfwpmw": 1.23379264069643, + "tot_plant_power": 871.4480023216739, + "pgrossmw": 871.448002321674, + "pnetelmw": 400.0000617927041, + "rejected_main": 1307.172003482511, + "pnetelmw/(powfmw+emultmw": 20.673263166708, + "pnetelmw/powfmw": 24.607857701238455, + "cirpowfr": 0.5409937704521196, + "waterusetower": 55574.03111394033, + "wateruserecirc": 18646.27777831903, + "wateruseonethru": 1827335.2222752648, + "error_status": 2.0, + "error_id": 244.0 +} \ No newline at end of file diff --git a/tests/regression/input_files/st_regression.IN.DAT b/tests/regression/input_files/st_regression.IN.DAT index 3e9a6220ae..5fca03a72f 100644 --- a/tests/regression/input_files/st_regression.IN.DAT +++ b/tests/regression/input_files/st_regression.IN.DAT @@ -2152,7 +2152,7 @@ tfootfi = 1.0 *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Vertical Build~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* *‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ -vgap = 0.75 +vgap_xpoint_divertor = 0.75 * DESCRIPTION: Vertical Gap Between x-point and Divertor (m) * JUSTIFICATION: @@ -2180,7 +2180,7 @@ thshield_vb = 0.075 * DESCRIPTION: TF-VV Thermal Shield Thickness (m) * JUSTIFICATION: -vgap2 = 2.0 +vgap_vv_thermalshield = 2.0 * DESCRIPTION: Vertical Gap Between Vacuum Vessel and TF coil (m) * JUSTIFICATION: diff --git a/tests/regression/input_files/stellarator.IN.DAT b/tests/regression/input_files/stellarator.IN.DAT index aaf77a1387..046b6df70b 100644 --- a/tests/regression/input_files/stellarator.IN.DAT +++ b/tests/regression/input_files/stellarator.IN.DAT @@ -159,7 +159,7 @@ scraplo = 0.2 *Gap between plasma and first wall; outboard side (m) shldith = 0.2 *Inboard shield thickness (m) shldoth = 0.2 *Outboard shield thickness (m) shldtth = 0.2 *Upper/lower shield thickness (m) -vgap = 0. *Vertical gap between x-point and divertor (m) +vgap_xpoint_divertor = 0. *Vertical gap between x-point and divertor (m) thkcas = 0.05 * Thickness TF Coil case (for stellarator: Also for toroidal direction) *---------------Constraint Variables---------------* diff --git a/tests/unit/test_divertor.py b/tests/unit/test_divertor.py index 34f0da4ce8..965fce9718 100644 --- a/tests/unit/test_divertor.py +++ b/tests/unit/test_divertor.py @@ -137,13 +137,13 @@ def test_divtart(self, monkeypatch, divertor): rminor = 0.97142857142857153 triang = 0.5 scrapli = 0.09595 - vgap = 0.5 + vgap_xpoint_divertor = 0.5 pdivt = 7.7197999809272062 monkeypatch.setattr(dv, "i_hldiv", 1) expected_hldiv = 0.087770426974167357 - hldiv = divertor.divtart(rmajor, rminor, triang, scrapli, vgap, pdivt, False) + hldiv = divertor.divtart(rmajor, rminor, triang, scrapli, vgap_xpoint_divertor, pdivt, False) assert hldiv == pytest.approx(expected_hldiv) diff --git a/tests/unit/test_sctfcoil.py b/tests/unit/test_sctfcoil.py index 2c420a64a6..0a6e800648 100644 --- a/tests/unit/test_sctfcoil.py +++ b/tests/unit/test_sctfcoil.py @@ -14062,7 +14062,7 @@ def test_vv_stress_on_quench_integration(sctfcoil, monkeypatch): monkeypatch.setattr(sctfcoil_module, "a_case_front", 0.47) monkeypatch.setattr(sctfcoil_module, "a_case_nose", 0.47) - monkeypatch.setattr(build_variables, "vgap", 0.05) # Baseline 2018 + monkeypatch.setattr(build_variables, "vgap_xpoint_divertor", 0.05) # Baseline 2018 monkeypatch.setattr(build_variables, "shldtth", 0.3) # Baseline 2018 monkeypatch.setattr( divertor_variables, "divfix", 2.05 From 8a858f601e680959f30467a2c16306ac1a128550 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Mon, 16 Sep 2024 09:51:36 +0100 Subject: [PATCH 02/11] remove env from gitignore --- .gitignore | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 61747066b1..15dbf1b786 100644 --- a/.gitignore +++ b/.gitignore @@ -61,5 +61,4 @@ REBCO_JC.DAT python_modules.txt quench_data.DAT env-fork -*SIG_TF.json -venvprocess/ \ No newline at end of file +*SIG_TF.json \ No newline at end of file From fc6a0babf7e72881e2edb23f7a20d47862b46adf Mon Sep 17 00:00:00 2001 From: ym1906 Date: Tue, 17 Sep 2024 15:39:00 +0100 Subject: [PATCH 03/11] remove erronoeus mfile_to_in script --- mfile_to_in.py | 409 ------------------------------------------------- 1 file changed, 409 deletions(-) delete mode 100644 mfile_to_in.py diff --git a/mfile_to_in.py b/mfile_to_in.py deleted file mode 100644 index 2dd880cfae..0000000000 --- a/mfile_to_in.py +++ /dev/null @@ -1,409 +0,0 @@ -"""Convert an output mfile to an input file. - -Take the optimisation parameter solution vector from the output mfile and -use it as the initial optimisation parameter vector in a new input file. -""" - -from process.io.mfile import MFile -from process.io.in_dat import InDat -from pathlib import Path -from typing import Optional, Sequence -import re -from shutil import copy - - -"""Unfortunately, f-values have to be detected in two ways. This is because -they are enabled as: -ixc = 23 * fdene -or just -ixc = 23 -to enable the f-value as an optimisation parameter, and -fdene = 1.2 -to set the value. - -When disabling the f-value as an opt param, the number has to -be used as the presence of the comment can't be relied on. - -When ignoring the solution value of an f-value opt param, as the inital point -value is desired instead, the name of the f-value variable must be used. This -is because the itvarxxx number has no relation to the opt param number, and can't -be used for identification. - -Therefore the numbers are recognised in an f-value opt param number list, but -the f-value names are recognised by finding variables beginning with f, then -ignoring ones that are known not to be f-values. -""" - -# List of optimisation param numbers that are f-values -F_VALUE_OPT_PARAM_NUMBERS = [ - 9, - 14, - 15, - 21, - 25, - 26, - 27, - 28, - 30, - 32, - 33, - 34, - 35, - 36, - 38, - 39, - 40, - 45, - 46, - 48, - 49, - 50, - 51, - 53, - 54, - 62, - 63, - 64, - 66, - 67, - 68, - 71, - 72, - 79, - 86, - 89, - 92, - 95, - 96, - 97, - 103, - 104, - 105, - 106, - 107, - 110, - 111, - 112, - 113, - 115, - 116, - 117, - 118, - 123, - 137, - 141, - 143, - 144, - 146, - 147, - 149, - 153, - 154, - 157, - 159, - 160, - 161, - 164, - 165, - 166, - 167, - 168, -] - -# Optimisation parameters that start with f, but are not f-values -STARTS_WITH_F_BUT_NOT_F_VALUE_NAMES = [ - "fcohbop", - "fvsbrnni", - "feffcd", - "fcutfsu", - "fimp", - "fgwped", - "fwcoolant", - "fwinlet", - "fwoutlet", - "fw_channel_length", - "fgwsep", - "ftar", - "f_vforce_inboard", - "fseppc", - "fwbsshape", - "fw_armour_thickness", - "fw_wall", - "fcontng", - "fkind", -] - - -def convert( - original_in_name: str, - new_in_name: str, - no_optimisation: Optional[bool] = True, - n_equalities: Optional[int] = None, - mfile_name: Optional[str] = None, - remove_f_value_inits: Optional[bool] = False, -) -> Path: - """Convert input file to a modified new one. - - If input file and n_equalities provided, just convert input to inequalities. - If mfile is provided, copy solution vector to new input file. - - Parameters - ---------- - original_in_name : str - the IN.DAT used to create the MFILE.DAT solution - new_in_name : str - modified input file to be created - no_optimisation : Optional[bool], optional - convert IN.DAT to non-optimising run, by default True - n_equalities : Optional[int], optional - how many of the constraints to make equalities. The first n_equalities - constraints will be left as equalities, the rest converted to - inequalities, by default None - mfile_name : Optional[str], optional - if mfile supplied, extract solution vector into new input file, by - default None - remove_f_value_inits : Optional[bool], optional - remove f-value initialisations, e.g. `fthresh = 0.8`, by default False - - Returns - ------- - Path - path to solution input file - """ - # Create new input file, optionally overwriting with solution vector - if mfile_name: - # Extract solution vector from mfile, copy into new input file - sol_in_dat_path = overwrite_sol_vector( - mfile_name=mfile_name, - original_in_name=original_in_name, - new_in_name=new_in_name, - ) - else: - # Just copy original input to new path - sol_in_dat_path = copy(original_in_name, new_in_name) - - # Additional modifications to top of input file - top_content = [] - if no_optimisation: - top_content.extend(["* Once through only: no optimisation", "ioptimz = -2"]) - - if n_equalities is not None: - # Write neqns count - top_content.extend( - [ - "* Define number of equality constraints, and", - "* use inequality constraints: corresponding f-values removed", - f"neqns = {n_equalities}", - ] - ) - - new_content = [line + "\n" for line in top_content] - - # Write top and main content, removing f-values if necessary - with open(sol_in_dat_path, "r") as f: - content = f.readlines() - - if n_equalities: - # Remove all f-values as opt params - main_content = remove_f_values(content, remove_f_value_inits) - else: - main_content = content - - new_content.extend(main_content) - - with open(sol_in_dat_path, "w") as f: - f.writelines(new_content) - - return sol_in_dat_path - - -def overwrite_sol_vector( - mfile_name: str, original_in_name: str, new_in_name: str -) -> Path: - """Extract solution vector from mfile, copy into new input file. - - Parameters - ---------- - mfile_name : str - output containing solution vector - original_in_name : str - original input file - new_in_name : str - input file with initial optimisation parameter vector overwritten with - the solution vector - - Returns - ------- - Path - path to new solution vector input file - """ - # Pattern for single array element, e.g. fimp(13) - array_el_re = re.compile(r"(\w+)\((\d+)\)") - - # First, extract the solution (optimisation parameters) from the mfile - # Create Mfile object from mfile - mfile_path = Path(mfile_name) - mfile = MFile(mfile_path) - - # Get number of optimisation parameters - n = int(mfile.data["nvar"].get_scan(-1)) - - # Get all n optimisation parameter names and values from "itvarxxx" number - opt_params = {} - for i in range(n): - opt_param_no = f"itvar{i+1:03}" - param_name = mfile.data[opt_param_no].var_description - param_value = mfile.data[opt_param_no].get_scan(-1) - opt_params[param_name] = param_value - - # Now overwrite the original input file with the solution as the initial - # optimisation parameters - # Read in original IN.DAT - in_dat_path = Path(original_in_name) - in_dat = InDat(in_dat_path) - - # Discard optimisation parameter f-value values at solution - # Retain initial values of f-values as in input file - dropped_sol_f_value_count = 0 - - # Change to the new optimisation parameter values - for var_name, value in opt_params.items(): - # Check for f-values - if var_name.startswith("f"): - # Get part before ( (in case var is array) - var_name_fmt = var_name.split("(")[0] - if var_name_fmt not in STARTS_WITH_F_BUT_NOT_F_VALUE_NAMES: - # Opt param is probably an f-value: don't overwrite IN.DAT with - # solution value of f-value - # Debug - # print(f"Dropping sol value for f-value {var_name}") - dropped_sol_f_value_count += 1 - continue - - # Otherwise update new IN.DAT value with solution value - matches = array_el_re.match(var_name) - if matches is not None: - # Found a single array element e.g. fimp(13) - array_name = matches.group(1) - array_index = matches.group(2) - py_array_index = int(array_index) - 1 - - in_dat.change_array( - array_name=array_name, array_index=py_array_index, array_value=value - ) - else: - # Set individual parameter - in_dat.add_parameter(var_name, value) - - print(f"Optimisation parameter f-values ignored = {dropped_sol_f_value_count}") - - # Write out new IN.DAT, with optimisation parameters set to original - # solution vector - sol_in_dat_path = Path(new_in_name) - in_dat.write_in_dat(sol_in_dat_path) - return sol_in_dat_path - - -def remove_f_values( - lines_with_f_values: Sequence[str], remove_f_value_inits: bool -) -> list[str]: - """Remove f-value optimisation parameters from input file lines. - - Removes `ixc = 23 * fthresh` line if opt param 23 is f-value. - Optionally removes f-value value initialisations `fthresh = 0.8`. - - Parameters - ---------- - lines_with_f_values : Sequence[str] - lines from original input file - remove_f_value_inits : bool - remove f-value initialisations, e.g. `fthresh = 0.8` - - Returns - ------- - list[str] - lines with f-value optimisation parameters removed - """ - # f-value opt params removed (ixc = 23 * fdene) - f_value_removal_count = 0 - # f-value initialisations removed (fthresh = 0.8) - f_value_init_removal_count = 0 - # Lines that will be included in new IN.DAT - lines_without_f_values = [] - # Opt params beginning with f that aren't on the ignore list - suspect_opt_params_beginning_with_f = [] - - # Read each line searching for optimisation parameter numbers, e.g. ixc = 23 - # Don't also search for comment (e.g. ixc = 23 * fdene) as it may not be there: - # Just look for opt param number - opt_param_re = re.compile(r"ixc\s*=\s*(\d+)") - - # If not already found in the f-value opt param number list, attempt to - # find any opt params starting with f (depends on "*" comment) - opt_param_beginning_with_f_re = re.compile(r"ixc\s*=\s*(\d+)\s*\*\s*(f\w+)") - - # Any line starting with f (could be f-value value definition) - possible_f_value_init = re.compile(r"^(f\w+)\s*=\s*(\d*\.?\d*)") - - for line in lines_with_f_values: - # Search for known opt param numbers that are f-values - # e.g. icx = 23 - matches = opt_param_re.match(line) - if matches is not None: - # Found an opt param line - opt_param_number = matches.group(1) - if int(opt_param_number) in F_VALUE_OPT_PARAM_NUMBERS: - # Found an f-value: drop the line - line_fmt = line.removesuffix("\n") - # Debug - # print(f'Removing "{line_fmt}"') - f_value_removal_count += 1 - continue - - # Check if line contains opt param beginning with an f: - # Not known f-value (would be in numbers list), but suspicious as could be - # e.g. ixc = 23 * fdene - matches = opt_param_beginning_with_f_re.match(line) - if matches is not None: - # Check name not on known "not an f-value" list - if matches.group(2) not in STARTS_WITH_F_BUT_NOT_F_VALUE_NAMES: - # Opt param, starts with f, not known as a "non-f-value" var - # Could be an f-value - suspect_opt_params_beginning_with_f.append(line) - - # Optionally, remove any f-value initialisations - # e.g. `fthresh = 0.8` - if remove_f_value_inits: - matches = possible_f_value_init.match(line) - if matches is not None: - if matches.group(1) not in STARTS_WITH_F_BUT_NOT_F_VALUE_NAMES: - # Found possible f-value initialisation: check if >1.0 - if float(matches.group(2)) <= 1.0: - # Drop the line - print( - f"Removing f-value initialisation for {matches.group(1)} = {matches.group(2)}" - ) - f_value_init_removal_count += 1 - continue - else: - # Keep the f-value if >1.0: relaxes inequality constraint beyond min or max - print( - f"Keeping f-value initialisation for {matches.group(1)} = {matches.group(2)}" - ) - - # Non f-value opt param, (optionally not) f-value initialisation or other - # line: keep - lines_without_f_values.append(line) - - # Print out potential f-value vars if any - if len(suspect_opt_params_beginning_with_f) > 0: - raise ValueError( - f"Suspect opt params to check aren't f-values: {suspect_opt_params_beginning_with_f}" - ) - else: - print(f"f-values removed as optimisation parameters = {f_value_removal_count}") - - if remove_f_value_inits: - print(f"f-value initialisations removed = {f_value_init_removal_count}") - - return lines_without_f_values From 47b7ee226bfa0382ba60dce2c29f2cbf83d0c475 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Tue, 17 Sep 2024 15:49:48 +0100 Subject: [PATCH 04/11] black fix for test_divertor --- tests/unit/test_divertor.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/unit/test_divertor.py b/tests/unit/test_divertor.py index 965fce9718..1bfd919ead 100644 --- a/tests/unit/test_divertor.py +++ b/tests/unit/test_divertor.py @@ -143,7 +143,9 @@ def test_divtart(self, monkeypatch, divertor): expected_hldiv = 0.087770426974167357 - hldiv = divertor.divtart(rmajor, rminor, triang, scrapli, vgap_xpoint_divertor, pdivt, False) + hldiv = divertor.divtart( + rmajor, rminor, triang, scrapli, vgap_xpoint_divertor, pdivt, False + ) assert hldiv == pytest.approx(expected_hldiv) From b567bd284aa2eccb78ce1a5f5e5a54ad6f12205a Mon Sep 17 00:00:00 2001 From: ym1906 Date: Tue, 17 Sep 2024 16:21:04 +0100 Subject: [PATCH 05/11] black and flake fix --- process/utilities/errorlist.json | 2574 +++++++++++++----------------- 1 file changed, 1126 insertions(+), 1448 deletions(-) diff --git a/process/utilities/errorlist.json b/process/utilities/errorlist.json index f07b31d373..284c90d1ea 100644 --- a/process/utilities/errorlist.json +++ b/process/utilities/errorlist.json @@ -1,1449 +1,1127 @@ { - "version": [ - "PROCESS version 2.1.1" - ], - "comment1": [ - "List of error messages used via error_handling.f90" - ], - "comment2": [ - "Increment n_errortypes if an error is added to this list" - ], - "n_errortypes": 287, - "errors": [ - { - "no": 1, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 7 if ignite=1" - }, - { - "no": 2, - "level": 3, - "message": "CONSTRAINTS: Constraint equation 15 is redundant" - }, - { - "no": 3, - "level": 3, - "message": "CONSTRAINTS: Constraint equation 23 is redundant; use 33 and/or 35 instead" - }, - { - "no": 4, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 28 if ignite=1" - }, - { - "no": 5, - "level": 3, - "message": "CONSTRAINTS: tpeak = 0 ==> lpulse=0; do not use constraint 39 if lpulse=0" - }, - { - "no": 6, - "level": 3, - "message": "CONSTRAINTS: tcycmn = 0 ==> lpulse=0; do not use constraint 42 if lpulse=0" - }, - { - "no": 7, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 43 if itart=0" - }, - { - "no": 8, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 44 if itart=0" - }, - { - "no": 9, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 45 if itart=0" - }, - { - "no": 10, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 46 if itart=0" - }, - { - "no": 11, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 47 if irfp=0" - }, - { - "no": 12, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 50 if ife=0" - }, - { - "no": 13, - "level": 3, - "message": "CONSTRAINTS: No such constraint equation number..." - }, - { - "no": 14, - "level": 3, - "message": "CONSTRAINTS: NaN/infty error for constraint equation..." - }, - { - "no": 15, - "level": 3, - "message": "ITERNB: Imminent negative square root argument; NBI will miss plasma completely" - }, - { - "no": 16, - "level": 2, - "message": "LHRAD: LH penetration radius not found after lapno iterations, using 0.8*rminor" - }, - { - "no": 17, - "level": 3, - "message": "ECCDEF: Negative normalised current drive efficiency" - }, - { - "no": 18, - "level": 3, - "message": "LEGEND: Invalid argument" - }, - { - "no": 19, - "level": 3, - "message": "LEGEND: Solution has not converged" - }, - { - "no": 20, - "level": 3, - "message": "CULNBI: Imminent negative square root argument; NBI will miss plasma completely" - }, - { - "no": 21, - "level": 3, - "message": "ETANB2: Imminent negative square root argument; NBI will miss plasma completely" - }, - { - "no": 22, - "level": 3, - "message": "DIVCALL: Non-positive vgap_xpoint_divertor" - }, - { - "no": 23, - "level": 3, - "message": "FUNFOM: Figure of merit cfactr requires iavail=1" - }, - { - "no": 24, - "level": 3, - "message": "FUNFOM: No such figure of merit" - }, - { - "no": 25, - "level": 3, - "message": "FUNFOM: NaN error in figure of merit calculation" - }, - { - "no": 26, - "level": 3, - "message": "IFEFBS: Illegal fbreed value" - }, - { - "no": 27, - "level": 3, - "message": "INIT_IMP_ELEMENT: Illegal impurity number" - }, - { - "no": 28, - "level": 3, - "message": "INIT_IMP_ELEMENT: Allocation problem" - }, - { - "no": 29, - "level": 2, - "message": "INIT_IMP_ELEMENT: Impurity datafiles missing; switching to original model" - }, - { - "no": 30, - "level": 3, - "message": "IMPORT_IMPDATA: Problem opening impurity data file" - }, - { - "no": 31, - "level": 3, - "message": "IMPORT_IMPDATA: Problem reading impurity data file header" - }, - { - "no": 32, - "level": 3, - "message": "IMPORT_IMPDATA: Problem reading impurity data file contents" - }, - { - "no": 33, - "level": 3, - "message": "Z2INDEX: Element with the given charge is not in the impurity array" - }, - { - "no": 34, - "level": 3, - "message": "ELEMENT2INDEX: Element with given label not found in impurity array" - }, - { - "no": 35, - "level": 2, - "message": "PIMPDEN: Impurity radiation model is inaccurate at such low temperatures" - }, - { - "no": 36, - "level": 3, - "message": "CHECK: Fuel ion fractions do not sum to 1.0; check fdeut, ftrit, fhe3 values" - }, - { - "no": 37, - "level": 2, - "message": "CHECK: Usual current scaling for TARTs (icurr=2 or 9) is not being used" - }, - { - "no": 38, - "level": 3, - "message": "CHECK: Invalid boostrap current law for ST, do not use ibss = 1" - }, - { - "no": 39, - "level": 1, - "message": "CHECK: Operating with a single null in a double null machine" - }, - { - "no": 40, - "level": 2, - "message": "CHECK: icurr=2 is not a valid option for a non-TART device" - }, - { - "no": 41, - "level": 3, - "message": "CHECK: ncls(i) .ne. 2 is not a valid option except for (ipfloc = 2)" - }, - { - "no": 42, - "level": 3, - "message": "CHECK: Only 1 divertor coil (ipfloc = 2) is not a valid configuration" - }, - { - "no": 43, - "level": 3, - "message": "CHECK: More than 2 divertor coils (ipfloc = 2) is not a valid configuration" - }, - { - "no": 44, - "level": 3, - "message": "CHECK: If snull=1, use 2 individual divertor coils (ipfloc = 2, 2; ncls = 1, 1)" - }, - { - "no": 45, - "level": 3, - "message": "CHECK: itart=1 is not a valid option for the RFP model" - }, - { - "no": 46, - "level": 3, - "message": "LOADXC: Do not use tfcth as an iteration variable if istell=1" - }, - { - "no": 47, - "level": 3, - "message": "LOADXC: Do not use cdtfleg as an iteration variable if itfsup=1 or irfp=1" - }, - { - "no": 48, - "level": 3, - "message": "LOADXC: Do not use thkcas as an iteration variable if istell=1" - }, - { - "no": 49, - "level": 3, - "message": "LOADXC: Do not use cpttf as an iteration variable if itfsup=0 or istell=1" - }, - { - "no": 50, - "level": 3, - "message": "LOADXC: Do not use tohs as an iteration variable if lpulse /= 1" - }, - { - "no": 51, - "level": 3, - "message": "LOADXC: Do not use tftort as an iteration variable if irfp=0" - }, - { - "no": 52, - "level": 3, - "message": "LOADXC: Do not use helecmw as an iteration variable if ihplant is not 1,2 or 3" - }, - { - "no": 53, - "level": 3, - "message": "LOADXC: Do not use hthermmw as an iteration variable if ihplant < 4" - }, - { - "no": 54, - "level": 3, - "message": "LOADXC: Illegal iteration variable number" - }, - { - "no": 55, - "level": 3, - "message": "LOADXC: Iteration variable is zero; change its initial value or lower bound" - }, - { - "no": 56, - "level": 3, - "message": "LOADXC: NaN error for iteration variable" - }, - { - "no": 57, - "level": 3, - "message": "CONVXC: Illegal iteration variable number" - }, - { - "no": 58, - "level": 3, - "message": "CONVXC: Iteration variable is zero; change its initial value or lower bound" - }, - { - "no": 59, - "level": 3, - "message": "CONVXC: NaN error for iteration variable" - }, - { - "no": 60, - "level": 3, - "message": "CONVXC: scale(i) = 0 for iteration variable" - }, - { - "no": 61, - "level": 3, - "message": "RADIALB: fhole+fdiv+fhcd is too high for a credible outboard wall area" - }, - { - "no": 62, - "level": 1, - "message": "RADIALB: Ripple result may be inaccurate, as the fit has been extrapolated" - }, - { - "no": 63, - "level": 2, - "message": "PORTSZ: Max beam tangency radius set =0 temporarily; change beamwd" - }, - { - "no": 64, - "level": 3, - "message": "PFCOIL: ngrp is larger than ngrpmx" - }, - { - "no": 65, - "level": 3, - "message": "PFCOIL: Too many coils in a PF coil group" - }, - { - "no": 66, - "level": 3, - "message": "PFCOIL: Too many filaments nfxf repesenting the OH coil" - }, - { - "no": 67, - "level": 3, - "message": "PFCOIL: Illegal ipfloc value" - }, - { - "no": 68, - "level": 3, - "message": "PFCOIL: Too many test points npts across plasma midplane" - }, - { - "no": 69, - "level": 3, - "message": "PFCOIL: ipfloc(i) should not be 1 if itart=1" - }, - { - "no": 70, - "level": 3, - "message": "PFCOIL: Illegal value of ipfloc(i)" - }, - { - "no": 71, - "level": 2, - "message": "PFCOIL: OH coil not present; check volt-second calculations..." - }, - { - "no": 72, - "level": 3, - "message": "PEAKB: Illegal value of it; possible rounding error" - }, - { - "no": 73, - "level": 2, - "message": "INDUCT: Max no. of segments noh for OH coil > nohmax; increase ohcth lower bound" - }, - { - "no": 74, - "level": 3, - "message": "INDUCT: Negative square root imminent; raise ohcth or its upper limit" - }, - { - "no": 75, - "level": 3, - "message": "PHYSICS: Illegal value of ibss" - }, - { - "no": 76, - "level": 3, - "message": "BOOTSTRAP_FRACTION_WILSON: Illegal profile value found" - }, - { - "no": 77, - "level": 3, - "message": "CULCUR: Illegal value for icurr" - }, - { - "no": 78, - "level": 2, - "message": "PLASMA_COMPOSITION: Fuel ion density is zero or negative; forced to be positive" - }, - { - "no": 79, - "level": 3, - "message": "CULDLM: Illegal value for idensl" - }, - { - "no": 80, - "level": 2, - "message": "CULDLM: qcyl < 4/3; dlimit(4) set to zero; model 5 will be enforced instead" - }, - { - "no": 81, - "level": 3, - "message": "PCOND: Illegal value for isc" - }, - { - "no": 82, - "level": 3, - "message": "RADPWR: Illegal value for imprad_model" - }, - { - "no": 83, - "level": 2, - "message": "POHM: Negative plasma resistance rplas" - }, - { - "no": 84, - "level": 3, - "message": "SGVHOT: Illegal value for iabm" - }, - { - "no": 85, - "level": 3, - "message": "OUTPLAS: Illegal value of idivrt" - }, - { - "no": 86, - "level": 3, - "message": "OUTPLAS: Illegal value of ishape" - }, - { - "no": 87, - "level": 2, - "message": "OUTPLAS: Possible problem with high radiation power, forcing pdivt to odd values" - }, - { - "no": 88, - "level": 2, - "message": "ITERATE_FW: Optimisation has failed within 100 iterations; possible NaN problems" - }, - { - "no": 89, - "level": 3, - "message": "ITERATE_FW: Inner pipe radius afw >= outer pipe radius bfw" - }, - { - "no": 90, - "level": 2, - "message": "THRMAL: Swelling limit exceeded; optimisation failing to find a FW thickness" - }, - { - "no": 91, - "level": 3, - "message": "SMT: No reliable data for SMT stress for temperatures > 600 degrees Celsius" - }, - { - "no": 92, - "level": 2, - "message": "CYCLES: Fatigue data unreliable for T > 649 degrees Celsius" - }, - { - "no": 93, - "level": 2, - "message": "BURN: Negative burn time available; reduce t_fusion_ramp or raise PF coil V-s capability" - }, - { - "no": 94, - "level": 3, - "message": "SCAN: Illegal value of isweep" - }, - { - "no": 95, - "level": 3, - "message": "SCAN: Do not scan cfactr if iavail=1" - }, - { - "no": 96, - "level": 3, - "message": "SCAN: Illegal scan variable number nsweep" - }, - { - "no": 97, - "level": 2, - "message": "SCTFCOIL: Negative TF coil current; ritfc forced to be positive..." - }, - { - "no": 98, - "level": 2, - "message": "SCTFCOIL: Negative winding pack thickness; increase tfcth or its lower bound" - }, - { - "no": 99, - "level": 2, - "message": "SCTFCOIL: Winding pack cross-section problem..." - }, - { - "no": 100, - "level": 2, - "message": "SCTFCOIL: Negative cable space dimension; reduce conduit thicknesses or raise cpttf" - }, - { - "no": 101, - "level": 2, - "message": "SCTFCOIL: Negative cable space dimension" - }, - { - "no": 102, - "level": 2, - "message": "SCTFCOIL: Cable space area problem; artificially set rounded corner radius to 0" - }, - { - "no": 103, - "level": 2, - "message": "SCTFCOIL: Inconsistent TF leg toroidal thickness; should never happen!" - }, - { - "no": 104, - "level": 0, - "message": "OBSOLETE" - }, - { - "no": 105, - "level": 3, - "message": "SUPERCON: Illegal value for i_tf_sc_mat" - }, - { - "no": 106, - "level": 2, - "message": "BI2212: Fit extrapolated outside of range of validity" - }, - { - "no": 107, - "level": 3, - "message": "STHEAT: Illegal value for isthtr" - }, - { - "no": 108, - "level": 3, - "message": "STDLIM: Negative square root imminent" - }, - { - "no": 109, - "level": 3, - "message": "STCOIL: Illegal value for nbticool" - }, - { - "no": 110, - "level": 3, - "message": "STCOIL: Use i_tf_sc_mat = 1 or 3 with the stellarator model" - }, - { - "no": 111, - "level": 2, - "message": "INTERSECT: X ranges not overlapping" - }, - { - "no": 112, - "level": 2, - "message": "INTERSECT: X has dropped below Xmin; X has been set equal to Xmin" - }, - { - "no": 113, - "level": 2, - "message": "INTERSECT: X has risen above Xmax; X has been set equal to Xmax" - }, - { - "no": 114, - "level": 2, - "message": "INTERSECT: Convergence too slow; X may be wrong..." - }, - { - "no": 115, - "level": 3, - "message": "CPOST: Illegal value for rtop" - }, - { - "no": 116, - "level": 3, - "message": "CPOST: Illegal value for ztop" - }, - { - "no": 117, - "level": 3, - "message": "CPOST: Illegal value for rmid" - }, - { - "no": 118, - "level": 3, - "message": "CPOST: Illegal value for hmax" - }, - { - "no": 119, - "level": 3, - "message": "CPOST: Illegal value for fcool" - }, - { - "no": 120, - "level": 3, - "message": "CPOST: rtop < rmid" - }, - { - "no": 121, - "level": 3, - "message": "CPOST: hmax < ztop" - }, - { - "no": 122, - "level": 2, - "message": "CPOST: Silly answers because fcool=1.0..." - }, - { - "no": 123, - "level": 3, - "message": "CPOST: R(Z) is negative" - }, - { - "no": 124, - "level": 2, - "message": "VACUUM: Newton's method not converging; check fusion power, te" - }, - { - "no": 125, - "level": 3, - "message": "ACC2253: Illegal value for istore" - }, - { - "no": 126, - "level": 3, - "message": "CUDRIV: Illegal value for iefrf" - }, - { - "no": 127, - "level": 3, - "message": "IFE: Illegal value for ifedrv" - }, - { - "no": 128, - "level": 3, - "message": "TBR_BREED: Unknown tritium breeder specified" - }, - { - "no": 129, - "level": 3, - "message": "CULLHY: Normalised LH efficiency < 0; use a different value of iefrf" - }, - { - "no": 130, - "level": 3, - "message": "REPORT_INPUT_ERROR: Error detected in input file - see OUT.DAT for more details" - }, - { - "no": 131, - "level": 2, - "message": "EQSLV: Non-optimisation solver HYBRD returns with ifail /= 1" - }, - { - "no": 132, - "level": 2, - "message": "DOOPT: Optimisation solver VMCON returns with ifail /= 1" - }, - { - "no": 133, - "level": 2, - "message": "EQSLV: High final HYBRD constraint residues" - }, - { - "no": 134, - "level": 2, - "message": "DOOPT: High final VMCON constraint residues" - }, - { - "no": 135, - "level": 1, - "message": "OUTPF: CS not using max current density: further optimisation may be possible" - }, - { - "no": 136, - "level": 2, - "message": "BETCOM: Low density... carbon impurity fraction forced to be no more than 0.05" - }, - { - "no": 137, - "level": 3, - "message": "CHECK: Insufficient iteration variables to solve the problem! NVAR < NEQNS" - }, - { - "no": 138, - "level": 2, - "message": "CHECK: Beware; ion power balance may not be correct with new radiation model" - }, - { - "no": 139, - "level": 3, - "message": "CHECK: The number of iteration variables specified is smaller than the number stated in ixc" - }, - { - "no": 140, - "level": 3, - "message": "CHECK: The number of constraints specified is smaller than the number stated in neqns+nineqns" - }, - { - "no": 141, - "level": 1, - "message": "RADIALB: (TF coil ripple calculation) Dimensionless coil width X out of fitted range" - }, - { - "no": 142, - "level": 1, - "message": "RADIALB: (TF coil ripple calculation) No of TF coils not between 16 and 20 inclusive" - }, - { - "no": 143, - "level": 1, - "message": "RADIALB: (TF coil ripple calculation) (R+a)/rtot out of fitted range" - }, - { - "no": 144, - "level": 1, - "message": "OUTTF: (TF coil peak field calculation) Winding pack width out of fitted range" - }, - { - "no": 145, - "level": 1, - "message": "OUTTF: (TF coil peak field calculation) Winding pack radial thickness out of fitted range" - }, - { - "no": 146, - "level": 3, - "message": "CHECK: temperature pedestal is lower than separatrix temperature" - }, - { - "no": 147, - "level": 2, - "message": "CHECK: temperature pedestal is at plasma edge, but teped differs from tesep" - }, - { - "no": 148, - "level": 2, - "message": "TPROFILE: temperature pedestal is higher than core temperature" - }, - { - "no": 149, - "level": 2, - "message": "CHECK: volume-averaged temperature has been forced to exceed input pedestal height" - }, - { - "no": 150, - "level": 2, - "message": "CHECK: Lower limit of volume averaged electron temperature (te) has been raised to ensure te > teped" - }, - { - "no": 151, - "level": 3, - "message": "CHECK: density pedestal is lower than separatrix density" - }, - { - "no": 152, - "level": 2, - "message": "CHECK: density pedestal is at plasma edge, but neped differs from nesep" - }, - { - "no": 153, - "level": 2, - "message": "NPROFILE: density pedestal is higher than core density" - }, - { - "no": 154, - "level": 2, - "message": "CHECK: neped set with fgwped without constraint eq 81 (neped 273.15 K" - }, - { - "no": 242, - "level": 2, - "message": "PHYSICS: Bootstrap fraction upper limit enforced" - }, - { - "no": 243, - "level": 2, - "message": "PHYSICS: Predicted plasma driven current is more than upper limit on non-inductive fraction." - }, - { - "no": 244, - "level": 2, - "message": "PHYSICS: Diamagnetic fraction is more than 1%, but not calculated. Consider using idia=2 and ips=1." - }, - { - "no": 245, - "level": 2, - "message": "[sctfcoil] Invalid stress model (r_tf_inboard = 0), stress constraint switched off" - }, - { - "no": 246, - "level": 3, - "message": "CHECK: Invalid stress model if bore + gapoh + ohcth = 0. Don't use constraint 31" - }, - { - "no": 247, - "level": 3, - "message": "CHECK: Bucked and wedged TF design not yet implemented" - }, - { - "no": 248, - "level": 3, - "message": "CHECK: TF cryo-plant efficiency `eff_tf_cryo` must be within [0-1]" - }, - { - "no": 249, - "level": 2, - "message": "[tfcoil][cntrpst] Negative conductor average temperature difference, set to 0" - }, - { - "no": 250, - "level": 2, - "message": "[tfcoil][cntrpst] Negative conductor peak temperature difference, set to 0" - }, - { - "no": 251, - "level": 3, - "message": "LOADXC: Beta should not be in ixc if istell>0. Use Constraints 24 and 84 instead." - }, - { - "no": 252, - "level": 3, - "message": "CHECK: No CS precompression structure for bucked and wedged, use iprecomp = 0." - }, - { - "no": 253, - "level": 3, - "message": "CHECK: Use generalized plane strain for resistive magnets (i_tf_stress_model = 0 or 2)." - }, - { - "no": 254, - "level": 3, - "message": "CHECK: integer turns (i_tf_turns_integer = 1) not supported for REBCO (i_tf_sc_mat = 6)" - }, - { - "no": 255, - "level": 3, - "message": "CHECK: The TF coil WP thickness (dr_tf_wp) must be at least" - }, - { - "no": 256, - "level": 2, - "message": "CHECK: Top CP radius larger that its value determined with plasma shape" - }, - { - "no": 257, - "level": 2, - "message": "[tfcoil] : Helium temperature out of helium property fiting range [4-50] K" - }, - { - "no": 258, - "level": 2, - "message": "[tfcoil] : Aluminium temperature out of the th conductivity fit range [15-60] K" - }, - { - "no": 259, - "level": 3, - "message": "CHECK: Constraint equation 10 (CP lifetime) to used with ST desing (itart=1)" - }, - { - "no": 260, - "level": 3, - "message": "CHECK: Al TF coil fluence not calculated properly for Al CP, do not use constraint 85" - }, - { - "no": 261, - "level": 2, - "message": "[tfcoil]: TF strain was outside the region of applicability. Used lower strain" - }, - { - "no": 262, - "level": 2, - "message": "REBCO : Non physical strain used in CS. Use superconductor strain < +/- 0.7% " - }, - { - "no": 263, - "level": 2, - "message": "REBCO : Non physical strain used in PF. Use superconductor strain < +/- 0.7% " - }, - { - "no": 264, - "level": 3, - "message": "REBCO : turn off CS temperature margin constraint icc = 60 when using REBCO" - }, - { - "no": 265, - "level": 3, - "message": "REBCO : turn off TF temperature margin constraint icc = 36 when using REBCO" - }, - { - "no": 266, - "level": 2, - "message": "REBCO : Field on superconductor > 14 T (outside of interpolation range)" - }, - { - "no": 267, - "level": 3, - "message": "CHECK: To set the TF CP top value, you must use i_r_cp_top = 1" - }, - { - "no": 268, - "level": 2, - "message": "[radialb]: TF CP top radius (r_cp_top) replaced by 1.01*r_tf_inboard_out -> potential top rbuild issue" - }, - { - "no": 269, - "level": 3, - "message": "CHECK: Impossible to set the TF turn/cable size with the integer turn option (i_tf_turns_integer: 1) " - }, - { - "no": 270, - "level": 3, - "message": "CHECK: The LTS conductor temperature (tftmp) has to be lower than 10" - }, - { - "no": 271, - "level": 3, - "message": "CHECK: Impossible to set the TF coil turn and cable size simultaneously" - }, - { - "no": 272, - "level": 2, - "message": "Double-null: Upper vertical build forced to match lower" - }, - { - "no": 273, - "level": 3, - "message": "[tfcoil]: tmpcry should be lower than tftmp" - }, - { - "no": 274, - "level": 2, - "message": "[HCPB]: Blanket heating is <1 MW or NaN. Is something wrong?" - }, - { - "no": 275, - "level": 3, - "message": "CONSTRAINTS: Can't use constraint 88 if i_strain_tf == 0" - }, - { - "no": 276, - "level": 2, - "message": "CHECK: One of the areas or fractions is negative in the internal SC TF coil geometry" - }, - { - "no": 277, - "level": 2, - "message": "CHECK: One or more collision between TF and PF coils. Check PF placement." - }, - { - "no": 278, - "level": 2, - "message": "CHECK: Your blanket modules are too small for the Liquid Metal pipes." - }, - { - "no": 279, - "level": 3, - "message": "CHECK: Pressure drops in coolant are too large to be feasable." - }, - { - "no": 280, - "level": 2, - "message": "CHECK: Outside temperature limit for one or more liquid metal breeder properties." - }, - { - "no": 281, - "level": 3, - "message": "CHECK: Cannot have i_tf_bucking >= 2 when tf_in_cs = 1" - }, - { - "no": 282, - "level": 2, - "message": "CHECK: ncore is going negative when solving. Please raise the value of dene and or its lower limit." - }, - { - "no": 283, - "level": 3, - "message": "[tfcoil]: Can only have i_tf_turns_integer = 1 with i_tf_wp_geom = 0" - }, - { - "no": 284, - "level": 3, - "message": "CHECK: idia = 0 should be used with the Sakai plasma current scaling." - }, - { - "no": 285, - "level": 2, - "message": "[tfcoil]: fiooic shouldn't be above 0.7 for engineering reliability." - }, - { - "no": 286, - "level": 2, - "message": "[pfcoil][cntrpost]: fjohc shouldn't be above 0.7 for engineering reliability." - }, - { - "no": 287, - "level": 2, - "message": "[pfcoil][cntrpost]: fjohc0 shouldn't be above 0.7 for engineering reliability." - } - ] -} \ No newline at end of file + "version": ["PROCESS version 2.1.1"], + "comment1": ["List of error messages used via error_handling.f90"], + "comment2": ["Increment n_errortypes if an error is added to this list"], + "n_errortypes": 287, + "errors": [ + { + "no": 1, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 7 if ignite=1", + }, + { + "no": 2, + "level": 3, + "message": "CONSTRAINTS: Constraint equation 15 is redundant", + }, + { + "no": 3, + "level": 3, + "message": "CONSTRAINTS: Constraint equation 23 is redundant; use 33 and/or 35 instead", + }, + { + "no": 4, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 28 if ignite=1", + }, + { + "no": 5, + "level": 3, + "message": "CONSTRAINTS: tpeak = 0 ==> lpulse=0; do not use constraint 39 if lpulse=0", + }, + { + "no": 6, + "level": 3, + "message": "CONSTRAINTS: tcycmn = 0 ==> lpulse=0; do not use constraint 42 if lpulse=0", + }, + { + "no": 7, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 43 if itart=0", + }, + { + "no": 8, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 44 if itart=0", + }, + { + "no": 9, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 45 if itart=0", + }, + { + "no": 10, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 46 if itart=0", + }, + { + "no": 11, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 47 if irfp=0", + }, + { + "no": 12, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 50 if ife=0", + }, + { + "no": 13, + "level": 3, + "message": "CONSTRAINTS: No such constraint equation number...", + }, + { + "no": 14, + "level": 3, + "message": "CONSTRAINTS: NaN/infty error for constraint equation...", + }, + { + "no": 15, + "level": 3, + "message": "ITERNB: Imminent negative square root argument; NBI will miss plasma completely", + }, + { + "no": 16, + "level": 2, + "message": "LHRAD: LH penetration radius not found after lapno iterations, using 0.8*rminor", + }, + { + "no": 17, + "level": 3, + "message": "ECCDEF: Negative normalised current drive efficiency", + }, + {"no": 18, "level": 3, "message": "LEGEND: Invalid argument"}, + {"no": 19, "level": 3, "message": "LEGEND: Solution has not converged"}, + { + "no": 20, + "level": 3, + "message": "CULNBI: Imminent negative square root argument; NBI will miss plasma completely", + }, + { + "no": 21, + "level": 3, + "message": "ETANB2: Imminent negative square root argument; NBI will miss plasma completely", + }, + {"no": 22, "level": 3, "message": "DIVCALL: Non-positive vgap_xpoint_divertor"}, + { + "no": 23, + "level": 3, + "message": "FUNFOM: Figure of merit cfactr requires iavail=1", + }, + {"no": 24, "level": 3, "message": "FUNFOM: No such figure of merit"}, + { + "no": 25, + "level": 3, + "message": "FUNFOM: NaN error in figure of merit calculation", + }, + {"no": 26, "level": 3, "message": "IFEFBS: Illegal fbreed value"}, + {"no": 27, "level": 3, "message": "INIT_IMP_ELEMENT: Illegal impurity number"}, + {"no": 28, "level": 3, "message": "INIT_IMP_ELEMENT: Allocation problem"}, + { + "no": 29, + "level": 2, + "message": "INIT_IMP_ELEMENT: Impurity datafiles missing; switching to original model", + }, + { + "no": 30, + "level": 3, + "message": "IMPORT_IMPDATA: Problem opening impurity data file", + }, + { + "no": 31, + "level": 3, + "message": "IMPORT_IMPDATA: Problem reading impurity data file header", + }, + { + "no": 32, + "level": 3, + "message": "IMPORT_IMPDATA: Problem reading impurity data file contents", + }, + { + "no": 33, + "level": 3, + "message": "Z2INDEX: Element with the given charge is not in the impurity array", + }, + { + "no": 34, + "level": 3, + "message": "ELEMENT2INDEX: Element with given label not found in impurity array", + }, + { + "no": 35, + "level": 2, + "message": "PIMPDEN: Impurity radiation model is inaccurate at such low temperatures", + }, + { + "no": 36, + "level": 3, + "message": "CHECK: Fuel ion fractions do not sum to 1.0; check fdeut, ftrit, fhe3 values", + }, + { + "no": 37, + "level": 2, + "message": "CHECK: Usual current scaling for TARTs (icurr=2 or 9) is not being used", + }, + { + "no": 38, + "level": 3, + "message": "CHECK: Invalid boostrap current law for ST, do not use ibss = 1", + }, + { + "no": 39, + "level": 1, + "message": "CHECK: Operating with a single null in a double null machine", + }, + { + "no": 40, + "level": 2, + "message": "CHECK: icurr=2 is not a valid option for a non-TART device", + }, + { + "no": 41, + "level": 3, + "message": "CHECK: ncls(i) .ne. 2 is not a valid option except for (ipfloc = 2)", + }, + { + "no": 42, + "level": 3, + "message": "CHECK: Only 1 divertor coil (ipfloc = 2) is not a valid configuration", + }, + { + "no": 43, + "level": 3, + "message": "CHECK: More than 2 divertor coils (ipfloc = 2) is not a valid configuration", + }, + { + "no": 44, + "level": 3, + "message": "CHECK: If snull=1, use 2 individual divertor coils (ipfloc = 2, 2; ncls = 1, 1)", + }, + { + "no": 45, + "level": 3, + "message": "CHECK: itart=1 is not a valid option for the RFP model", + }, + { + "no": 46, + "level": 3, + "message": "LOADXC: Do not use tfcth as an iteration variable if istell=1", + }, + { + "no": 47, + "level": 3, + "message": "LOADXC: Do not use cdtfleg as an iteration variable if itfsup=1 or irfp=1", + }, + { + "no": 48, + "level": 3, + "message": "LOADXC: Do not use thkcas as an iteration variable if istell=1", + }, + { + "no": 49, + "level": 3, + "message": "LOADXC: Do not use cpttf as an iteration variable if itfsup=0 or istell=1", + }, + { + "no": 50, + "level": 3, + "message": "LOADXC: Do not use tohs as an iteration variable if lpulse /= 1", + }, + { + "no": 51, + "level": 3, + "message": "LOADXC: Do not use tftort as an iteration variable if irfp=0", + }, + { + "no": 52, + "level": 3, + "message": "LOADXC: Do not use helecmw as an iteration variable if ihplant is not 1,2 or 3", + }, + { + "no": 53, + "level": 3, + "message": "LOADXC: Do not use hthermmw as an iteration variable if ihplant < 4", + }, + {"no": 54, "level": 3, "message": "LOADXC: Illegal iteration variable number"}, + { + "no": 55, + "level": 3, + "message": "LOADXC: Iteration variable is zero; change its initial value or lower bound", + }, + {"no": 56, "level": 3, "message": "LOADXC: NaN error for iteration variable"}, + {"no": 57, "level": 3, "message": "CONVXC: Illegal iteration variable number"}, + { + "no": 58, + "level": 3, + "message": "CONVXC: Iteration variable is zero; change its initial value or lower bound", + }, + {"no": 59, "level": 3, "message": "CONVXC: NaN error for iteration variable"}, + { + "no": 60, + "level": 3, + "message": "CONVXC: scale(i) = 0 for iteration variable", + }, + { + "no": 61, + "level": 3, + "message": "RADIALB: fhole+fdiv+fhcd is too high for a credible outboard wall area", + }, + { + "no": 62, + "level": 1, + "message": "RADIALB: Ripple result may be inaccurate, as the fit has been extrapolated", + }, + { + "no": 63, + "level": 2, + "message": "PORTSZ: Max beam tangency radius set =0 temporarily; change beamwd", + }, + {"no": 64, "level": 3, "message": "PFCOIL: ngrp is larger than ngrpmx"}, + {"no": 65, "level": 3, "message": "PFCOIL: Too many coils in a PF coil group"}, + { + "no": 66, + "level": 3, + "message": "PFCOIL: Too many filaments nfxf repesenting the OH coil", + }, + {"no": 67, "level": 3, "message": "PFCOIL: Illegal ipfloc value"}, + { + "no": 68, + "level": 3, + "message": "PFCOIL: Too many test points npts across plasma midplane", + }, + { + "no": 69, + "level": 3, + "message": "PFCOIL: ipfloc(i) should not be 1 if itart=1", + }, + {"no": 70, "level": 3, "message": "PFCOIL: Illegal value of ipfloc(i)"}, + { + "no": 71, + "level": 2, + "message": "PFCOIL: OH coil not present; check volt-second calculations...", + }, + { + "no": 72, + "level": 3, + "message": "PEAKB: Illegal value of it; possible rounding error", + }, + { + "no": 73, + "level": 2, + "message": "INDUCT: Max no. of segments noh for OH coil > nohmax; increase ohcth lower bound", + }, + { + "no": 74, + "level": 3, + "message": "INDUCT: Negative square root imminent; raise ohcth or its upper limit", + }, + {"no": 75, "level": 3, "message": "PHYSICS: Illegal value of ibss"}, + { + "no": 76, + "level": 3, + "message": "BOOTSTRAP_FRACTION_WILSON: Illegal profile value found", + }, + {"no": 77, "level": 3, "message": "CULCUR: Illegal value for icurr"}, + { + "no": 78, + "level": 2, + "message": "PLASMA_COMPOSITION: Fuel ion density is zero or negative; forced to be positive", + }, + {"no": 79, "level": 3, "message": "CULDLM: Illegal value for idensl"}, + { + "no": 80, + "level": 2, + "message": "CULDLM: qcyl < 4/3; dlimit(4) set to zero; model 5 will be enforced instead", + }, + {"no": 81, "level": 3, "message": "PCOND: Illegal value for isc"}, + {"no": 82, "level": 3, "message": "RADPWR: Illegal value for imprad_model"}, + {"no": 83, "level": 2, "message": "POHM: Negative plasma resistance rplas"}, + {"no": 84, "level": 3, "message": "SGVHOT: Illegal value for iabm"}, + {"no": 85, "level": 3, "message": "OUTPLAS: Illegal value of idivrt"}, + {"no": 86, "level": 3, "message": "OUTPLAS: Illegal value of ishape"}, + { + "no": 87, + "level": 2, + "message": "OUTPLAS: Possible problem with high radiation power, forcing pdivt to odd values", + }, + { + "no": 88, + "level": 2, + "message": "ITERATE_FW: Optimisation has failed within 100 iterations; possible NaN problems", + }, + { + "no": 89, + "level": 3, + "message": "ITERATE_FW: Inner pipe radius afw >= outer pipe radius bfw", + }, + { + "no": 90, + "level": 2, + "message": "THRMAL: Swelling limit exceeded; optimisation failing to find a FW thickness", + }, + { + "no": 91, + "level": 3, + "message": "SMT: No reliable data for SMT stress for temperatures > 600 degrees Celsius", + }, + { + "no": 92, + "level": 2, + "message": "CYCLES: Fatigue data unreliable for T > 649 degrees Celsius", + }, + { + "no": 93, + "level": 2, + "message": "BURN: Negative burn time available; reduce t_fusion_ramp or raise PF coil V-s capability", + }, + {"no": 94, "level": 3, "message": "SCAN: Illegal value of isweep"}, + {"no": 95, "level": 3, "message": "SCAN: Do not scan cfactr if iavail=1"}, + {"no": 96, "level": 3, "message": "SCAN: Illegal scan variable number nsweep"}, + { + "no": 97, + "level": 2, + "message": "SCTFCOIL: Negative TF coil current; ritfc forced to be positive...", + }, + { + "no": 98, + "level": 2, + "message": "SCTFCOIL: Negative winding pack thickness; increase tfcth or its lower bound", + }, + { + "no": 99, + "level": 2, + "message": "SCTFCOIL: Winding pack cross-section problem...", + }, + { + "no": 100, + "level": 2, + "message": "SCTFCOIL: Negative cable space dimension; reduce conduit thicknesses or raise cpttf", + }, + {"no": 101, "level": 2, "message": "SCTFCOIL: Negative cable space dimension"}, + { + "no": 102, + "level": 2, + "message": "SCTFCOIL: Cable space area problem; artificially set rounded corner radius to 0", + }, + { + "no": 103, + "level": 2, + "message": "SCTFCOIL: Inconsistent TF leg toroidal thickness; should never happen!", + }, + {"no": 104, "level": 0, "message": "OBSOLETE"}, + {"no": 105, "level": 3, "message": "SUPERCON: Illegal value for i_tf_sc_mat"}, + { + "no": 106, + "level": 2, + "message": "BI2212: Fit extrapolated outside of range of validity", + }, + {"no": 107, "level": 3, "message": "STHEAT: Illegal value for isthtr"}, + {"no": 108, "level": 3, "message": "STDLIM: Negative square root imminent"}, + {"no": 109, "level": 3, "message": "STCOIL: Illegal value for nbticool"}, + { + "no": 110, + "level": 3, + "message": "STCOIL: Use i_tf_sc_mat = 1 or 3 with the stellarator model", + }, + {"no": 111, "level": 2, "message": "INTERSECT: X ranges not overlapping"}, + { + "no": 112, + "level": 2, + "message": "INTERSECT: X has dropped below Xmin; X has been set equal to Xmin", + }, + { + "no": 113, + "level": 2, + "message": "INTERSECT: X has risen above Xmax; X has been set equal to Xmax", + }, + { + "no": 114, + "level": 2, + "message": "INTERSECT: Convergence too slow; X may be wrong...", + }, + {"no": 115, "level": 3, "message": "CPOST: Illegal value for rtop"}, + {"no": 116, "level": 3, "message": "CPOST: Illegal value for ztop"}, + {"no": 117, "level": 3, "message": "CPOST: Illegal value for rmid"}, + {"no": 118, "level": 3, "message": "CPOST: Illegal value for hmax"}, + {"no": 119, "level": 3, "message": "CPOST: Illegal value for fcool"}, + {"no": 120, "level": 3, "message": "CPOST: rtop < rmid"}, + {"no": 121, "level": 3, "message": "CPOST: hmax < ztop"}, + {"no": 122, "level": 2, "message": "CPOST: Silly answers because fcool=1.0..."}, + {"no": 123, "level": 3, "message": "CPOST: R(Z) is negative"}, + { + "no": 124, + "level": 2, + "message": "VACUUM: Newton's method not converging; check fusion power, te", + }, + {"no": 125, "level": 3, "message": "ACC2253: Illegal value for istore"}, + {"no": 126, "level": 3, "message": "CUDRIV: Illegal value for iefrf"}, + {"no": 127, "level": 3, "message": "IFE: Illegal value for ifedrv"}, + { + "no": 128, + "level": 3, + "message": "TBR_BREED: Unknown tritium breeder specified", + }, + { + "no": 129, + "level": 3, + "message": "CULLHY: Normalised LH efficiency < 0; use a different value of iefrf", + }, + { + "no": 130, + "level": 3, + "message": "REPORT_INPUT_ERROR: Error detected in input file - see OUT.DAT for more details", + }, + { + "no": 131, + "level": 2, + "message": "EQSLV: Non-optimisation solver HYBRD returns with ifail /= 1", + }, + { + "no": 132, + "level": 2, + "message": "DOOPT: Optimisation solver VMCON returns with ifail /= 1", + }, + { + "no": 133, + "level": 2, + "message": "EQSLV: High final HYBRD constraint residues", + }, + { + "no": 134, + "level": 2, + "message": "DOOPT: High final VMCON constraint residues", + }, + { + "no": 135, + "level": 1, + "message": "OUTPF: CS not using max current density: further optimisation may be possible", + }, + { + "no": 136, + "level": 2, + "message": "BETCOM: Low density... carbon impurity fraction forced to be no more than 0.05", + }, + { + "no": 137, + "level": 3, + "message": "CHECK: Insufficient iteration variables to solve the problem! NVAR < NEQNS", + }, + { + "no": 138, + "level": 2, + "message": "CHECK: Beware; ion power balance may not be correct with new radiation model", + }, + { + "no": 139, + "level": 3, + "message": "CHECK: The number of iteration variables specified is smaller than the number stated in ixc", + }, + { + "no": 140, + "level": 3, + "message": "CHECK: The number of constraints specified is smaller than the number stated in neqns+nineqns", + }, + { + "no": 141, + "level": 1, + "message": "RADIALB: (TF coil ripple calculation) Dimensionless coil width X out of fitted range", + }, + { + "no": 142, + "level": 1, + "message": "RADIALB: (TF coil ripple calculation) No of TF coils not between 16 and 20 inclusive", + }, + { + "no": 143, + "level": 1, + "message": "RADIALB: (TF coil ripple calculation) (R+a)/rtot out of fitted range", + }, + { + "no": 144, + "level": 1, + "message": "OUTTF: (TF coil peak field calculation) Winding pack width out of fitted range", + }, + { + "no": 145, + "level": 1, + "message": "OUTTF: (TF coil peak field calculation) Winding pack radial thickness out of fitted range", + }, + { + "no": 146, + "level": 3, + "message": "CHECK: temperature pedestal is lower than separatrix temperature", + }, + { + "no": 147, + "level": 2, + "message": "CHECK: temperature pedestal is at plasma edge, but teped differs from tesep", + }, + { + "no": 148, + "level": 2, + "message": "TPROFILE: temperature pedestal is higher than core temperature", + }, + { + "no": 149, + "level": 2, + "message": "CHECK: volume-averaged temperature has been forced to exceed input pedestal height", + }, + { + "no": 150, + "level": 2, + "message": "CHECK: Lower limit of volume averaged electron temperature (te) has been raised to ensure te > teped", + }, + { + "no": 151, + "level": 3, + "message": "CHECK: density pedestal is lower than separatrix density", + }, + { + "no": 152, + "level": 2, + "message": "CHECK: density pedestal is at plasma edge, but neped differs from nesep", + }, + { + "no": 153, + "level": 2, + "message": "NPROFILE: density pedestal is higher than core density", + }, + { + "no": 154, + "level": 2, + "message": "CHECK: neped set with fgwped without constraint eq 81 (neped 273.15 K", + }, + { + "no": 242, + "level": 2, + "message": "PHYSICS: Bootstrap fraction upper limit enforced", + }, + { + "no": 243, + "level": 2, + "message": "PHYSICS: Predicted plasma driven current is more than upper limit on non-inductive fraction.", + }, + { + "no": 244, + "level": 2, + "message": "PHYSICS: Diamagnetic fraction is more than 1%, but not calculated. Consider using idia=2 and ips=1.", + }, + { + "no": 245, + "level": 2, + "message": "[sctfcoil] Invalid stress model (r_tf_inboard = 0), stress constraint switched off", + }, + { + "no": 246, + "level": 3, + "message": "CHECK: Invalid stress model if bore + gapoh + ohcth = 0. Don't use constraint 31", + }, + { + "no": 247, + "level": 3, + "message": "CHECK: Bucked and wedged TF design not yet implemented", + }, + { + "no": 248, + "level": 3, + "message": "CHECK: TF cryo-plant efficiency `eff_tf_cryo` must be within [0-1]", + }, + { + "no": 249, + "level": 2, + "message": "[tfcoil][cntrpst] Negative conductor average temperature difference, set to 0", + }, + { + "no": 250, + "level": 2, + "message": "[tfcoil][cntrpst] Negative conductor peak temperature difference, set to 0", + }, + { + "no": 251, + "level": 3, + "message": "LOADXC: Beta should not be in ixc if istell>0. Use Constraints 24 and 84 instead.", + }, + { + "no": 252, + "level": 3, + "message": "CHECK: No CS precompression structure for bucked and wedged, use iprecomp = 0.", + }, + { + "no": 253, + "level": 3, + "message": "CHECK: Use generalized plane strain for resistive magnets (i_tf_stress_model = 0 or 2).", + }, + { + "no": 254, + "level": 3, + "message": "CHECK: integer turns (i_tf_turns_integer = 1) not supported for REBCO (i_tf_sc_mat = 6)", + }, + { + "no": 255, + "level": 3, + "message": "CHECK: The TF coil WP thickness (dr_tf_wp) must be at least", + }, + { + "no": 256, + "level": 2, + "message": "CHECK: Top CP radius larger that its value determined with plasma shape", + }, + { + "no": 257, + "level": 2, + "message": "[tfcoil] : Helium temperature out of helium property fiting range [4-50] K", + }, + { + "no": 258, + "level": 2, + "message": "[tfcoil] : Aluminium temperature out of the th conductivity fit range [15-60] K", + }, + { + "no": 259, + "level": 3, + "message": "CHECK: Constraint equation 10 (CP lifetime) to used with ST desing (itart=1)", + }, + { + "no": 260, + "level": 3, + "message": "CHECK: Al TF coil fluence not calculated properly for Al CP, do not use constraint 85", + }, + { + "no": 261, + "level": 2, + "message": "[tfcoil]: TF strain was outside the region of applicability. Used lower strain", + }, + { + "no": 262, + "level": 2, + "message": "REBCO : Non physical strain used in CS. Use superconductor strain < +/- 0.7% ", + }, + { + "no": 263, + "level": 2, + "message": "REBCO : Non physical strain used in PF. Use superconductor strain < +/- 0.7% ", + }, + { + "no": 264, + "level": 3, + "message": "REBCO : turn off CS temperature margin constraint icc = 60 when using REBCO", + }, + { + "no": 265, + "level": 3, + "message": "REBCO : turn off TF temperature margin constraint icc = 36 when using REBCO", + }, + { + "no": 266, + "level": 2, + "message": "REBCO : Field on superconductor > 14 T (outside of interpolation range)", + }, + { + "no": 267, + "level": 3, + "message": "CHECK: To set the TF CP top value, you must use i_r_cp_top = 1", + }, + { + "no": 268, + "level": 2, + "message": "[radialb]: TF CP top radius (r_cp_top) replaced by 1.01*r_tf_inboard_out -> potential top rbuild issue", + }, + { + "no": 269, + "level": 3, + "message": "CHECK: Impossible to set the TF turn/cable size with the integer turn option (i_tf_turns_integer: 1) ", + }, + { + "no": 270, + "level": 3, + "message": "CHECK: The LTS conductor temperature (tftmp) has to be lower than 10", + }, + { + "no": 271, + "level": 3, + "message": "CHECK: Impossible to set the TF coil turn and cable size simultaneously", + }, + { + "no": 272, + "level": 2, + "message": "Double-null: Upper vertical build forced to match lower", + }, + { + "no": 273, + "level": 3, + "message": "[tfcoil]: tmpcry should be lower than tftmp", + }, + { + "no": 274, + "level": 2, + "message": "[HCPB]: Blanket heating is <1 MW or NaN. Is something wrong?", + }, + { + "no": 275, + "level": 3, + "message": "CONSTRAINTS: Can't use constraint 88 if i_strain_tf == 0", + }, + { + "no": 276, + "level": 2, + "message": "CHECK: One of the areas or fractions is negative in the internal SC TF coil geometry", + }, + { + "no": 277, + "level": 2, + "message": "CHECK: One or more collision between TF and PF coils. Check PF placement.", + }, + { + "no": 278, + "level": 2, + "message": "CHECK: Your blanket modules are too small for the Liquid Metal pipes.", + }, + { + "no": 279, + "level": 3, + "message": "CHECK: Pressure drops in coolant are too large to be feasable.", + }, + { + "no": 280, + "level": 2, + "message": "CHECK: Outside temperature limit for one or more liquid metal breeder properties.", + }, + { + "no": 281, + "level": 3, + "message": "CHECK: Cannot have i_tf_bucking >= 2 when tf_in_cs = 1", + }, + { + "no": 282, + "level": 2, + "message": "CHECK: ncore is going negative when solving. Please raise the value of dene and or its lower limit.", + }, + { + "no": 283, + "level": 3, + "message": "[tfcoil]: Can only have i_tf_turns_integer = 1 with i_tf_wp_geom = 0", + }, + { + "no": 284, + "level": 3, + "message": "CHECK: idia = 0 should be used with the Sakai plasma current scaling.", + }, + { + "no": 285, + "level": 2, + "message": "[tfcoil]: fiooic shouldn't be above 0.7 for engineering reliability.", + }, + { + "no": 286, + "level": 2, + "message": "[pfcoil][cntrpost]: fjohc shouldn't be above 0.7 for engineering reliability.", + }, + { + "no": 287, + "level": 2, + "message": "[pfcoil][cntrpost]: fjohc0 shouldn't be above 0.7 for engineering reliability.", + }, + ], +} From 0a0a7bfa40acb0a3e1ecde1a99f6b4eb00956528 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Tue, 17 Sep 2024 16:26:03 +0100 Subject: [PATCH 06/11] errorlist refix --- process/utilities/errorlist.json | 2572 +++++++++++++++++------------- 1 file changed, 1447 insertions(+), 1125 deletions(-) diff --git a/process/utilities/errorlist.json b/process/utilities/errorlist.json index 284c90d1ea..20a2453f27 100644 --- a/process/utilities/errorlist.json +++ b/process/utilities/errorlist.json @@ -1,1127 +1,1449 @@ { - "version": ["PROCESS version 2.1.1"], - "comment1": ["List of error messages used via error_handling.f90"], - "comment2": ["Increment n_errortypes if an error is added to this list"], - "n_errortypes": 287, - "errors": [ - { - "no": 1, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 7 if ignite=1", - }, - { - "no": 2, - "level": 3, - "message": "CONSTRAINTS: Constraint equation 15 is redundant", - }, - { - "no": 3, - "level": 3, - "message": "CONSTRAINTS: Constraint equation 23 is redundant; use 33 and/or 35 instead", - }, - { - "no": 4, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 28 if ignite=1", - }, - { - "no": 5, - "level": 3, - "message": "CONSTRAINTS: tpeak = 0 ==> lpulse=0; do not use constraint 39 if lpulse=0", - }, - { - "no": 6, - "level": 3, - "message": "CONSTRAINTS: tcycmn = 0 ==> lpulse=0; do not use constraint 42 if lpulse=0", - }, - { - "no": 7, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 43 if itart=0", - }, - { - "no": 8, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 44 if itart=0", - }, - { - "no": 9, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 45 if itart=0", - }, - { - "no": 10, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 46 if itart=0", - }, - { - "no": 11, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 47 if irfp=0", - }, - { - "no": 12, - "level": 3, - "message": "CONSTRAINTS: Do not use constraint 50 if ife=0", - }, - { - "no": 13, - "level": 3, - "message": "CONSTRAINTS: No such constraint equation number...", - }, - { - "no": 14, - "level": 3, - "message": "CONSTRAINTS: NaN/infty error for constraint equation...", - }, - { - "no": 15, - "level": 3, - "message": "ITERNB: Imminent negative square root argument; NBI will miss plasma completely", - }, - { - "no": 16, - "level": 2, - "message": "LHRAD: LH penetration radius not found after lapno iterations, using 0.8*rminor", - }, - { - "no": 17, - "level": 3, - "message": "ECCDEF: Negative normalised current drive efficiency", - }, - {"no": 18, "level": 3, "message": "LEGEND: Invalid argument"}, - {"no": 19, "level": 3, "message": "LEGEND: Solution has not converged"}, - { - "no": 20, - "level": 3, - "message": "CULNBI: Imminent negative square root argument; NBI will miss plasma completely", - }, - { - "no": 21, - "level": 3, - "message": "ETANB2: Imminent negative square root argument; NBI will miss plasma completely", - }, - {"no": 22, "level": 3, "message": "DIVCALL: Non-positive vgap_xpoint_divertor"}, - { - "no": 23, - "level": 3, - "message": "FUNFOM: Figure of merit cfactr requires iavail=1", - }, - {"no": 24, "level": 3, "message": "FUNFOM: No such figure of merit"}, - { - "no": 25, - "level": 3, - "message": "FUNFOM: NaN error in figure of merit calculation", - }, - {"no": 26, "level": 3, "message": "IFEFBS: Illegal fbreed value"}, - {"no": 27, "level": 3, "message": "INIT_IMP_ELEMENT: Illegal impurity number"}, - {"no": 28, "level": 3, "message": "INIT_IMP_ELEMENT: Allocation problem"}, - { - "no": 29, - "level": 2, - "message": "INIT_IMP_ELEMENT: Impurity datafiles missing; switching to original model", - }, - { - "no": 30, - "level": 3, - "message": "IMPORT_IMPDATA: Problem opening impurity data file", - }, - { - "no": 31, - "level": 3, - "message": "IMPORT_IMPDATA: Problem reading impurity data file header", - }, - { - "no": 32, - "level": 3, - "message": "IMPORT_IMPDATA: Problem reading impurity data file contents", - }, - { - "no": 33, - "level": 3, - "message": "Z2INDEX: Element with the given charge is not in the impurity array", - }, - { - "no": 34, - "level": 3, - "message": "ELEMENT2INDEX: Element with given label not found in impurity array", - }, - { - "no": 35, - "level": 2, - "message": "PIMPDEN: Impurity radiation model is inaccurate at such low temperatures", - }, - { - "no": 36, - "level": 3, - "message": "CHECK: Fuel ion fractions do not sum to 1.0; check fdeut, ftrit, fhe3 values", - }, - { - "no": 37, - "level": 2, - "message": "CHECK: Usual current scaling for TARTs (icurr=2 or 9) is not being used", - }, - { - "no": 38, - "level": 3, - "message": "CHECK: Invalid boostrap current law for ST, do not use ibss = 1", - }, - { - "no": 39, - "level": 1, - "message": "CHECK: Operating with a single null in a double null machine", - }, - { - "no": 40, - "level": 2, - "message": "CHECK: icurr=2 is not a valid option for a non-TART device", - }, - { - "no": 41, - "level": 3, - "message": "CHECK: ncls(i) .ne. 2 is not a valid option except for (ipfloc = 2)", - }, - { - "no": 42, - "level": 3, - "message": "CHECK: Only 1 divertor coil (ipfloc = 2) is not a valid configuration", - }, - { - "no": 43, - "level": 3, - "message": "CHECK: More than 2 divertor coils (ipfloc = 2) is not a valid configuration", - }, - { - "no": 44, - "level": 3, - "message": "CHECK: If snull=1, use 2 individual divertor coils (ipfloc = 2, 2; ncls = 1, 1)", - }, - { - "no": 45, - "level": 3, - "message": "CHECK: itart=1 is not a valid option for the RFP model", - }, - { - "no": 46, - "level": 3, - "message": "LOADXC: Do not use tfcth as an iteration variable if istell=1", - }, - { - "no": 47, - "level": 3, - "message": "LOADXC: Do not use cdtfleg as an iteration variable if itfsup=1 or irfp=1", - }, - { - "no": 48, - "level": 3, - "message": "LOADXC: Do not use thkcas as an iteration variable if istell=1", - }, - { - "no": 49, - "level": 3, - "message": "LOADXC: Do not use cpttf as an iteration variable if itfsup=0 or istell=1", - }, - { - "no": 50, - "level": 3, - "message": "LOADXC: Do not use tohs as an iteration variable if lpulse /= 1", - }, - { - "no": 51, - "level": 3, - "message": "LOADXC: Do not use tftort as an iteration variable if irfp=0", - }, - { - "no": 52, - "level": 3, - "message": "LOADXC: Do not use helecmw as an iteration variable if ihplant is not 1,2 or 3", - }, - { - "no": 53, - "level": 3, - "message": "LOADXC: Do not use hthermmw as an iteration variable if ihplant < 4", - }, - {"no": 54, "level": 3, "message": "LOADXC: Illegal iteration variable number"}, - { - "no": 55, - "level": 3, - "message": "LOADXC: Iteration variable is zero; change its initial value or lower bound", - }, - {"no": 56, "level": 3, "message": "LOADXC: NaN error for iteration variable"}, - {"no": 57, "level": 3, "message": "CONVXC: Illegal iteration variable number"}, - { - "no": 58, - "level": 3, - "message": "CONVXC: Iteration variable is zero; change its initial value or lower bound", - }, - {"no": 59, "level": 3, "message": "CONVXC: NaN error for iteration variable"}, - { - "no": 60, - "level": 3, - "message": "CONVXC: scale(i) = 0 for iteration variable", - }, - { - "no": 61, - "level": 3, - "message": "RADIALB: fhole+fdiv+fhcd is too high for a credible outboard wall area", - }, - { - "no": 62, - "level": 1, - "message": "RADIALB: Ripple result may be inaccurate, as the fit has been extrapolated", - }, - { - "no": 63, - "level": 2, - "message": "PORTSZ: Max beam tangency radius set =0 temporarily; change beamwd", - }, - {"no": 64, "level": 3, "message": "PFCOIL: ngrp is larger than ngrpmx"}, - {"no": 65, "level": 3, "message": "PFCOIL: Too many coils in a PF coil group"}, - { - "no": 66, - "level": 3, - "message": "PFCOIL: Too many filaments nfxf repesenting the OH coil", - }, - {"no": 67, "level": 3, "message": "PFCOIL: Illegal ipfloc value"}, - { - "no": 68, - "level": 3, - "message": "PFCOIL: Too many test points npts across plasma midplane", - }, - { - "no": 69, - "level": 3, - "message": "PFCOIL: ipfloc(i) should not be 1 if itart=1", - }, - {"no": 70, "level": 3, "message": "PFCOIL: Illegal value of ipfloc(i)"}, - { - "no": 71, - "level": 2, - "message": "PFCOIL: OH coil not present; check volt-second calculations...", - }, - { - "no": 72, - "level": 3, - "message": "PEAKB: Illegal value of it; possible rounding error", - }, - { - "no": 73, - "level": 2, - "message": "INDUCT: Max no. of segments noh for OH coil > nohmax; increase ohcth lower bound", - }, - { - "no": 74, - "level": 3, - "message": "INDUCT: Negative square root imminent; raise ohcth or its upper limit", - }, - {"no": 75, "level": 3, "message": "PHYSICS: Illegal value of ibss"}, - { - "no": 76, - "level": 3, - "message": "BOOTSTRAP_FRACTION_WILSON: Illegal profile value found", - }, - {"no": 77, "level": 3, "message": "CULCUR: Illegal value for icurr"}, - { - "no": 78, - "level": 2, - "message": "PLASMA_COMPOSITION: Fuel ion density is zero or negative; forced to be positive", - }, - {"no": 79, "level": 3, "message": "CULDLM: Illegal value for idensl"}, - { - "no": 80, - "level": 2, - "message": "CULDLM: qcyl < 4/3; dlimit(4) set to zero; model 5 will be enforced instead", - }, - {"no": 81, "level": 3, "message": "PCOND: Illegal value for isc"}, - {"no": 82, "level": 3, "message": "RADPWR: Illegal value for imprad_model"}, - {"no": 83, "level": 2, "message": "POHM: Negative plasma resistance rplas"}, - {"no": 84, "level": 3, "message": "SGVHOT: Illegal value for iabm"}, - {"no": 85, "level": 3, "message": "OUTPLAS: Illegal value of idivrt"}, - {"no": 86, "level": 3, "message": "OUTPLAS: Illegal value of ishape"}, - { - "no": 87, - "level": 2, - "message": "OUTPLAS: Possible problem with high radiation power, forcing pdivt to odd values", - }, - { - "no": 88, - "level": 2, - "message": "ITERATE_FW: Optimisation has failed within 100 iterations; possible NaN problems", - }, - { - "no": 89, - "level": 3, - "message": "ITERATE_FW: Inner pipe radius afw >= outer pipe radius bfw", - }, - { - "no": 90, - "level": 2, - "message": "THRMAL: Swelling limit exceeded; optimisation failing to find a FW thickness", - }, - { - "no": 91, - "level": 3, - "message": "SMT: No reliable data for SMT stress for temperatures > 600 degrees Celsius", - }, - { - "no": 92, - "level": 2, - "message": "CYCLES: Fatigue data unreliable for T > 649 degrees Celsius", - }, - { - "no": 93, - "level": 2, - "message": "BURN: Negative burn time available; reduce t_fusion_ramp or raise PF coil V-s capability", - }, - {"no": 94, "level": 3, "message": "SCAN: Illegal value of isweep"}, - {"no": 95, "level": 3, "message": "SCAN: Do not scan cfactr if iavail=1"}, - {"no": 96, "level": 3, "message": "SCAN: Illegal scan variable number nsweep"}, - { - "no": 97, - "level": 2, - "message": "SCTFCOIL: Negative TF coil current; ritfc forced to be positive...", - }, - { - "no": 98, - "level": 2, - "message": "SCTFCOIL: Negative winding pack thickness; increase tfcth or its lower bound", - }, - { - "no": 99, - "level": 2, - "message": "SCTFCOIL: Winding pack cross-section problem...", - }, - { - "no": 100, - "level": 2, - "message": "SCTFCOIL: Negative cable space dimension; reduce conduit thicknesses or raise cpttf", - }, - {"no": 101, "level": 2, "message": "SCTFCOIL: Negative cable space dimension"}, - { - "no": 102, - "level": 2, - "message": "SCTFCOIL: Cable space area problem; artificially set rounded corner radius to 0", - }, - { - "no": 103, - "level": 2, - "message": "SCTFCOIL: Inconsistent TF leg toroidal thickness; should never happen!", - }, - {"no": 104, "level": 0, "message": "OBSOLETE"}, - {"no": 105, "level": 3, "message": "SUPERCON: Illegal value for i_tf_sc_mat"}, - { - "no": 106, - "level": 2, - "message": "BI2212: Fit extrapolated outside of range of validity", - }, - {"no": 107, "level": 3, "message": "STHEAT: Illegal value for isthtr"}, - {"no": 108, "level": 3, "message": "STDLIM: Negative square root imminent"}, - {"no": 109, "level": 3, "message": "STCOIL: Illegal value for nbticool"}, - { - "no": 110, - "level": 3, - "message": "STCOIL: Use i_tf_sc_mat = 1 or 3 with the stellarator model", - }, - {"no": 111, "level": 2, "message": "INTERSECT: X ranges not overlapping"}, - { - "no": 112, - "level": 2, - "message": "INTERSECT: X has dropped below Xmin; X has been set equal to Xmin", - }, - { - "no": 113, - "level": 2, - "message": "INTERSECT: X has risen above Xmax; X has been set equal to Xmax", - }, - { - "no": 114, - "level": 2, - "message": "INTERSECT: Convergence too slow; X may be wrong...", - }, - {"no": 115, "level": 3, "message": "CPOST: Illegal value for rtop"}, - {"no": 116, "level": 3, "message": "CPOST: Illegal value for ztop"}, - {"no": 117, "level": 3, "message": "CPOST: Illegal value for rmid"}, - {"no": 118, "level": 3, "message": "CPOST: Illegal value for hmax"}, - {"no": 119, "level": 3, "message": "CPOST: Illegal value for fcool"}, - {"no": 120, "level": 3, "message": "CPOST: rtop < rmid"}, - {"no": 121, "level": 3, "message": "CPOST: hmax < ztop"}, - {"no": 122, "level": 2, "message": "CPOST: Silly answers because fcool=1.0..."}, - {"no": 123, "level": 3, "message": "CPOST: R(Z) is negative"}, - { - "no": 124, - "level": 2, - "message": "VACUUM: Newton's method not converging; check fusion power, te", - }, - {"no": 125, "level": 3, "message": "ACC2253: Illegal value for istore"}, - {"no": 126, "level": 3, "message": "CUDRIV: Illegal value for iefrf"}, - {"no": 127, "level": 3, "message": "IFE: Illegal value for ifedrv"}, - { - "no": 128, - "level": 3, - "message": "TBR_BREED: Unknown tritium breeder specified", - }, - { - "no": 129, - "level": 3, - "message": "CULLHY: Normalised LH efficiency < 0; use a different value of iefrf", - }, - { - "no": 130, - "level": 3, - "message": "REPORT_INPUT_ERROR: Error detected in input file - see OUT.DAT for more details", - }, - { - "no": 131, - "level": 2, - "message": "EQSLV: Non-optimisation solver HYBRD returns with ifail /= 1", - }, - { - "no": 132, - "level": 2, - "message": "DOOPT: Optimisation solver VMCON returns with ifail /= 1", - }, - { - "no": 133, - "level": 2, - "message": "EQSLV: High final HYBRD constraint residues", - }, - { - "no": 134, - "level": 2, - "message": "DOOPT: High final VMCON constraint residues", - }, - { - "no": 135, - "level": 1, - "message": "OUTPF: CS not using max current density: further optimisation may be possible", - }, - { - "no": 136, - "level": 2, - "message": "BETCOM: Low density... carbon impurity fraction forced to be no more than 0.05", - }, - { - "no": 137, - "level": 3, - "message": "CHECK: Insufficient iteration variables to solve the problem! NVAR < NEQNS", - }, - { - "no": 138, - "level": 2, - "message": "CHECK: Beware; ion power balance may not be correct with new radiation model", - }, - { - "no": 139, - "level": 3, - "message": "CHECK: The number of iteration variables specified is smaller than the number stated in ixc", - }, - { - "no": 140, - "level": 3, - "message": "CHECK: The number of constraints specified is smaller than the number stated in neqns+nineqns", - }, - { - "no": 141, - "level": 1, - "message": "RADIALB: (TF coil ripple calculation) Dimensionless coil width X out of fitted range", - }, - { - "no": 142, - "level": 1, - "message": "RADIALB: (TF coil ripple calculation) No of TF coils not between 16 and 20 inclusive", - }, - { - "no": 143, - "level": 1, - "message": "RADIALB: (TF coil ripple calculation) (R+a)/rtot out of fitted range", - }, - { - "no": 144, - "level": 1, - "message": "OUTTF: (TF coil peak field calculation) Winding pack width out of fitted range", - }, - { - "no": 145, - "level": 1, - "message": "OUTTF: (TF coil peak field calculation) Winding pack radial thickness out of fitted range", - }, - { - "no": 146, - "level": 3, - "message": "CHECK: temperature pedestal is lower than separatrix temperature", - }, - { - "no": 147, - "level": 2, - "message": "CHECK: temperature pedestal is at plasma edge, but teped differs from tesep", - }, - { - "no": 148, - "level": 2, - "message": "TPROFILE: temperature pedestal is higher than core temperature", - }, - { - "no": 149, - "level": 2, - "message": "CHECK: volume-averaged temperature has been forced to exceed input pedestal height", - }, - { - "no": 150, - "level": 2, - "message": "CHECK: Lower limit of volume averaged electron temperature (te) has been raised to ensure te > teped", - }, - { - "no": 151, - "level": 3, - "message": "CHECK: density pedestal is lower than separatrix density", - }, - { - "no": 152, - "level": 2, - "message": "CHECK: density pedestal is at plasma edge, but neped differs from nesep", - }, - { - "no": 153, - "level": 2, - "message": "NPROFILE: density pedestal is higher than core density", - }, - { - "no": 154, - "level": 2, - "message": "CHECK: neped set with fgwped without constraint eq 81 (neped 273.15 K", - }, - { - "no": 242, - "level": 2, - "message": "PHYSICS: Bootstrap fraction upper limit enforced", - }, - { - "no": 243, - "level": 2, - "message": "PHYSICS: Predicted plasma driven current is more than upper limit on non-inductive fraction.", - }, - { - "no": 244, - "level": 2, - "message": "PHYSICS: Diamagnetic fraction is more than 1%, but not calculated. Consider using idia=2 and ips=1.", - }, - { - "no": 245, - "level": 2, - "message": "[sctfcoil] Invalid stress model (r_tf_inboard = 0), stress constraint switched off", - }, - { - "no": 246, - "level": 3, - "message": "CHECK: Invalid stress model if bore + gapoh + ohcth = 0. Don't use constraint 31", - }, - { - "no": 247, - "level": 3, - "message": "CHECK: Bucked and wedged TF design not yet implemented", - }, - { - "no": 248, - "level": 3, - "message": "CHECK: TF cryo-plant efficiency `eff_tf_cryo` must be within [0-1]", - }, - { - "no": 249, - "level": 2, - "message": "[tfcoil][cntrpst] Negative conductor average temperature difference, set to 0", - }, - { - "no": 250, - "level": 2, - "message": "[tfcoil][cntrpst] Negative conductor peak temperature difference, set to 0", - }, - { - "no": 251, - "level": 3, - "message": "LOADXC: Beta should not be in ixc if istell>0. Use Constraints 24 and 84 instead.", - }, - { - "no": 252, - "level": 3, - "message": "CHECK: No CS precompression structure for bucked and wedged, use iprecomp = 0.", - }, - { - "no": 253, - "level": 3, - "message": "CHECK: Use generalized plane strain for resistive magnets (i_tf_stress_model = 0 or 2).", - }, - { - "no": 254, - "level": 3, - "message": "CHECK: integer turns (i_tf_turns_integer = 1) not supported for REBCO (i_tf_sc_mat = 6)", - }, - { - "no": 255, - "level": 3, - "message": "CHECK: The TF coil WP thickness (dr_tf_wp) must be at least", - }, - { - "no": 256, - "level": 2, - "message": "CHECK: Top CP radius larger that its value determined with plasma shape", - }, - { - "no": 257, - "level": 2, - "message": "[tfcoil] : Helium temperature out of helium property fiting range [4-50] K", - }, - { - "no": 258, - "level": 2, - "message": "[tfcoil] : Aluminium temperature out of the th conductivity fit range [15-60] K", - }, - { - "no": 259, - "level": 3, - "message": "CHECK: Constraint equation 10 (CP lifetime) to used with ST desing (itart=1)", - }, - { - "no": 260, - "level": 3, - "message": "CHECK: Al TF coil fluence not calculated properly for Al CP, do not use constraint 85", - }, - { - "no": 261, - "level": 2, - "message": "[tfcoil]: TF strain was outside the region of applicability. Used lower strain", - }, - { - "no": 262, - "level": 2, - "message": "REBCO : Non physical strain used in CS. Use superconductor strain < +/- 0.7% ", - }, - { - "no": 263, - "level": 2, - "message": "REBCO : Non physical strain used in PF. Use superconductor strain < +/- 0.7% ", - }, - { - "no": 264, - "level": 3, - "message": "REBCO : turn off CS temperature margin constraint icc = 60 when using REBCO", - }, - { - "no": 265, - "level": 3, - "message": "REBCO : turn off TF temperature margin constraint icc = 36 when using REBCO", - }, - { - "no": 266, - "level": 2, - "message": "REBCO : Field on superconductor > 14 T (outside of interpolation range)", - }, - { - "no": 267, - "level": 3, - "message": "CHECK: To set the TF CP top value, you must use i_r_cp_top = 1", - }, - { - "no": 268, - "level": 2, - "message": "[radialb]: TF CP top radius (r_cp_top) replaced by 1.01*r_tf_inboard_out -> potential top rbuild issue", - }, - { - "no": 269, - "level": 3, - "message": "CHECK: Impossible to set the TF turn/cable size with the integer turn option (i_tf_turns_integer: 1) ", - }, - { - "no": 270, - "level": 3, - "message": "CHECK: The LTS conductor temperature (tftmp) has to be lower than 10", - }, - { - "no": 271, - "level": 3, - "message": "CHECK: Impossible to set the TF coil turn and cable size simultaneously", - }, - { - "no": 272, - "level": 2, - "message": "Double-null: Upper vertical build forced to match lower", - }, - { - "no": 273, - "level": 3, - "message": "[tfcoil]: tmpcry should be lower than tftmp", - }, - { - "no": 274, - "level": 2, - "message": "[HCPB]: Blanket heating is <1 MW or NaN. Is something wrong?", - }, - { - "no": 275, - "level": 3, - "message": "CONSTRAINTS: Can't use constraint 88 if i_strain_tf == 0", - }, - { - "no": 276, - "level": 2, - "message": "CHECK: One of the areas or fractions is negative in the internal SC TF coil geometry", - }, - { - "no": 277, - "level": 2, - "message": "CHECK: One or more collision between TF and PF coils. Check PF placement.", - }, - { - "no": 278, - "level": 2, - "message": "CHECK: Your blanket modules are too small for the Liquid Metal pipes.", - }, - { - "no": 279, - "level": 3, - "message": "CHECK: Pressure drops in coolant are too large to be feasable.", - }, - { - "no": 280, - "level": 2, - "message": "CHECK: Outside temperature limit for one or more liquid metal breeder properties.", - }, - { - "no": 281, - "level": 3, - "message": "CHECK: Cannot have i_tf_bucking >= 2 when tf_in_cs = 1", - }, - { - "no": 282, - "level": 2, - "message": "CHECK: ncore is going negative when solving. Please raise the value of dene and or its lower limit.", - }, - { - "no": 283, - "level": 3, - "message": "[tfcoil]: Can only have i_tf_turns_integer = 1 with i_tf_wp_geom = 0", - }, - { - "no": 284, - "level": 3, - "message": "CHECK: idia = 0 should be used with the Sakai plasma current scaling.", - }, - { - "no": 285, - "level": 2, - "message": "[tfcoil]: fiooic shouldn't be above 0.7 for engineering reliability.", - }, - { - "no": 286, - "level": 2, - "message": "[pfcoil][cntrpost]: fjohc shouldn't be above 0.7 for engineering reliability.", - }, - { - "no": 287, - "level": 2, - "message": "[pfcoil][cntrpost]: fjohc0 shouldn't be above 0.7 for engineering reliability.", - }, - ], + "version": [ + "PROCESS version 2.1.1" + ], + "comment1": [ + "List of error messages used via error_handling.f90" + ], + "comment2": [ + "Increment n_errortypes if an error is added to this list" + ], + "n_errortypes": 287, + "errors": [ + { + "no": 1, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 7 if ignite=1" + }, + { + "no": 2, + "level": 3, + "message": "CONSTRAINTS: Constraint equation 15 is redundant" + }, + { + "no": 3, + "level": 3, + "message": "CONSTRAINTS: Constraint equation 23 is redundant; use 33 and/or 35 instead" + }, + { + "no": 4, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 28 if ignite=1" + }, + { + "no": 5, + "level": 3, + "message": "CONSTRAINTS: tpeak = 0 ==> lpulse=0; do not use constraint 39 if lpulse=0" + }, + { + "no": 6, + "level": 3, + "message": "CONSTRAINTS: tcycmn = 0 ==> lpulse=0; do not use constraint 42 if lpulse=0" + }, + { + "no": 7, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 43 if itart=0" + }, + { + "no": 8, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 44 if itart=0" + }, + { + "no": 9, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 45 if itart=0" + }, + { + "no": 10, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 46 if itart=0" + }, + { + "no": 11, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 47 if irfp=0" + }, + { + "no": 12, + "level": 3, + "message": "CONSTRAINTS: Do not use constraint 50 if ife=0" + }, + { + "no": 13, + "level": 3, + "message": "CONSTRAINTS: No such constraint equation number..." + }, + { + "no": 14, + "level": 3, + "message": "CONSTRAINTS: NaN/infty error for constraint equation..." + }, + { + "no": 15, + "level": 3, + "message": "ITERNB: Imminent negative square root argument; NBI will miss plasma completely" + }, + { + "no": 16, + "level": 2, + "message": "LHRAD: LH penetration radius not found after lapno iterations, using 0.8*rminor" + }, + { + "no": 17, + "level": 3, + "message": "ECCDEF: Negative normalised current drive efficiency" + }, + { + "no": 18, + "level": 3, + "message": "LEGEND: Invalid argument" + }, + { + "no": 19, + "level": 3, + "message": "LEGEND: Solution has not converged" + }, + { + "no": 20, + "level": 3, + "message": "CULNBI: Imminent negative square root argument; NBI will miss plasma completely" + }, + { + "no": 21, + "level": 3, + "message": "ETANB2: Imminent negative square root argument; NBI will miss plasma completely" + }, + { + "no": 22, + "level": 3, + "message": "DIVCALL: Non-positive vgap_xpoint_divertor" + }, + { + "no": 23, + "level": 3, + "message": "FUNFOM: Figure of merit cfactr requires iavail=1" + }, + { + "no": 24, + "level": 3, + "message": "FUNFOM: No such figure of merit" + }, + { + "no": 25, + "level": 3, + "message": "FUNFOM: NaN error in figure of merit calculation" + }, + { + "no": 26, + "level": 3, + "message": "IFEFBS: Illegal fbreed value" + }, + { + "no": 27, + "level": 3, + "message": "INIT_IMP_ELEMENT: Illegal impurity number" + }, + { + "no": 28, + "level": 3, + "message": "INIT_IMP_ELEMENT: Allocation problem" + }, + { + "no": 29, + "level": 2, + "message": "INIT_IMP_ELEMENT: Impurity datafiles missing; switching to original model" + }, + { + "no": 30, + "level": 3, + "message": "IMPORT_IMPDATA: Problem opening impurity data file" + }, + { + "no": 31, + "level": 3, + "message": "IMPORT_IMPDATA: Problem reading impurity data file header" + }, + { + "no": 32, + "level": 3, + "message": "IMPORT_IMPDATA: Problem reading impurity data file contents" + }, + { + "no": 33, + "level": 3, + "message": "Z2INDEX: Element with the given charge is not in the impurity array" + }, + { + "no": 34, + "level": 3, + "message": "ELEMENT2INDEX: Element with given label not found in impurity array" + }, + { + "no": 35, + "level": 2, + "message": "PIMPDEN: Impurity radiation model is inaccurate at such low temperatures" + }, + { + "no": 36, + "level": 3, + "message": "CHECK: Fuel ion fractions do not sum to 1.0; check fdeut, ftrit, fhe3 values" + }, + { + "no": 37, + "level": 2, + "message": "CHECK: Usual current scaling for TARTs (icurr=2 or 9) is not being used" + }, + { + "no": 38, + "level": 3, + "message": "CHECK: Invalid boostrap current law for ST, do not use ibss = 1" + }, + { + "no": 39, + "level": 1, + "message": "CHECK: Operating with a single null in a double null machine" + }, + { + "no": 40, + "level": 2, + "message": "CHECK: icurr=2 is not a valid option for a non-TART device" + }, + { + "no": 41, + "level": 3, + "message": "CHECK: ncls(i) .ne. 2 is not a valid option except for (ipfloc = 2)" + }, + { + "no": 42, + "level": 3, + "message": "CHECK: Only 1 divertor coil (ipfloc = 2) is not a valid configuration" + }, + { + "no": 43, + "level": 3, + "message": "CHECK: More than 2 divertor coils (ipfloc = 2) is not a valid configuration" + }, + { + "no": 44, + "level": 3, + "message": "CHECK: If snull=1, use 2 individual divertor coils (ipfloc = 2, 2; ncls = 1, 1)" + }, + { + "no": 45, + "level": 3, + "message": "CHECK: itart=1 is not a valid option for the RFP model" + }, + { + "no": 46, + "level": 3, + "message": "LOADXC: Do not use tfcth as an iteration variable if istell=1" + }, + { + "no": 47, + "level": 3, + "message": "LOADXC: Do not use cdtfleg as an iteration variable if itfsup=1 or irfp=1" + }, + { + "no": 48, + "level": 3, + "message": "LOADXC: Do not use thkcas as an iteration variable if istell=1" + }, + { + "no": 49, + "level": 3, + "message": "LOADXC: Do not use cpttf as an iteration variable if itfsup=0 or istell=1" + }, + { + "no": 50, + "level": 3, + "message": "LOADXC: Do not use tohs as an iteration variable if lpulse /= 1" + }, + { + "no": 51, + "level": 3, + "message": "LOADXC: Do not use tftort as an iteration variable if irfp=0" + }, + { + "no": 52, + "level": 3, + "message": "LOADXC: Do not use helecmw as an iteration variable if ihplant is not 1,2 or 3" + }, + { + "no": 53, + "level": 3, + "message": "LOADXC: Do not use hthermmw as an iteration variable if ihplant < 4" + }, + { + "no": 54, + "level": 3, + "message": "LOADXC: Illegal iteration variable number" + }, + { + "no": 55, + "level": 3, + "message": "LOADXC: Iteration variable is zero; change its initial value or lower bound" + }, + { + "no": 56, + "level": 3, + "message": "LOADXC: NaN error for iteration variable" + }, + { + "no": 57, + "level": 3, + "message": "CONVXC: Illegal iteration variable number" + }, + { + "no": 58, + "level": 3, + "message": "CONVXC: Iteration variable is zero; change its initial value or lower bound" + }, + { + "no": 59, + "level": 3, + "message": "CONVXC: NaN error for iteration variable" + }, + { + "no": 60, + "level": 3, + "message": "CONVXC: scale(i) = 0 for iteration variable" + }, + { + "no": 61, + "level": 3, + "message": "RADIALB: fhole+fdiv+fhcd is too high for a credible outboard wall area" + }, + { + "no": 62, + "level": 1, + "message": "RADIALB: Ripple result may be inaccurate, as the fit has been extrapolated" + }, + { + "no": 63, + "level": 2, + "message": "PORTSZ: Max beam tangency radius set =0 temporarily; change beamwd" + }, + { + "no": 64, + "level": 3, + "message": "PFCOIL: ngrp is larger than ngrpmx" + }, + { + "no": 65, + "level": 3, + "message": "PFCOIL: Too many coils in a PF coil group" + }, + { + "no": 66, + "level": 3, + "message": "PFCOIL: Too many filaments nfxf repesenting the OH coil" + }, + { + "no": 67, + "level": 3, + "message": "PFCOIL: Illegal ipfloc value" + }, + { + "no": 68, + "level": 3, + "message": "PFCOIL: Too many test points npts across plasma midplane" + }, + { + "no": 69, + "level": 3, + "message": "PFCOIL: ipfloc(i) should not be 1 if itart=1" + }, + { + "no": 70, + "level": 3, + "message": "PFCOIL: Illegal value of ipfloc(i)" + }, + { + "no": 71, + "level": 2, + "message": "PFCOIL: OH coil not present; check volt-second calculations..." + }, + { + "no": 72, + "level": 3, + "message": "PEAKB: Illegal value of it; possible rounding error" + }, + { + "no": 73, + "level": 2, + "message": "INDUCT: Max no. of segments noh for OH coil > nohmax; increase ohcth lower bound" + }, + { + "no": 74, + "level": 3, + "message": "INDUCT: Negative square root imminent; raise ohcth or its upper limit" + }, + { + "no": 75, + "level": 3, + "message": "PHYSICS: Illegal value of ibss" + }, + { + "no": 76, + "level": 3, + "message": "BOOTSTRAP_FRACTION_WILSON: Illegal profile value found" + }, + { + "no": 77, + "level": 3, + "message": "CULCUR: Illegal value for icurr" + }, + { + "no": 78, + "level": 2, + "message": "PLASMA_COMPOSITION: Fuel ion density is zero or negative; forced to be positive" + }, + { + "no": 79, + "level": 3, + "message": "CULDLM: Illegal value for idensl" + }, + { + "no": 80, + "level": 2, + "message": "CULDLM: qcyl < 4/3; dlimit(4) set to zero; model 5 will be enforced instead" + }, + { + "no": 81, + "level": 3, + "message": "PCOND: Illegal value for isc" + }, + { + "no": 82, + "level": 3, + "message": "RADPWR: Illegal value for imprad_model" + }, + { + "no": 83, + "level": 2, + "message": "POHM: Negative plasma resistance rplas" + }, + { + "no": 84, + "level": 3, + "message": "SGVHOT: Illegal value for iabm" + }, + { + "no": 85, + "level": 3, + "message": "OUTPLAS: Illegal value of idivrt" + }, + { + "no": 86, + "level": 3, + "message": "OUTPLAS: Illegal value of ishape" + }, + { + "no": 87, + "level": 2, + "message": "OUTPLAS: Possible problem with high radiation power, forcing pdivt to odd values" + }, + { + "no": 88, + "level": 2, + "message": "ITERATE_FW: Optimisation has failed within 100 iterations; possible NaN problems" + }, + { + "no": 89, + "level": 3, + "message": "ITERATE_FW: Inner pipe radius afw >= outer pipe radius bfw" + }, + { + "no": 90, + "level": 2, + "message": "THRMAL: Swelling limit exceeded; optimisation failing to find a FW thickness" + }, + { + "no": 91, + "level": 3, + "message": "SMT: No reliable data for SMT stress for temperatures > 600 degrees Celsius" + }, + { + "no": 92, + "level": 2, + "message": "CYCLES: Fatigue data unreliable for T > 649 degrees Celsius" + }, + { + "no": 93, + "level": 2, + "message": "BURN: Negative burn time available; reduce t_fusion_ramp or raise PF coil V-s capability" + }, + { + "no": 94, + "level": 3, + "message": "SCAN: Illegal value of isweep" + }, + { + "no": 95, + "level": 3, + "message": "SCAN: Do not scan cfactr if iavail=1" + }, + { + "no": 96, + "level": 3, + "message": "SCAN: Illegal scan variable number nsweep" + }, + { + "no": 97, + "level": 2, + "message": "SCTFCOIL: Negative TF coil current; ritfc forced to be positive..." + }, + { + "no": 98, + "level": 2, + "message": "SCTFCOIL: Negative winding pack thickness; increase tfcth or its lower bound" + }, + { + "no": 99, + "level": 2, + "message": "SCTFCOIL: Winding pack cross-section problem..." + }, + { + "no": 100, + "level": 2, + "message": "SCTFCOIL: Negative cable space dimension; reduce conduit thicknesses or raise cpttf" + }, + { + "no": 101, + "level": 2, + "message": "SCTFCOIL: Negative cable space dimension" + }, + { + "no": 102, + "level": 2, + "message": "SCTFCOIL: Cable space area problem; artificially set rounded corner radius to 0" + }, + { + "no": 103, + "level": 2, + "message": "SCTFCOIL: Inconsistent TF leg toroidal thickness; should never happen!" + }, + { + "no": 104, + "level": 0, + "message": "OBSOLETE" + }, + { + "no": 105, + "level": 3, + "message": "SUPERCON: Illegal value for i_tf_sc_mat" + }, + { + "no": 106, + "level": 2, + "message": "BI2212: Fit extrapolated outside of range of validity" + }, + { + "no": 107, + "level": 3, + "message": "STHEAT: Illegal value for isthtr" + }, + { + "no": 108, + "level": 3, + "message": "STDLIM: Negative square root imminent" + }, + { + "no": 109, + "level": 3, + "message": "STCOIL: Illegal value for nbticool" + }, + { + "no": 110, + "level": 3, + "message": "STCOIL: Use i_tf_sc_mat = 1 or 3 with the stellarator model" + }, + { + "no": 111, + "level": 2, + "message": "INTERSECT: X ranges not overlapping" + }, + { + "no": 112, + "level": 2, + "message": "INTERSECT: X has dropped below Xmin; X has been set equal to Xmin" + }, + { + "no": 113, + "level": 2, + "message": "INTERSECT: X has risen above Xmax; X has been set equal to Xmax" + }, + { + "no": 114, + "level": 2, + "message": "INTERSECT: Convergence too slow; X may be wrong..." + }, + { + "no": 115, + "level": 3, + "message": "CPOST: Illegal value for rtop" + }, + { + "no": 116, + "level": 3, + "message": "CPOST: Illegal value for ztop" + }, + { + "no": 117, + "level": 3, + "message": "CPOST: Illegal value for rmid" + }, + { + "no": 118, + "level": 3, + "message": "CPOST: Illegal value for hmax" + }, + { + "no": 119, + "level": 3, + "message": "CPOST: Illegal value for fcool" + }, + { + "no": 120, + "level": 3, + "message": "CPOST: rtop < rmid" + }, + { + "no": 121, + "level": 3, + "message": "CPOST: hmax < ztop" + }, + { + "no": 122, + "level": 2, + "message": "CPOST: Silly answers because fcool=1.0..." + }, + { + "no": 123, + "level": 3, + "message": "CPOST: R(Z) is negative" + }, + { + "no": 124, + "level": 2, + "message": "VACUUM: Newton's method not converging; check fusion power, te" + }, + { + "no": 125, + "level": 3, + "message": "ACC2253: Illegal value for istore" + }, + { + "no": 126, + "level": 3, + "message": "CUDRIV: Illegal value for iefrf" + }, + { + "no": 127, + "level": 3, + "message": "IFE: Illegal value for ifedrv" + }, + { + "no": 128, + "level": 3, + "message": "TBR_BREED: Unknown tritium breeder specified" + }, + { + "no": 129, + "level": 3, + "message": "CULLHY: Normalised LH efficiency < 0; use a different value of iefrf" + }, + { + "no": 130, + "level": 3, + "message": "REPORT_INPUT_ERROR: Error detected in input file - see OUT.DAT for more details" + }, + { + "no": 131, + "level": 2, + "message": "EQSLV: Non-optimisation solver HYBRD returns with ifail /= 1" + }, + { + "no": 132, + "level": 2, + "message": "DOOPT: Optimisation solver VMCON returns with ifail /= 1" + }, + { + "no": 133, + "level": 2, + "message": "EQSLV: High final HYBRD constraint residues" + }, + { + "no": 134, + "level": 2, + "message": "DOOPT: High final VMCON constraint residues" + }, + { + "no": 135, + "level": 1, + "message": "OUTPF: CS not using max current density: further optimisation may be possible" + }, + { + "no": 136, + "level": 2, + "message": "BETCOM: Low density... carbon impurity fraction forced to be no more than 0.05" + }, + { + "no": 137, + "level": 3, + "message": "CHECK: Insufficient iteration variables to solve the problem! NVAR < NEQNS" + }, + { + "no": 138, + "level": 2, + "message": "CHECK: Beware; ion power balance may not be correct with new radiation model" + }, + { + "no": 139, + "level": 3, + "message": "CHECK: The number of iteration variables specified is smaller than the number stated in ixc" + }, + { + "no": 140, + "level": 3, + "message": "CHECK: The number of constraints specified is smaller than the number stated in neqns+nineqns" + }, + { + "no": 141, + "level": 1, + "message": "RADIALB: (TF coil ripple calculation) Dimensionless coil width X out of fitted range" + }, + { + "no": 142, + "level": 1, + "message": "RADIALB: (TF coil ripple calculation) No of TF coils not between 16 and 20 inclusive" + }, + { + "no": 143, + "level": 1, + "message": "RADIALB: (TF coil ripple calculation) (R+a)/rtot out of fitted range" + }, + { + "no": 144, + "level": 1, + "message": "OUTTF: (TF coil peak field calculation) Winding pack width out of fitted range" + }, + { + "no": 145, + "level": 1, + "message": "OUTTF: (TF coil peak field calculation) Winding pack radial thickness out of fitted range" + }, + { + "no": 146, + "level": 3, + "message": "CHECK: temperature pedestal is lower than separatrix temperature" + }, + { + "no": 147, + "level": 2, + "message": "CHECK: temperature pedestal is at plasma edge, but teped differs from tesep" + }, + { + "no": 148, + "level": 2, + "message": "TPROFILE: temperature pedestal is higher than core temperature" + }, + { + "no": 149, + "level": 2, + "message": "CHECK: volume-averaged temperature has been forced to exceed input pedestal height" + }, + { + "no": 150, + "level": 2, + "message": "CHECK: Lower limit of volume averaged electron temperature (te) has been raised to ensure te > teped" + }, + { + "no": 151, + "level": 3, + "message": "CHECK: density pedestal is lower than separatrix density" + }, + { + "no": 152, + "level": 2, + "message": "CHECK: density pedestal is at plasma edge, but neped differs from nesep" + }, + { + "no": 153, + "level": 2, + "message": "NPROFILE: density pedestal is higher than core density" + }, + { + "no": 154, + "level": 2, + "message": "CHECK: neped set with fgwped without constraint eq 81 (neped 273.15 K" + }, + { + "no": 242, + "level": 2, + "message": "PHYSICS: Bootstrap fraction upper limit enforced" + }, + { + "no": 243, + "level": 2, + "message": "PHYSICS: Predicted plasma driven current is more than upper limit on non-inductive fraction." + }, + { + "no": 244, + "level": 2, + "message": "PHYSICS: Diamagnetic fraction is more than 1%, but not calculated. Consider using idia=2 and ips=1." + }, + { + "no": 245, + "level": 2, + "message": "[sctfcoil] Invalid stress model (r_tf_inboard = 0), stress constraint switched off" + }, + { + "no": 246, + "level": 3, + "message": "CHECK: Invalid stress model if bore + gapoh + ohcth = 0. Don't use constraint 31" + }, + { + "no": 247, + "level": 3, + "message": "CHECK: Bucked and wedged TF design not yet implemented" + }, + { + "no": 248, + "level": 3, + "message": "CHECK: TF cryo-plant efficiency `eff_tf_cryo` must be within [0-1]" + }, + { + "no": 249, + "level": 2, + "message": "[tfcoil][cntrpst] Negative conductor average temperature difference, set to 0" + }, + { + "no": 250, + "level": 2, + "message": "[tfcoil][cntrpst] Negative conductor peak temperature difference, set to 0" + }, + { + "no": 251, + "level": 3, + "message": "LOADXC: Beta should not be in ixc if istell>0. Use Constraints 24 and 84 instead." + }, + { + "no": 252, + "level": 3, + "message": "CHECK: No CS precompression structure for bucked and wedged, use iprecomp = 0." + }, + { + "no": 253, + "level": 3, + "message": "CHECK: Use generalized plane strain for resistive magnets (i_tf_stress_model = 0 or 2)." + }, + { + "no": 254, + "level": 3, + "message": "CHECK: integer turns (i_tf_turns_integer = 1) not supported for REBCO (i_tf_sc_mat = 6)" + }, + { + "no": 255, + "level": 3, + "message": "CHECK: The TF coil WP thickness (dr_tf_wp) must be at least" + }, + { + "no": 256, + "level": 2, + "message": "CHECK: Top CP radius larger that its value determined with plasma shape" + }, + { + "no": 257, + "level": 2, + "message": "[tfcoil] : Helium temperature out of helium property fiting range [4-50] K" + }, + { + "no": 258, + "level": 2, + "message": "[tfcoil] : Aluminium temperature out of the th conductivity fit range [15-60] K" + }, + { + "no": 259, + "level": 3, + "message": "CHECK: Constraint equation 10 (CP lifetime) to used with ST desing (itart=1)" + }, + { + "no": 260, + "level": 3, + "message": "CHECK: Al TF coil fluence not calculated properly for Al CP, do not use constraint 85" + }, + { + "no": 261, + "level": 2, + "message": "[tfcoil]: TF strain was outside the region of applicability. Used lower strain" + }, + { + "no": 262, + "level": 2, + "message": "REBCO : Non physical strain used in CS. Use superconductor strain < +/- 0.7% " + }, + { + "no": 263, + "level": 2, + "message": "REBCO : Non physical strain used in PF. Use superconductor strain < +/- 0.7% " + }, + { + "no": 264, + "level": 3, + "message": "REBCO : turn off CS temperature margin constraint icc = 60 when using REBCO" + }, + { + "no": 265, + "level": 3, + "message": "REBCO : turn off TF temperature margin constraint icc = 36 when using REBCO" + }, + { + "no": 266, + "level": 2, + "message": "REBCO : Field on superconductor > 14 T (outside of interpolation range)" + }, + { + "no": 267, + "level": 3, + "message": "CHECK: To set the TF CP top value, you must use i_r_cp_top = 1" + }, + { + "no": 268, + "level": 2, + "message": "[radialb]: TF CP top radius (r_cp_top) replaced by 1.01*r_tf_inboard_out -> potential top rbuild issue" + }, + { + "no": 269, + "level": 3, + "message": "CHECK: Impossible to set the TF turn/cable size with the integer turn option (i_tf_turns_integer: 1) " + }, + { + "no": 270, + "level": 3, + "message": "CHECK: The LTS conductor temperature (tftmp) has to be lower than 10" + }, + { + "no": 271, + "level": 3, + "message": "CHECK: Impossible to set the TF coil turn and cable size simultaneously" + }, + { + "no": 272, + "level": 2, + "message": "Double-null: Upper vertical build forced to match lower" + }, + { + "no": 273, + "level": 3, + "message": "[tfcoil]: tmpcry should be lower than tftmp" + }, + { + "no": 274, + "level": 2, + "message": "[HCPB]: Blanket heating is <1 MW or NaN. Is something wrong?" + }, + { + "no": 275, + "level": 3, + "message": "CONSTRAINTS: Can't use constraint 88 if i_strain_tf == 0" + }, + { + "no": 276, + "level": 2, + "message": "CHECK: One of the areas or fractions is negative in the internal SC TF coil geometry" + }, + { + "no": 277, + "level": 2, + "message": "CHECK: One or more collision between TF and PF coils. Check PF placement." + }, + { + "no": 278, + "level": 2, + "message": "CHECK: Your blanket modules are too small for the Liquid Metal pipes." + }, + { + "no": 279, + "level": 3, + "message": "CHECK: Pressure drops in coolant are too large to be feasable." + }, + { + "no": 280, + "level": 2, + "message": "CHECK: Outside temperature limit for one or more liquid metal breeder properties." + }, + { + "no": 281, + "level": 3, + "message": "CHECK: Cannot have i_tf_bucking >= 2 when tf_in_cs = 1" + }, + { + "no": 282, + "level": 2, + "message": "CHECK: ncore is going negative when solving. Please raise the value of dene and or its lower limit." + }, + { + "no": 283, + "level": 3, + "message": "[tfcoil]: Can only have i_tf_turns_integer = 1 with i_tf_wp_geom = 0" + }, + { + "no": 284, + "level": 3, + "message": "CHECK: idia = 0 should be used with the Sakai plasma current scaling." + }, + { + "no": 285, + "level": 2, + "message": "[tfcoil]: fiooic shouldn't be above 0.7 for engineering reliability." + }, + { + "no": 286, + "level": 2, + "message": "[pfcoil][cntrpost]: fjohc shouldn't be above 0.7 for engineering reliability." + }, + { + "no": 287, + "level": 2, + "message": "[pfcoil][cntrpost]: fjohc0 shouldn't be above 0.7 for engineering reliability." + } + ] } From 538a1ea1b96a76e799dc246a0b61c40f2c7ecfe8 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Wed, 18 Sep 2024 10:03:26 +0100 Subject: [PATCH 07/11] Revert to main gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 15dbf1b786..500bbd8a46 100644 --- a/.gitignore +++ b/.gitignore @@ -61,4 +61,4 @@ REBCO_JC.DAT python_modules.txt quench_data.DAT env-fork -*SIG_TF.json \ No newline at end of file +*SIG_TF.json From eebbc69d114b45462159f930eb7aa418de4f4675 Mon Sep 17 00:00:00 2001 From: ym1906 Date: Wed, 18 Sep 2024 11:11:04 +0100 Subject: [PATCH 08/11] Added vgap, vgap2 to obsolete vars --- process/io/obsolete_vars.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/process/io/obsolete_vars.py b/process/io/obsolete_vars.py index b0fdf13d7e..5bcba4e393 100644 --- a/process/io/obsolete_vars.py +++ b/process/io/obsolete_vars.py @@ -113,6 +113,8 @@ "theat": "t_fusion_ramp", "ieped": None, "eped_sf": None, + "vgap2": "vgap_vv_thermalshield", + "vgap": "vgap_xpoint_divertor" } OBS_VARS_HELP = { From c97bd078d2f3dc6e4438715c49fed3b929e2c85e Mon Sep 17 00:00:00 2001 From: ym1906 Date: Wed, 18 Sep 2024 11:26:41 +0100 Subject: [PATCH 09/11] black fix to obsoletevars --- process/io/obsolete_vars.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/process/io/obsolete_vars.py b/process/io/obsolete_vars.py index 5bcba4e393..80df8b359e 100644 --- a/process/io/obsolete_vars.py +++ b/process/io/obsolete_vars.py @@ -114,7 +114,7 @@ "ieped": None, "eped_sf": None, "vgap2": "vgap_vv_thermalshield", - "vgap": "vgap_xpoint_divertor" + "vgap": "vgap_xpoint_divertor", } OBS_VARS_HELP = { From 232c20921ea04d2f7924996b43a13639e1a8d460 Mon Sep 17 00:00:00 2001 From: Graeme <107113942+ym1906@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:49:41 +0100 Subject: [PATCH 10/11] Delete tests/regression/input_files/large_tokamak.MFILE.DAT.json File not needed --- .../input_files/large_tokamak.MFILE.DAT.json | 1091 ----------------- 1 file changed, 1091 deletions(-) delete mode 100644 tests/regression/input_files/large_tokamak.MFILE.DAT.json diff --git a/tests/regression/input_files/large_tokamak.MFILE.DAT.json b/tests/regression/input_files/large_tokamak.MFILE.DAT.json deleted file mode 100644 index 7c54607c57..0000000000 --- a/tests/regression/input_files/large_tokamak.MFILE.DAT.json +++ /dev/null @@ -1,1091 +0,0 @@ -{ - "procver": "3.1.0 R", - "date": "02/09/2024", - "time": "09:52", - "username": "graeme", - "runtitle": "\"Generic large tokamak ", - "tagno": "v3.1.0-136-g72776cb", - "branch_name": "main", - "commsg": "Added warning for magnet current ratios above 0.7 ([hash]3297)", - "fileprefix": "/home/graeme/process-gh/process/tests/regression/input_files/large_tokamak.IN.DAT", - "ifail": 1.0, - "nvar": 43.0, - "neqns+nineqns": 26.0, - "ioptimz": 1.0, - "minmax": 1.0, - "objf_name": "major radius", - "norm_objf": 1.6, - "sqsumsq": 2.7108846213506083e-06, - "convergence_parameter": 1.6736595259932239e-12, - "nviter": 7.0, - "itvar001": 5.326133750416047, - "xcm001": 0.934409429897552, - "nitvar001": 0.17726354619593357, - "itvar002": 8.0, - "xcm002": 1.0, - "nitvar002": 0.0, - "itvar003": 12.57086118649838, - "xcm003": 1.0475717655415318, - "nitvar003": 0.07477007853894548, - "itvar004": 0.03335095896153653, - "xcm004": 1.1116986320512177, - "nitvar004": 0.032383342303840365, - "itvar005": 8.016748468651018e+19, - "xcm005": 1.0688997958201356, - "nitvar005": 0.06139539253725528, - "itvar006": 1.200067379626934, - "xcm006": 1.0909703451153945, - "nitvar006": 1.0, - "itvar007": 1.2, - "xcm007": 1.0, - "nitvar007": 0.11627906976744184, - "itvar008": 0.5092482913911441, - "xcm008": 0.5092482913911441, - "nitvar008": 0.5087570484395837, - "itvar009": 0.5717066382900822, - "xcm009": 1.1434132765801643, - "nitvar009": 0.0280109936381528, - "itvar010": 3.6404829299098447, - "xcm010": 1.0401379799742414, - "nitvar010": 0.013627296381060534, - "itvar011": 1.0001161929488913, - "xcm011": 1.0001161929488913, - "nitvar011": 1.0, - "itvar012": 0.5418324938709288, - "xcm012": 0.5418324938709288, - "nitvar012": 0.5413738677386675, - "itvar013": 1.978568309961802, - "xcm013": 0.989284154980901, - "nitvar013": 0.18975437474361637, - "itvar014": 0.8751554542741979, - "xcm014": 0.8751554542741979, - "nitvar014": 0.875030484758957, - "itvar015": 0.5057731620849355, - "xcm015": 1.011546324169871, - "nitvar015": 0.505278440525461, - "itvar016": 20454478.696009487, - "xcm016": 1.3636319130672991, - "nitvar016": 0.20374853549559047, - "itvar017": 0.5686081370498858, - "xcm017": 0.9476802284164761, - "nitvar017": 0.564250643484733, - "itvar018": 0.5412377723126924, - "xcm018": 0.9020629538544872, - "nitvar018": 0.5407785508635559, - "itvar019": 0.9394232225609916, - "xcm019": 1.0438035806233241, - "nitvar019": 0.9393625851461378, - "itvar020": 0.4295621585104683, - "xcm020": 1.0739053962761707, - "nitvar020": 0.4289911496601284, - "itvar021": 0.3854141647888875, - "xcm021": 0.3854141647888875, - "nitvar021": 0.38479896375264017, - "itvar022": 1.000399977869715, - "xcm022": 1.000399977869715, - "nitvar022": 1.0, - "itvar023": 0.8540299392516906, - "xcm023": 0.8540299392516906, - "nitvar023": 0.8538838230747653, - "itvar024": 0.7153040698990529, - "xcm024": 1.1004677998446966, - "nitvar024": 0.715019088988041, - "itvar025": 0.9463261994231574, - "xcm025": 0.9463261994231574, - "nitvar025": 0.9462724718950525, - "itvar026": 1.0001916776956143, - "xcm026": 1.0001916776956143, - "nitvar026": 1.0, - "itvar027": 0.9962806324212535, - "xcm027": 0.9962806324212535, - "nitvar027": 0.9962769093305841, - "itvar028": 18.61587555808199, - "xcm028": 0.7446350223232795, - "nitvar028": 0.18534409968050036, - "itvar029": 0.28403092656598855, - "xcm029": 0.5680618531319771, - "nitvar029": 0.24634834375367218, - "itvar030": 0.00799968522020225, - "xcm030": 0.9999606525252812, - "nitvar030": 0.0, - "itvar031": 0.8397699365874538, - "xcm031": 1.0497124207343171, - "nitvar031": 0.772204401335122, - "itvar032": 87380.58190140124, - "xcm032": 1.3443166446369421, - "nitvar032": 0.8952232760560496, - "itvar033": 1.6818464699110338, - "xcm033": 1.6818464699110338, - "nitvar033": 0.07576071887900376, - "itvar034": 0.9970344458979716, - "xcm034": 0.9970344458979716, - "nitvar034": 0.997031477375347, - "itvar035": 0.08293735533382524, - "xcm035": 0.8293735533382524, - "nitvar035": 0.6587471066765047, - "itvar036": 0.738388549140562, - "xcm036": 0.738388549140562, - "nitvar036": 0.7381266758163784, - "itvar037": 0.43074427105190355, - "xcm037": 0.43074427105190355, - "nitvar037": 0.43017444549740097, - "itvar038": 0.9997735640131954, - "xcm038": 0.9997735640131954, - "nitvar038": 0.999773337350546, - "itvar039": 0.5202398014584474, - "xcm039": 0.6502997518230592, - "nitvar039": 0.5471441532754978, - "itvar040": 0.8961997128280894, - "xcm040": 0.8961997128280894, - "nitvar040": 0.8960958086367261, - "itvar041": 0.0005733634211619243, - "xcm041": 1.5088511083208533, - "nitvar041": 0.05733539945159188, - "itvar042": 0.5130350266123881, - "xcm042": 1.0260700532247762, - "nitvar042": 0.07064689163274254, - "itvar043": 0.5963799523208525, - "xcm043": 0.5963799523208525, - "nitvar043": 0.5959759282491016, - "eq_con001": 1.4096766989268872e-06, - "eq_con002": 4.3361936263863754e-10, - "eq_con011": 1.0695888619238758e-12, - "eq_con005": 2.5614146137442617e-08, - "eq_con008": 6.611896075092716e-08, - "eq_con009": 1.1354944495778341e-07, - "eq_con013": 2.1630982716125402e-07, - "eq_con015": -1.5753578841426474e-07, - "eq_con030": 2.11691219220711e-07, - "eq_con016": 1.5448176071686248e-07, - "eq_con024": 7.406727597913942e-07, - "eq_con025": -2.417359090678417e-09, - "eq_con026": -4.243906492895633e-08, - "eq_con027": -4.0426210157207265e-09, - "eq_con033": 1.838669940745774e-07, - "eq_con034": 1.7405994232611022e-06, - "eq_con035": 9.259891520230212e-09, - "eq_con036": -1.1919832449969192e-06, - "eq_con060": 4.1360093128162134e-10, - "eq_con062": -2.297801744433059e-07, - "eq_con065": 1.3496520079314678e-07, - "eq_con072": 3.5752187876880726e-08, - "eq_con081": 1.7053177758796778e-08, - "eq_con068": 2.8098235094198287e-07, - "eq_con031": 9.851251148162987e-08, - "eq_con032": 8.624477620955417e-08, - "fwbllife": 6.136496203227313, - "divlife.": 3.836855085106086, - "coe": 514.3904177151642, - "fkind": 1.0, - "lsa": 4.0, - "c211": 35.2, - "c212": 453.07517378744404, - "c213": 38.0, - "c2141": 103.06766676874581, - "c2142": 57.64127691510489, - "c215": 14.799999999999999, - "c216": 19.72901095136551, - "c2171": 18.0, - "c2172": 21.0, - "c2173": 11.499999999999998, - "c2174": 7.5608603846723526, - "c21": 779.5739888073324, - "c2211": 191.30079210601932, - "c22121": 261.0927397468544, - "c22122": 639.8460606457973, - "c22123": 80.726178241377, - "c22124": 0.0, - "c2212": 981.6649786340288, - "c22131": 78.39420268317497, - "c22132": 78.39420268317497, - "c2213": 156.78840536634993, - "c2214": 41.06270685862603, - "c2215": 41.660031860723535, - "c221": 1412.4769148257476, - "c22211": 134.11866065804657, - "c22212": 56.13089157346991, - "c22213": 447.1774533180073, - "c22214": 151.22972859955922, - "c22215": 44.807387407208985, - "c2221": 833.464121556292, - "c22221": 462.22327347185046, - "c22222": 76.5706243040698, - "c22223": 94.35226036338396, - "c22224": 7.924521436277656, - "c2222": 641.070679575582, - "c2223": 254.04212380591363, - "c222": 1728.5769249377875, - "c2231": 231.24844992006604, - "c2232": 0.0, - "c2233": 0.0, - "c223": 231.24844992006604, - "c2241": 12.479999999999999, - "c2242": 4.68, - "c2243": 2.571359218249475, - "c2244": 5.833472788444279, - "c2245": 0.0, - "c2246": 1.3, - "c224": 26.864832006693753, - "c22511": 4.010227929682539, - "c22512": 34.182980917589475, - "c22513": 21.590956152532534, - "c22514": 4.8, - "c22515": 34.31842796551534, - "c2251": 98.9025929653199, - "c22521": 2.999838036790265, - "c22522": 3.5999999999999996, - "c22523": 11.995199999999999, - "c22524": 1.2679371237932096, - "c22525": 14.709370284405457, - "c22526": 4.313509832440751, - "c22527": 0.8999999999999999, - "c2252": 39.78585527742968, - "c2253": 16.864002605180406, - "c225": 155.55245084793, - "cpp": 36.87912796356539, - "chx": 71.7719385486551, - "c2261": 108.6510665122205, - "cppa": 28.990142044206674, - "c2262": 28.990142044206674, - "c2263": 193.01314317695278, - "c226": 330.65435173337994, - "c2271": 22.3, - "c2272": 102.46823351165338, - "c2273": 58.170356317967574, - "c2274": 69.2798115045696, - "c227": 252.21840133419056, - "c228": 150.0, - "c229": 125.0, - "c22": 4412.592325605795, - "c23": 176.36314268919259, - "c241": 18.4, - "c242": 7.421236059187929, - "c243": 6.54421307384162, - "c244": 6.8, - "c245": 1.5, - "c24": 40.66544913302955, - "c25": 25.0, - "c26": 49.956703959179436, - "cdirt": 5484.151610194528, - "crctcore": 3372.302289683601, - "c9": 1828.9645619998748, - "ccont": 1426.0576535779085, - "concost": 8739.173825772312, - "moneyint": 1441.9636812524318, - "capcost": 10181.137507024743, - "abktflnc": 5.0, - "adivflnc": 7.0, - "bktlife": 6.136496203227313, - "divlife": 3.836855085106086, - "cdrlife": 6.136496203227313, - "tlife": 30.0, - "cfactr": 0.8, - "bktcycles": 15745.584859883867, - "itart": 0.0, - "rmajor": 8.0, - "rminor": 2.6666666666666665, - "aspect": 3.0, - "kappa": 1.85, - "kappa95": 1.6517857142857142, - "kappaa": 1.718793808554279, - "triang": 0.5, - "triang95": 0.3333333333333333, - "pperim": 24.081367139525412, - "xarea": 38.39822223637151, - "sarea": 1173.8427771245592, - "vol": 1888.171153995669, - "icurr": 4.0, - "plascur/1d6": 16.528278760008096, - "alphaj": 2.0172352695445492, - "rli": 1.2370224162734498, - "bvert": -0.7441276400482666, - "bt": 5.326133750416047, - "bp": 0.8624945394733476, - "btot": 5.39551643106962, - "q0": 1.0, - "q95": 3.640482929909845, - "qstar": 3.0172352695445492, - "beta": 0.033350958961536524, - "betap": 1.305153692681755, - "total_toroidal_beta": 0.0342255336374381, - "betaft": 0.004227708298091151, - "betanb": 0.0, - "gammaft": 0.14516608557703495, - "thermal_beta": 0.02912325066344537, - "thermal_poloidal_beta": 1.1397069028848372, - "thermal_toroidal_physics_variables.beta_(=_beta-exp)": 0.029886960562748654, - "eps*betap": 0.43505123089391834, - "epbetmax": 1.38, - "dnbeta": 4.948089665093799, - "normalised_thermal_beta": 2.5026091025798896, - "normalised_total_beta": 2.8659030697308685, - "normalised_toroidal_beta": 2.9410567182741043, - "betalim": 0.05758168763678506, - "plasma_thermal_energy_(j)": 955429496.230412, - "total_plasma_internal_energy": 1094125456.2430193, - "te": 12.570861186498382, - "te0": 25.986118047669795, - "ti": 12.570861186498382, - "ti0": 25.986118047669795, - "ten": 13.900929357310797, - "dene": 8.016748468651018e+19, - "ne0": 1.054474759840606e+20, - "dnla": 8.878130543508506e+19, - "dnla_gw": 1.1999999692630252, - "dnitot": 7.1297522422781575e+19, - "deni": 6.45836002502319e+19, - "dnz": 4.636594070923621e+16, - "dnalp": 6.648879163664088e+18, - "dnprot": 1.867706817635482e+16, - "dnbeam": 0.0, - "dnelimt": 7.398442309095201e+19, - "boundu(9)": 7.398442309095201e+19, - "ralpne": 0.08293735533382524, - "fimp(01)": 0.8058413903221652, - "fimp(02)": 0.08293735533382524, - "fimp(03)": 0.0, - "fimp(04)": 0.0, - "fimp(05)": 0.0, - "fimp(06)": 0.0, - "fimp(07)": 0.0, - "fimp(08)": 0.0, - "fimp(09)": 0.0, - "fimp(10)": 0.0, - "fimp(11)": 0.0, - "fimp(12)": 0.0, - "fimp(13)": 0.0005733634211619244, - "fimp(14)": 4.9999999999999996e-06, - "aion": 2.7235463417462302, - "zeff": 2.5211399464385624, - "alphan": 1.0, - "ipedestal": 1.0, - "rhopedn": 0.9400000000000001, - "neped": 6.2886759627309195e+19, - "fgwped_out": 0.8499999999999998, - "rhopedt": 0.9400000000000001, - "teped": 5.5, - "tesep": 0.1, - "nesep": 3.6992211545476006e+19, - "fgwsep_out": 0.5, - "alphat": 1.45, - "tbeta": 2.0, - "dlimit(1)": 5.2740200899341165e+19, - "dlimit(2)": 1.0995014528645779e+20, - "dlimit(3)": 4.375781881263019e+19, - "dlimit(4)": 3.012169558649921e+21, - "dlimit(5)": 4.379134038753384e+20, - "dlimit(6)": 6.619636779956869e+19, - "dlimit(7)": 7.398442309095201e+19, - "fdeut": 0.5, - "ftrit": 0.5, - "powfmw": 1625.4972970384704, - "pdt": 1623.5348164299871, - "pdd": 1.96248060848292, - "pdhe3": 0.0, - "palpmw": 324.70696328599746, - "palpnb": 0.0, - "pneutmw": 1299.5160632349946, - "pchargemw": 1.2742705174783238, - "tot_power_plasma": 387.44298756151835, - "psyncpv*vol": 15.72872637254633, - "ssync": 0.6000000000000001, - "coreradius": 0.7500000000000001, - "coreradiationfraction": 0.6000000000000001, - "pinnerzoneradmw": 90.59670654590884, - "pouterzoneradmw": 132.84029507049215, - "pradmw": 223.437001616401, - "rad_fraction_lcfs": 0.5766964657759449, - "photon_wall": 0.1751188877190461, - "peakfactrad": 3.33, - "maxradwallload": 1.0, - "peakradwallload": 0.5831458961044236, - "palpfwmw": 16.235348164299886, - "wallmw": 1.018496515440357, - "ptarmw": 32.80119718902346, - "ftar": 1.0, - "lambdaio": 0.00157, - "fio": 0.41, - "fli": 0.41, - "flo": 0.5900000000000001, - "plimw": 13.448490847499619, - "plomw": 19.352706341523845, - "pohmmw": 0.6142852823203814, - "falpha": 0.95, - "falpe": 0.7172665253816517, - "falpi": 0.2827334746183483, - "ptrimw": 139.7313134745139, - "ptremw": 157.11496770909844, - "pinjimw": 0.0, - "pinjemw": 77.08281664002202, - "ignite": 0.0, - "pdivt": 164.00598594511735, - "pdivt/rmajor": 20.500748243139668, - "pdivtbt/qar": 9.997732830945473, - "pthrmw(1)": 129.95806884395483, - "pthrmw(2)": 285.9808925986646, - "pthrmw(3)": 58.269318312815805, - "pthrmw(4)": 214.3928152339829, - "pthrmw(5)": 172.13808246188188, - "pthrmw(6)": 97.5154478818779, - "pthrmw(7)": 127.83362741419408, - "pthrmw(8)": 67.19726834956172, - "pthrmw(9)": 67.91920789138034, - "pthrmw(10)": 99.63078549530022, - "pthrmw(11)": 45.93077993401285, - "pthrmw(12)": 31.032034770399456, - "pthrmw(13)": 43.17743169094646, - "pthrmw(14)": 22.146586590758233, - "pthrmw(15)": 27.278808402024605, - "pthrmw(16)": 14.215196812183729, - "pthrmw(17)": 52.34772832283361, - "pthrmw(18)": 260.80361402180387, - "pthrmw(19)": 97.5154478818779, - "pthrmw(20)": 127.83362741419408, - "pthrmw(21)": 67.19726834956172, - "boundl(103)": 97.5154478818779, - "plhthresh": 97.5154478818779, - "tauelaw": "IPB98(y,2)", - "hfact": 1.2000673796269339, - "taueff": 3.2182491458976963, - "tauei": 3.2182491458976967, - "tauee": 3.2182491458976963, - "dntau": 2.57998939121128e+20, - "dntau*te": 3.243268849955547e+21, - "powerht": 296.8462810156095, - "iradloss": 1.0, - "radiation_power_subtracted_from_plasma_power_balance_(mw)": 90.59670654590884, - "hstar": 1.1049512475541297, - "taup": 21.79237753723082, - "taup/taueff": 6.7715010707016186, - "taulimit": 5.0, - "total_energy_conf_time": 2.8239650512949175, - "beta_mcdonald": 0.03422553363743809, - "rho_star": 0.0019565075857386678, - "nu_star": 0.003685790299051017, - "kappaa_ipb": 1.68145080681586, - "vsstt": 552.9661984103373, - "vsind": 235.18431658959855, - "gamma": 0.30000000000000004, - "vsres": 49.848114386144594, - "vsbrn": 267.93376743459413, - "cboot": 1.0, - "bscf_iter89": 0.37591710255962607, - "bscf_sauter": 0.4236675302755845, - "bscf_nevins": 0.35398266745258933, - "bscf_wilson": 0.43759445182802537, - "bscf_sakai": 0.3313573094155941, - "diacf_hender": 0.01191105677197733, - "diacf_scene": 0.011101733591771228, - "pscf_scene": -0.003001586306538287, - "bootipf.": 0.4236675302755845, - "diaipf.": 0.0, - "psipf.": 0.0, - "vburn": 0.037165714061327966, - "rplas": 3.941908367053235e-09, - "res_time": 3087.94542796045, - "rlp": 1.4229208014003955e-05, - "csawth": 1.0, - "tauratio": 1.0, - "qfuel": 3.39369812758061e+21, - "rndfuel": 5.794528801334492e+20, - "burnup": 0.17074378991585354, - "iefrf": 10.0, - "iefrffix": 0.0, - "startupratio": 1.0, - "pheat": 75.0, - "pcurrentdrivemw": 2.082816640022017, - "bscfmax": 0.9500000000000001, - "bigq": 20.920951448911715, - "auxiliary_cd": 97428.05865277287, - "effcd": 0.04677706946481028, - "gamcd": 0.30000000000000004, - "etacd": 0.5, - "gamma_ecrh": 0.30000000000000004, - "bootipf": 0.4236675302755845, - "diaipf": 0.0, - "psipf": 0.0, - "faccd": 0.0058946282348837364, - "facoh": 0.5704378414895317, - "plasipf+faccd+facoh": 1.0, - "fvsbrnni": 0.42956215851046825, - "echpwr": 77.08281664002202, - "pinjalw": 200.0, - "etaech": 0.5, - "echwpow": 154.16563328004403, - "abs(vstot)": 573.8463176139876, - "vssoft": 285.0324309757431, - "vsmax": 267.93376743459413, - "tramp": 500.0, - "tohs": 165.28278760008098, - "t_fusion_ramp": 10.0, - "tburn": 7199.1650652122735, - "tqnch": 165.28278760008098, - "tdwell": 1800.0, - "tcycle": 9839.730640412436, - "tf_in_cs": 0.0, - "inboard_build": 5.333333333333334, - "bore": 1.978568309961802, - "ohcth": 0.5717066382900822, - "precomp": 0.06833266846664313, - "gapoh": 0.08, - "tfcth": 0.9267257166233631, - "tftsgap": 0.05, - "thshield_ib": 0.05, - "gapds": 0.02, - "d_vv_in": 0.30000000000000004, - "shldith": 0.30000000000000004, - "vvblgap": 0.02, - "blnkith": 0.7000000000000001, - "fwith": 0.018000000000000002, - "scrapli": 0.25, - "scraplo": 0.25, - "fwoth": 0.018000000000000002, - "blnkoth": 1.0, - "shldoth": 0.8, - "d_vv_out": 0.30000000000000004, - "gapsto": 1.3667671851087198, - "thshield_ob": 0.05, - "tfthko": 0.9267257166233631, - "i_single_null": 1.0, - "clh1": 5.603853948155594, - "thshield_vb": 0.05, - "vgap_xpoint_divertor2": 0.163, - "d_vv_top": 0.30000000000000004, - "shldtth": 0.6, - "blnktth": 0.8500000000000001, - "fwtth": 0.018000000000000002, - "vgap_xpoint_divertortop": 0.6, - "rminor*kappa": 4.933333333333334, - "vgap_xpoint_divertor": 2.001883830794158, - "divfix": 0.6200000000000001, - "shldlth": 0.7, - "d_vv_bot": 0.30000000000000004, - "ddwex": 0.15000000000000002, - "ohhghf": 0.9, - "ptop_radial": 6.666666666666667, - "ptop_vertical": 4.933333333333334, - "physics_variables.rmajor.": 8.0, - "0.0": 0.0, - "tril": 0.5, - "physics_variables.kappa.": 1.85, - "tfoffset": -0.6169419153970797, - "rco": 5.042222222222223, - "rci": 9.793333333333333, - "rxpt": 6.666666666666667, - "zxpt": -4.933333333333334, - "thetai": 0.2081998762191988, - "thetao": 1.0428688795434875, - "betai": 1.0, - "betao": 1.0, - "plsepi": 1.0, - "plsepo": 1.5, - "plleni": 1.0, - "plleno": 1.0, - "rspi": 5.6882620831496995, - "zspi": -5.140032319670928, - "rplti": 5.865613609626642, - "zplti": -4.672542815985231, - "rplbi": 5.510910556672757, - "zplbi": -5.607521823356624, - "rspo": 7.422282732017246, - "zspo": -6.229112775130474, - "rplto": 7.649649298858225, - "zplto": -5.783798903481559, - "rplbo": 7.1949161651762665, - "zplbo": -6.67442664677939, - "divht": 2.001883830794158, - "sig_tf_case_max": 750000000.0, - "sig_tf_wp_max": 750000000.0, - "eyoung_wp_trans*1.0d-9": 43.80992575828373, - "eyoung_wp_axial*1.0d-9": 115.43449733347816, - "poisson_wp_trans": 0.3039357671637508, - "poisson_wp_axial": 0.31556529867739486, - "sig_tf_r_max(1)": 4.8848669309786465e-08, - "sig_tf_t_max(1)": -489326248.98045564, - "sig_tf_z_max(1)": 260973660.50790218, - "sig_tf_vmises_max(1)": 659733803.7414843, - "sig_tf_tresca_max(1)": 750299909.4883578, - "sig_tf_r_max(2)": -154872406.50739866, - "sig_tf_t_max(2)": -379548738.68915474, - "sig_tf_z_max(2)": 260973660.50790218, - "sig_tf_vmises_max(2)": 557868013.2399491, - "sig_tf_tresca_max(2)": 640522399.1970569, - "sig_tf_r_max(3)": 6141875.284081604, - "sig_tf_t_max(3)": -363257800.1825306, - "sig_tf_z_max(3)": 145487551.3676068, - "sig_tf_vmises_max(3)": 453841761.9172272, - "sig_tf_tresca_max(3)": 508745351.5501374, - "deflect": -0.0062720153428098575, - "casestr": 0.0012730422463800106, - "insstrain": -0.007730435499178614, - "i_tf_sup": 1.0, - "i_tf_sc_mat": 1.0, - "i_tf_bucking": 1.0, - "n_tf": 16.0, - "r_tf_inboard_mid": 3.161970475030209, - "r_tf_inboard_in": 2.6986076167185273, - "r_tf_inboard_out": 3.6253333333418905, - "i_tf_wp_geom": 1.0, - "r_wp_inner": 2.9826385432845157, - "r_tf_outboard_mid": 14.98479671008707, - "i_tf_case_geom": 0.0, - "tftort": 1.414534894834946, - "hmax": 8.818217164127494, - "tfleng": 47.96269479666271, - "i_tf_shape": 1.0, - "xarc(1)": 3.6253333333418905, - "yarc(1)": 4.5506, - "xarc(2)": 7.466666666666667, - "yarc(2)": 7.584333333333333, - "xarc(3)": 14.521433851775388, - "yarc(3)": 0.0, - "xarc(4)": 7.466666666666667, - "yarc(4)": -8.818217164127494, - "xarc(5)": 3.6253333333418905, - "yarc(5)": -5.290930298476496, - "tfareain": 18.41148818558753, - "a_tf_steel*n_tf": 12.98138737529802, - "f_tf_steel": 0.7050699674271752, - "a_tf_ins*n_tf": 0.8601501149912956, - "f_tf_ins": 0.046718120030330795, - "acasetf": 0.5670935243915998, - "casthi": 0.06, - "thkcas": 0.28403092656598855, - "casths": 0.05, - "whtcas": 558971.8166475091, - "awpc": 0.5836244872076208, - "aswp": 0.5254979180939733, - "dr_tf_wp": 0.5130350266123881, - "wwp1": 1.1886163990572312, - "wwp2": 1.086567387365075, - "tinstf": 0.008, - "tfinsgap": 0.01, - "aswp*n_tf": 3.907890985032423, - "aswp/awpc": 0.4184937265622962, - "aiwp/awpc": 0.04839644684019424, - "awpc-aswp-aiwp)": 0.5331098265975095, - "i_tf_turns_integer": 0.0, - "n_tf_turn": 152.3832193182796, - "t_turn_tf": 0.058724175468887765, - "t_conductor": 0.05712417546888777, - "t_cable": 0.04112480502848327, - "thwcndut": 0.00799968522020225, - "thicndut": 0.0008, - "dhecoil": 0.01, - "acstf": 0.0016603493559957693, - "vftf": 0.30000000000000004, - "fcutfsu": 0.8397699365874537, - "1-fcutfsu": 0.1602300634125463, - "check_total_area_fractions_in_winding_pack_=_1": 1.0, - "tmargmin_tf": 1.5, - "tmargtf": 1.505598084728093, - "i_tf_cond_eyoung_axial": 0.0, - "eyoung_cond_axial": 0.0, - "eyoung_cond_trans": 0.0, - "whtconsc": 4785.269196991952, - "whtconcu": 58378.72996915903, - "whtconsh": 91373.57902419812, - "whtconin": 2438.5017095450826, - "whtcon": 156976.0798998942, - "whttf/n_tf": 720966.1289565583, - "whttf": 11535458.063304933, - "bmaxtf": 12.25217638945668, - "ritfc/1.d6": 213.04535001664186, - "ritfc": 213045350.01664189, - "bmaxtfrp": 12.714386263027976, - "jwptf": 25338510.234894928, - "oacdcp": 11571326.981781587, - "estotftgj": 123.14832087161449, - "vforce": 211737511.36266205, - "vforce_outboard": 211737511.36266205, - "f_vforce_inboard": 0.5, - "cforce": 81570912.72991982, - "ripmax": 0.6000000000000001, - "ripple": 0.6000000000000001, - "tdmptf": 18.61587555808199, - "vv_stress_quench": 61596422.44704868, - "vdalw": 10.0, - "vtfskv": 9.463245522511876, - "tmaxpro": 150.0, - "isumat": 1.0, - "bc20m": 32.97, - "tc0m": 16.06, - "thelium": 4.75, - "fhetot": 0.34730318716125974, - "str_tf_con_res": -0.005, - "str_wp": 0.002072346466913251, - "j_crit_sc": 703508487.9936773, - "j_crit_cable": 73574079.66660734, - "jwdgcrt": 35423417.76048685, - "jwdgop": 25338510.234894928, - "tmarg": 1.505598084728093, - "icrit": 122158.67579243291, - "cpttf": 87380.58190140124, - "iooic": 0.7153039383782679, - "isumatoh": 1.0, - "bmaxoh0": 14.014526759498645, - "jscoh_bop": 352385554.89995176, - "jcableoh_bop": 74000966.52898985, - "rjohc0": 35502718.394214965, - "cohbop": 19215412.29241038, - "bmaxoh": 13.963104694327475, - "jscoh_eof": 357052284.7559312, - "jcableoh_eof": 74980979.79874553, - "rjohc": 35972889.755086295, - "coheof": 20454478.696009487, - "areaoh": 9.074579923107418, - "awpoh": 4.353622265591202, - "awpoh*(1-vfohc)": 3.0475355859138413, - "awpoh*vfohc": 1.3060866796773605, - "areaoh-awpoh": 4.720957657516216, - "oh_steel_frac": 0.5202398014584474, - "i_cs_stress": 0.0, - "alstroh": 750000000.0, - "sig_hoop": 672149760.5902425, - "sig_axial": -765362193.9124677, - "s_tresca_oh": 672149760.5902425, - "axial_force": -1619388248.1701345, - "tfcoil_variables.str_cs_con_r": -0.005, - "fcuohsu": 0.7000000000000001, - "vfohc": 0.3, - "tftmp": 4.75, - "tmargoh": 1.5044615627792455, - "tmargmin_cs": 1.5, - "residual_sig_hoop": 240000000.0, - "tbrnmn": 7200.0, - "t_crack_vertical": 0.00089, - "t_crack_radial": 0.0026699999999999996, - "a_oh_turn": 0.001955561938022097, - "l_cond_cst": 0.07659429361294672, - "r_in_cst": 0.0074182349072730615, - "d_cond_cst": 0.02553143120431557, - "t_structural_vertical": 0.005347480694884724, - "t_structural_radial": 0.005347480694884724, - "n_cycle": 135.8422857046066, - "n_cycle_min": 20000.0, - "isumatpf": 3.0, - "fcupfsu": 0.69, - "sigpfcalw": 500.0, - "sigpfcf": 0.6660000000000001, - "rpf[0]": 5.566666666666666, - "zpf[0]": 9.371059049956695, - "pfdr(0)": 1.2683151833488946, - "pfdz(0)": 1.2683151833488928, - "turns[0]": 442.37143618616824, - "ric[0]": 17.69485744744673, - "bpf[0]": 6.191359669633713, - "rpf[1]": 5.566666666666666, - "zpf[1]": -10.604942880750857, - "pfdr(1)": 1.3600487310857812, - "pfdz(1)": -1.3600487310857794, - "turns[1]": 508.67645150521156, - "ric[1]": 20.34705806020846, - "bpf[1]": 6.658540993643877, - "rpf[2]": 16.737054748216458, - "zpf[2]": 2.6666666666666665, - "pfdr(2)": 1.1330649473603884, - "pfdz(2)": 1.1330649473603893, - "turns[2]": 192.57542624052033, - "ric[2]": -7.703017049620812, - "bpf[2]": 2.6379469690893345, - "rpf[3]": 16.737054748216458, - "zpf[3]": -2.6666666666666665, - "pfdr(3)": 1.1330649473603884, - "pfdz(3)": -1.1330649473603893, - "turns[3]": 192.57542624052033, - "ric[3]": -7.703017049620812, - "bpf[3]": 2.6379469690893345, - "rpf[4]": 15.214762622032426, - "zpf[4]": 7.466666666666666, - "pfdr(4)": 0.8065946800406465, - "pfdz(4)": 0.8065946800406465, - "turns[4]": 130.11899557397473, - "ric[4]": -5.204759822958989, - "bpf[4]": 2.5701375259367465, - "rpf[5]": 15.214762622032426, - "zpf[5]": -7.466666666666666, - "pfdr(5)": 0.8065946800406465, - "pfdz(5)": -0.8065946800406465, - "turns[5]": 130.11899557397473, - "ric[5]": -5.204759822958989, - "bpf[5]": 2.5701375259367465, - "rpf[nohc-1]": 2.264421629106843, - "zpf[nohc-1]": 0.0, - "ohdr": 0.5717066382900822, - "ohdz": 15.87279089542949, - "turns[nohc-1]": 4640.395042810902, - "ric[nohc-1]": -185.61580171243608, - "bpf[nohc-1]": 14.014526759498645, - "ssq0": 0.00034489046110061975, - "alfapf": 5e-10, - "vstot": -570.0, - "fcohbop": 0.9394232225609916, - "fcohbof": -0.13815159398525864, - "ncirt": 8.0, - "pfc0t0": 0.0, - "pfc0t1": 13876718.90048715, - "pfc0t2": 17694857.44744673, - "pfc0t3": 17694857.44744673, - "pfc0t4": 882616.322707653, - "pfc0t5": 0.0, - "pfc1t0": 0.0, - "pfc1t1": 18143223.487206817, - "pfc1t2": 20347058.060208462, - "pfc1t3": 20347058.060208462, - "pfc1t4": -1634236.6705107838, - "pfc1t5": 0.0, - "pfc2t0": -0.0, - "pfc2t1": 494127.52580783895, - "pfc2t2": -7104360.323212635, - "pfc2t3": -7104360.323212635, - "pfc2t4": -7703017.049620813, - "pfc2t5": -0.0, - "pfc3t0": -0.0, - "pfc3t1": 494127.52580783895, - "pfc3t2": -7104360.323212635, - "pfc3t3": -7104360.323212635, - "pfc3t4": -7703017.049620813, - "pfc3t5": -0.0, - "pfc4t0": -0.0, - "pfc4t1": 311170.46841456083, - "pfc4t2": -4827763.431852445, - "pfc4t3": -4827763.431852445, - "pfc4t4": -5204759.822958989, - "pfc4t5": -0.0, - "pfc5t0": -0.0, - "pfc5t1": 311170.46841456083, - "pfc5t2": -4827763.431852445, - "pfc5t3": -4827763.431852445, - "pfc5t4": -5204759.822958989, - "pfc5t5": -0.0, - "cs_t0": -0.0, - "cs_t1": 174371794.6029387, - "cs_t2": 25643118.875424743, - "cs_t3": 25643118.875424743, - "cs_t4": -185615801.71243608, - "cs_t5": -0.0, - "plasmat0": 0.0, - "plasmat1": 0.0, - "plasmat2": 16528278.760008097, - "plasmat3": 16528278.760008097, - "plasmat4": 16528278.760008097, - "plasmat5": 0.0, - "fncmass": 226414.89817936163, - "aintmass": 4320849.388558835, - "coldmass": 34483447.61357749, - "clgsmass": 1280211.0687773996, - "gsm1": 85819.53724071878, - "gsm2": 401715.3656188316, - "gsm3": 685685.2931011935, - "x_shield": 4.056, - "x_blanket": 2.2911207098527977, - "tfc_nuc_heating": 15010.517437669394, - "ptfnuc.": 0.024399555522080427, - "powfmw.": 1625.4972970384704, - "dp_he": 550000.0, - "fpump": 0.08946326171265166, - "p_plasma": 1671.9742663381444, - "t_in_compressor": 557.0266128917227, - "t_in_bb": 573.13, - "t_out_bb": 773.13, - "htpmw_fw_blkt": 164.27703032343044, - "htpmw_div": 1.6962349622927138, - "htpmw_shld": 0.007091948864551574, - "fbltibe12": 0.375, - "fblli2sio4": 0.375, - "fblss_ccfe": 0.09705, - "vfcblkt": 0.05295, - "vfpblkt": 0.1, - "fw_armour_vol": 5.869213885622797, - "volfw": 19.806924177715423, - "volblkt": 1184.9001123070318, - "volshld": 785.1983441824417, - "vdewin": 1017.7969703762566, - "fw_armour_mass": 112982.36729823884, - "fwmass": 154494.0085861803, - "whtblkt": 2967570.482271838, - "whtbltibe12": 1004202.8451802094, - "whtblli4sio4": 1066410.1010763287, - "whtblss": 896957.5360153001, - "armour_fw_bl_mass": 3235046.8581562573, - "whtshld": 2449818.8338492177, - "vvmass": 7938816.368934802, - "ptfnuc": 0.025446040769260235, - "pnucfw": 163.6877633222338, - "pnucblkt": 1294.309408421096, - "pnucshld": 1.4183897729103148, - "pnucdiv": 149.54575132753928, - "exp_blanket": 0.9993559308836573, - "exp_shield1": 0.0019523496307253152, - "exp_shield2": 0.2542676059101394, - "fdiv": 0.115, - "secondary_cycle": 2.0, - "fwpressure": 15500000.0, - "blpressure": 15500000.0, - "nblktmodpi": 7.0, - "nblktmodti": 32.0, - "nblktmodpo": 8.0, - "nblktmodto": 48.0, - "etaiso": 0.9, - "fwarea": 1604.4317885488435, - "rdewex": 17.803587221896652, - "zdewex": 15.348796828906451, - "divsur": 148.7858280740126, - "divmas": 36452.52787813309, - "itfka": 87.38058190140124, - "ntfc": 16.0, - "tchghr": 4.0, - "ltfth": 32.25734545397118, - "rcoils": 0.0, - "tfcv": 300.3134460048771, - "ntfbkr": 16.0, - "ndumpr": 64.0, - "r1dump": 0.10829918177004177, - "r1ppmw": 206.7259751082294, - "r1emj": 1924.1895070728715, - "ttfsec": 18.615875558081985, - "tfpsv": 315.32911830512097, - "tfpska": 91.7496109964713, - "tfckw": 28931.323940355127, - "tfackw": 32145.915489283474, - "rpower": 9.137630210330306, - "xpower": 17.1039334543909, - "djmka": 0.125, - "albusa": 699.0446552112099, - "tfbusl": 3193.061929829747, - "albuswt": 602.6650764675866, - "rtfbus": 0.0011967507646026248, - "vtfbus": 104.57277820192421, - "drarea": 4964.708948425594, - "tfcfsp": 1819.7416453357514, - "tfcbv": 10918.44987201451, - "xpwrmw": 19.00437050487878, - "tfacpd": 10.152922455922562, - "pfckts": 12.0, - "spsmva": 304.0408070294364, - "spfbusl": 2448.0, - "pfbuspwr": 964.9306270770265, - "srcktpm": 964.9306270770267, - "vpfskv": 20.0, - "etapsu": 0.9, - "ensxpfm": 28756.732216271674, - "peakpoloidalpower": 173.98503881633206, - "rat": 1.3e-08, - "ogas": 0.00016690576987239827, - "pbase": 0.0005, - "s(1)": 0.33381153974479655, - "snet(1)": 23.99270157129931, - "volume": 2258.798499653022, - "pend": 0.1659466933010761, - "pstart": 0.001659466933010761, - "dwell_pump": 0.0, - "tdwell.": 1800.0, - "tramp.": 500.0, - "tpump": 1800.0, - "s(2)": 5.778973059309295, - "snet(2)": 58.16367479041741, - "prdiv": 0.36, - "fhe": 0.17011638731333348, - "s(3)": 39.017095302024366, - "snet(3)": 39.017095302024366, - "frate": 2.817683913486213e-05, - "s(4)": 39.01709530202437, - "snet(4)": 58.16367479041741, - "nduct": 16.0, - "d(imax)": 0.4840599772915367, - "l1": 1.7267257166233632, - "dout": 0.580871972749844, - "l2": 4.8, - "l3": 2.0, - "pumpn": 32.0, - "vrci": 998672.3282036675, - "wrbi": 39.553139173576874, - "efloor": 337127.3773393309, - "rbv": 1132687.9344686102, - "rmbv": 396414.1029567147, - "wsv": 125307.1237284889, - "triv": 40000.0, - "elev": 51918.449872014506, - "conv": 60000.0, - "cryv": 16436.65301015729, - "admv": 100000.0, - "shov": 100000.0, - "volnucb": 1576830.2078990284, - "basemw": 5.0, - "bdvmw": 0.0, - "crymw": 44.04446574153632, - "htpmw..": 190.78201980987092, - "ppfmw": 86.67458882108461, - "ptfmw": 10.152922455922562, - "pheatingmw": 154.16563328004403, - "trithtmw..": 15.0, - "vachtmw..": 0.5, - "pacpmw": 501.31963010845845, - "fcsht": 55.56910660089964, - "qss/1.0d6": 0.025765247523735987, - "qnuc/1.0d6": 0.013, - "qac/1.0d6": 0.0038140264669585906, - "qcl/1.0d6": 0.019014014621744908, - "qmisc/1.0d6": 0.027716979875597767, - "helpow_+_helpow_cryal/1.0d6": 0.08931026848803725, - "tmpcry": 4.5, - "tcoolin": 313.15, - "efficiency_(figure_of_merit)_of_cryogenic_plant_is_13%_of_ideal_carnot_v": 0.0020277296360485266, - "efficiency_(figure_of_merit)_of_cryogenic_aluminium_plant_is_40%_of_idea": -2.0203225806451637, - "crypmw": 44.04446574153632, - "emult": 1.269, - "fhcd": 0.0, - "1-fdiv-fhcd": 0.885, - "primary_pumping": 3.0, - "htpmw_fw": 0.0, - "htpmw_blkt": 0.0, - "htpmwe_fw_blkt": 188.8241727855522, - "htpmwe_shld": 0.008151665361553533, - "htpmwe_div": 1.949695358957142, - "htpmw": 190.78201980987092, - "fpumpshld": 0.005, - "fpumpdiv": 0.005, - "etahtp": 0.8700000000000001, - "etath": 0.4, - "pdivfraction": 0.15649504113269377, - "total_power_leaving_reactor_(across_vacuum_vessel_boundary)_(mw)": 2014.3938675622935, - "fachtmw": 55.56910660089964, - "htpsecmw": 24.801662575283217, - "pinjht": 77.08281664002202, - "trithtmw": 15.0, - "vachtmw": 0.5, - "tfcmw": 0.0, - "psechtmw": 228.41021269512945, - "pthermmw": 2178.620005804185, - "nphx": 3.0, - "pscalingmw": 296.84628118361235, - "pcoreradmw.": 90.59670654590884, - "total_(mw)": 387.4429877295212, - "falpha*palpmw": 308.4716151216976, - "pchargemw.": 1.2742705174783238, - "pohmmw.": 0.6142852823203814, - "pinjmw": 77.08281664002202, - "emultmw": 309.3692915940389, - "pinjmw.": 77.08281664002202, - "htpmw_mech": 165.9803572345877, - "pthermfw_blkt": 1836.2512966615748, - "pthermshld": 1.4254817217748663, - "pthermdiv": 340.94322742083546, - "psechcd": 0.0, - "pnetelmw.": 400.0000617927041, - "pnetelin": 400.0, - "pinjwp": 154.16563328004403, - "pfwpmw": 1.23379264069643, - "tot_plant_power": 871.4480023216739, - "pgrossmw": 871.448002321674, - "pnetelmw": 400.0000617927041, - "rejected_main": 1307.172003482511, - "pnetelmw/(powfmw+emultmw": 20.673263166708, - "pnetelmw/powfmw": 24.607857701238455, - "cirpowfr": 0.5409937704521196, - "waterusetower": 55574.03111394033, - "wateruserecirc": 18646.27777831903, - "wateruseonethru": 1827335.2222752648, - "error_status": 2.0, - "error_id": 244.0 -} \ No newline at end of file From 40d3dbfc37f50b4a5a07cdf36270a6914a86db1c Mon Sep 17 00:00:00 2001 From: Graeme <107113942+ym1906@users.noreply.github.com> Date: Mon, 23 Sep 2024 10:50:16 +0100 Subject: [PATCH 11/11] Delete prep_sol_for_uq.ipynb File not needed --- prep_sol_for_uq.ipynb | 485 ------------------------------------------ 1 file changed, 485 deletions(-) delete mode 100644 prep_sol_for_uq.ipynb diff --git a/prep_sol_for_uq.ipynb b/prep_sol_for_uq.ipynb deleted file mode 100644 index 57c7ddd658..0000000000 --- a/prep_sol_for_uq.ipynb +++ /dev/null @@ -1,485 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Prepare Process Solution for UQ\n", - "\n", - "Convert IN.DAT to inequality problem then run it. Take the solution vector from the MFILE.DAT and copy it back into the original inequality IN.DAT, but make it a \"once-through\" (non-optimising) input. This input file is then prepared for UQ at the solution vector." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [], - "source": [ - "from mfile_to_in import convert\n", - "import subprocess" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Convert original input file to inequalities\n", - "\n", - "Take original large tokamak IN.DAT (`lt_orig_IN.DAT`). Convert it to an inequalities input file (`lt_IN.DAT`), maintaining any f-value initialisations.\n", - "\n", - "This isn't required if input file is already an inequalities file." - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "original_in_name = \"/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_IN.DAT\"\n", - "ineqs_in_name = \"/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_IN.DAT\"" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Keeping f-value initialisation for fracture_toughness = 150.0\n", - "Removing f-value initialisation for fbetatry = 0.45845305287829197\n", - "Keeping f-value initialisation for fdene = 1.2\n", - "Removing f-value initialisation for ffuspow = 1\n", - "Removing f-value initialisation for fiooic = 0.733862251259087\n", - "Removing f-value initialisation for fjohc = 0.6154408322072109\n", - "Removing f-value initialisation for fjohc0 = 0.5681989768281468\n", - "Removing f-value initialisation for fjprot = 1.0\n", - "Keeping f-value initialisation for flhthresh = 1.4999999999999998\n", - "Removing f-value initialisation for fncycle = 1.0\n", - "Removing f-value initialisation for foh_stress = 0.5470684327421722\n", - "Removing f-value initialisation for fpeakb = 1.0\n", - "Removing f-value initialisation for fpinj = 1.0\n", - "Removing f-value initialisation for fpnetel = 1.0\n", - "Removing f-value initialisation for fpsepbqar = 0.8747519334818635\n", - "Removing f-value initialisation for fstrcase = 1.0\n", - "Removing f-value initialisation for fstrcond = 0.7987626453167929\n", - "Removing f-value initialisation for fmaxvvstress = 0.31721023709510027\n", - "Removing f-value initialisation for ftburn = 1.0\n", - "Removing f-value initialisation for ftmargoh = 1.0\n", - "Removing f-value initialisation for ftmargtf = 1.0\n", - "Removing f-value initialisation for fvdump = 1.0\n", - "Removing f-value initialisation for fwalld = 0.13500089604305868\n", - "Removing f-value initialisation for ftaulimit = 0.8924182657580688\n", - "Keeping f-value initialisation for fcap0 = 1.15\n", - "Keeping f-value initialisation for fcap0cp = 1.06\n", - "Removing f-value initialisation for fcr0 = 0.065\n", - "Removing f-value initialisation for fcuohsu = 0.70\n", - "Keeping f-value initialisation for fkzohm = 1.0245\n", - "Removing f-value initialisation for fne0 = 0.5963799216271634\n", - "f-values removed as optimisation parameters = 20\n", - "f-value initialisations removed = 24\n" - ] - }, - { - "data": { - "text/plain": [ - "'/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_IN.DAT'" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "convert(\n", - " original_in_name=original_in_name,\n", - " new_in_name=ineqs_in_name,\n", - " no_optimisation=False,\n", - " n_equalities=3,\n", - " remove_f_value_inits=True, # this might want to be the default\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now run with VMCON. Result is inequality-solved solution." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The IN.DAT file does not contain any obsolete variables.\n", - " \n", - " **************************************************************************************************************\n", - " ************************************************** PROCESS ***************************************************\n", - " ************************************** Power Reactor Optimisation Code ***************************************\n", - " **************************************************************************************************************\n", - " \n", - " Program :\n", - " Version : 3.1.0 Release Date :: 2024-03-21\n", - " Tag No. : v3.1.0-139-g627861e code contains untracked changes\n", - " Warning in routine OCMMNT :\n", - " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", - "This is longer than 110 columns.\n", - " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", - " Git log : Don|t allow MFile comparison with an error3 MFile ([hash]3179)\n", - " Date/time : 9 Sep 2024 20:49:00 +01:00(hh:mm) UTC\n", - " User : graeme\n", - " Computer : graeme\n", - " Directory : /home/graeme/process-gh/process\n", - " Input : /home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_IN.DAT\n", - " Run title : eu-demo 2018 baseline\n", - " Run type : Reactor concept design: Pulsed tokamak model, (c) CCFE\n", - " \n", - " **************************************************************************************************************\n", - " \n", - " Equality constraints : 03\n", - " Inequality constraints : 22\n", - " Total constraints : 25\n", - " Iteration variables : 19\n", - " Max iterations : ***\n", - " Figure of merit : +01 -- minimise major radius\n", - " Convergence parameter : 1.00E-08\n", - " \n", - " **************************************************************************************************************\n", - " Warning in routine OCMMNT :\n", - " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", - "This is longer than 110 columns.\n", - "78 | Convergence Parameter: 1.022E+00\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/graeme/process-gh/process/process/sctfcoil.py:3471: RuntimeWarning: invalid value encountered in sqrt\n", - " sctfcoil_module.t_cable = numpy.sqrt(\n", - "process.sctfcoil - WARNING - Negative Iop/Icrit for TF coil\n", - " jsc: -625108623.6248327\n", - " iooic: -0.24467635364401158\n", - " j_crit_sc: 2554838725.994445\n", - " Check conductor dimensions. Cable space area acs likely gone negative. acs: -0.0005508737513930539\n", - " This is likely because t_cable_radial or t_cable_toroidal has gone negative:\n", - " t_cable_radial: -0.004791908399383562\n", - " t_cable_toroidal: 0.10815747369277497\n", - " \n", - "Traceback (most recent call last):\n", - " File \"/home/graeme/process-gh/process/venvprocess/bin/process\", line 33, in \n", - " sys.exit(load_entry_point('process', 'console_scripts', 'process')())\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 652, in main\n", - " Process(args)\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 126, in __init__\n", - " self.run_mode()\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 203, in run_mode\n", - " self.run.run()\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 361, in run\n", - " self.run_scan(self.solver)\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 464, in run_scan\n", - " self.scan = Scan(self.models, solver)\n", - " File \"/home/graeme/process-gh/process/process/scan.py\", line 22, in __init__\n", - " self.run_scan()\n", - " File \"/home/graeme/process-gh/process/process/scan.py\", line 36, in run_scan\n", - " ifail = self.doopt()\n", - " File \"/home/graeme/process-gh/process/process/scan.py\", line 57, in doopt\n", - " ifail = self.optimiser.run()\n", - " File \"/home/graeme/process-gh/process/process/optimiser.py\", line 54, in run\n", - " ifail = self.solver.solve()\n", - " File \"/home/graeme/process-gh/process/process/solver.py\", line 213, in solve\n", - " x, _, _, res = solve(\n", - " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/pyvmcon/vmcon.py\", line 179, in solve\n", - " alpha, mu_equality, mu_inequality, new_result = perform_linesearch(\n", - " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/pyvmcon/vmcon.py\", line 390, in perform_linesearch\n", - " result_at_1 = problem(x_jm1 + delta)\n", - " File \"/home/graeme/process-gh/process/process/solver.py\", line 132, in __call__\n", - " objf, conf = self._evaluator.fcnvmc1(n, self.total_constraints, x, 0)\n", - " File \"/home/graeme/process-gh/process/process/evaluators.py\", line 53, in fcnvmc1\n", - " objf, conf = self.caller.call_models(xv, m)\n", - " File \"/home/graeme/process-gh/process/process/caller.py\", line 65, in call_models\n", - " self._call_models_once(xc)\n", - " File \"/home/graeme/process-gh/process/process/caller.py\", line 226, in _call_models_once\n", - " self.models.sctfcoil.run(output=False)\n", - " File \"/home/graeme/process-gh/process/process/sctfcoil.py\", line 66, in run\n", - " ) = self.supercon(\n", - " File \"/home/graeme/process-gh/process/process/sctfcoil.py\", line 862, in supercon\n", - " t_zero_margin, root_result = optimize.newton(\n", - " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/scipy/optimize/_zeros_py.py\", line 391, in newton\n", - " raise RuntimeError(msg)\n", - "RuntimeError: Failed to converge after 50 iterations, value is 12.353664475222791.\n" - ] - }, - { - "data": { - "text/plain": [ - "CompletedProcess(args=['process', '-i', '/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_IN.DAT'], returncode=1)" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "subprocess.run([\"process\", \"-i\", ineqs_in_name])" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "rm: cannot remove '*SIG_TF.json': No such file or directory\n", - "rm: cannot remove '*OUT.DAT': No such file or directory\n" - ] - }, - { - "data": { - "text/plain": [ - "CompletedProcess(args='rm *SIG_TF.json *OUT.DAT', returncode=1)" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Remove unwanted outputs\n", - "subprocess.run(\"rm *SIG_TF.json *OUT.DAT\", shell=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Create once-through input file from solution point for UQ studies\n", - "\n", - "Use the solution vector to create a once-through (non-optimising) input file for UQ studies." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "Key 'nvar' not in MFILE. KeyError! Check MFILE\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Optimisation parameter f-values ignored = 0\n", - "f-values removed as optimisation parameters = 0\n" - ] - }, - { - "data": { - "text/plain": [ - "PosixPath('/home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_sol_IN.DAT')" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "input_name_stem = ineqs_in_name.split(\"_IN.DAT\")[0]\n", - "mfile_name = input_name_stem + \"_MFILE.DAT\"\n", - "sol_in_name = input_name_stem + \"_sol_IN.DAT\"\n", - "\n", - "convert(\n", - " original_in_name=ineqs_in_name,\n", - " mfile_name=mfile_name,\n", - " new_in_name=sol_in_name,\n", - " no_optimisation=True,\n", - " n_equalities=3,\n", - " remove_f_value_inits=False,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Optionally run the solution vector once-through IN.DAT." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "The IN.DAT file does not contain any obsolete variables.\n", - " \n", - " **************************************************************************************************************\n", - " ************************************************** PROCESS ***************************************************\n", - " ************************************** Power Reactor Optimisation Code ***************************************\n", - " **************************************************************************************************************\n", - " \n", - " Program :\n", - " Version : 3.1.0 Release Date :: 2024-03-21\n", - " Tag No. : v3.1.0-139-g627861e code contains untracked changes\n", - " Warning in routine OCMMNT :\n", - " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", - "This is longer than 110 columns.\n", - " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", - " Git log : Don|t allow MFile comparison with an error3 MFile ([hash]3179)\n", - " Date/time : 10 Sep 2024 8:01:36 +01:00(hh:mm) UTC\n", - " User : graeme\n", - " Computer : graeme\n", - " Directory : /home/graeme/process-gh/process\n", - " Input : /home/graeme/easyVVUQ-process/all_demo_analysis/demo_analysis_5/clean_demo_2023_iqns_sol_IN.DAT\n", - " Run title : eu-demo 2018 baseline\n", - " Run type : Reactor concept design: Pulsed tokamak model, (c) CCFE\n", - " \n", - " **************************************************************************************************************\n", - " \n", - " Equality constraints : 03\n", - " Inequality constraints : 22\n", - " Total constraints : 25\n", - " Iteration variables : 19\n", - " Max iterations : ***\n", - " Figure of merit : +01 -- minimise major radius\n", - " Convergence parameter : 1.00E-08\n", - " \n", - " **************************************************************************************************************\n", - " Warning in routine OCMMNT :\n", - " Branch : 1821-pythonise-bootstrap_fraction_sauter-function-in-physicsf90-and-integrate-refactored-plasmaprofiles-with-it\n", - "This is longer than 110 columns.\n", - "78 | Convergence Parameter: 1.022E+00\r" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/home/graeme/process-gh/process/process/sctfcoil.py:3471: RuntimeWarning: invalid value encountered in sqrt\n", - " sctfcoil_module.t_cable = numpy.sqrt(\n", - "process.sctfcoil - WARNING - Negative Iop/Icrit for TF coil\n", - " jsc: -625108623.6248327\n", - " iooic: -0.24467635364401158\n", - " j_crit_sc: 2554838725.994445\n", - " Check conductor dimensions. Cable space area acs likely gone negative. acs: -0.0005508737513930539\n", - " This is likely because t_cable_radial or t_cable_toroidal has gone negative:\n", - " t_cable_radial: -0.004791908399383562\n", - " t_cable_toroidal: 0.10815747369277497\n", - " \n", - "Traceback (most recent call last):\n", - " File \"/home/graeme/process-gh/process/venvprocess/bin/process\", line 33, in \n", - " sys.exit(load_entry_point('process', 'console_scripts', 'process')())\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 652, in main\n", - " Process(args)\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 126, in __init__\n", - " self.run_mode()\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 203, in run_mode\n", - " self.run.run()\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 361, in run\n", - " self.run_scan(self.solver)\n", - " File \"/home/graeme/process-gh/process/process/main.py\", line 464, in run_scan\n", - " self.scan = Scan(self.models, solver)\n", - " File \"/home/graeme/process-gh/process/process/scan.py\", line 22, in __init__\n", - " self.run_scan()\n", - " File \"/home/graeme/process-gh/process/process/scan.py\", line 36, in run_scan\n", - " ifail = self.doopt()\n", - " File \"/home/graeme/process-gh/process/process/scan.py\", line 57, in doopt\n", - " ifail = self.optimiser.run()\n", - " File \"/home/graeme/process-gh/process/process/optimiser.py\", line 54, in run\n", - " ifail = self.solver.solve()\n", - " File \"/home/graeme/process-gh/process/process/solver.py\", line 213, in solve\n", - " x, _, _, res = solve(\n", - " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/pyvmcon/vmcon.py\", line 179, in solve\n", - " alpha, mu_equality, mu_inequality, new_result = perform_linesearch(\n", - " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/pyvmcon/vmcon.py\", line 390, in perform_linesearch\n", - " result_at_1 = problem(x_jm1 + delta)\n", - " File \"/home/graeme/process-gh/process/process/solver.py\", line 132, in __call__\n", - " objf, conf = self._evaluator.fcnvmc1(n, self.total_constraints, x, 0)\n", - " File \"/home/graeme/process-gh/process/process/evaluators.py\", line 53, in fcnvmc1\n", - " objf, conf = self.caller.call_models(xv, m)\n", - " File \"/home/graeme/process-gh/process/process/caller.py\", line 65, in call_models\n", - " self._call_models_once(xc)\n", - " File \"/home/graeme/process-gh/process/process/caller.py\", line 226, in _call_models_once\n", - " self.models.sctfcoil.run(output=False)\n", - " File \"/home/graeme/process-gh/process/process/sctfcoil.py\", line 66, in run\n", - " ) = self.supercon(\n", - " File \"/home/graeme/process-gh/process/process/sctfcoil.py\", line 862, in supercon\n", - " t_zero_margin, root_result = optimize.newton(\n", - " File \"/home/graeme/process-gh/process/venvprocess/lib/python3.10/site-packages/scipy/optimize/_zeros_py.py\", line 391, in newton\n", - " raise RuntimeError(msg)\n", - "RuntimeError: Failed to converge after 50 iterations, value is 12.353664475222791.\n", - "rm: cannot remove '*SIG_TF.json': No such file or directory\n", - "rm: cannot remove '*OUT.DAT': No such file or directory\n" - ] - }, - { - "data": { - "text/plain": [ - "CompletedProcess(args='rm *SIG_TF.json *OUT.DAT', returncode=1)" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "subprocess.run([\"process\", \"-i\", sol_in_name])\n", - "# Remove unwanted outputs\n", - "subprocess.run(\"rm *SIG_TF.json *OUT.DAT\", shell=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Could extend to convert solution IN.DAT to template for UQ." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "easyVVUQ-process", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.14" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -}