Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions process/core/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@
)
from process.data_structure.tfcoil_variables import init_tfcoil_variables
from process.data_structure.times_variables import init_times_variables
from process.data_structure.vacuum_variables import init_vacuum_variables
from process.models.stellarator.initialization import st_init
from process.models.superconductors import (
SuperconductorMaterial,
Expand All @@ -71,7 +70,7 @@
from process.core.model import DataStructure


def init_process(data_structure: DataStructure):
def init_process(data: DataStructure):
"""Routine that calls the initialisation routines

This routine calls the main initialisation routines that set
Expand All @@ -85,7 +84,7 @@ def init_process(data_structure: DataStructure):
process_output.OutputFileManager.open_files()

# Input any desired new initial values
inputs = parse_input_file(data_structure)
inputs = parse_input_file(data)

# Set active constraints
set_active_constraints()
Expand All @@ -97,7 +96,7 @@ def init_process(data_structure: DataStructure):
st_init()

# Check input data for errors/ambiguities
check_process(inputs)
check_process(inputs, data)

run_summary()

Expand Down Expand Up @@ -291,7 +290,6 @@ def init_all_module_vars():
init_primary_pumping_variables()
init_pfcoil_variables()
init_structure_variables()
init_vacuum_variables()
init_pf_power_variables()
init_build_variables()
init_constraint_variables()
Expand All @@ -304,7 +302,7 @@ def init_all_module_vars():
init_neoclassics_variables()


def check_process(inputs): # noqa: ARG001
def check_process(inputs, data): # noqa: ARG001
"""Routine to reset specific variables if certain options are
being used

Expand Down Expand Up @@ -380,7 +378,7 @@ def check_process(inputs): # noqa: ARG001
: data_structure.numerics.neqns + data_structure.numerics.nineqns
]
== 63
).any() and data_structure.vacuum_variables.i_vacuum_pumping != "simple":
).any() and data.vacuum.i_vacuum_pumping != "simple":
raise ProcessValidationError(
"Constraint 63 is requested without the correct vacuum model (simple)"
)
Expand Down
52 changes: 14 additions & 38 deletions process/core/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -958,7 +958,7 @@ def __post_init__(self):
data_structure.physics_variables, float, range=(0.0, 10.0)
),
"pres_vv_chamber_dwell_start": InputVariable(
data_structure.vacuum_variables, float, range=(1e-06, 10000.0)
"vacuum", float, range=(1e-06, 10000.0)
),
"temp_blkt_coolant_in": InputVariable(
data_structure.fwbs_variables, float, range=(200.0, 600.0)
Expand Down Expand Up @@ -1090,12 +1090,8 @@ def __post_init__(self):
"f_z_cs_tf_internal": InputVariable(
data_structure.pfcoil_variables, float, range=(0.0, 2.0)
),
"outgasfactor": InputVariable(
data_structure.vacuum_variables, float, range=(1e-06, 1000.0)
),
"outgasindex": InputVariable(
data_structure.vacuum_variables, float, range=(1e-06, 1000.0)
),
"outgasfactor": InputVariable("vacuum", float, range=(1e-06, 1000.0)),
"outgasindex": InputVariable("vacuum", float, range=(1e-06, 1000.0)),
"temp_blkt_coolant_out": InputVariable(
data_structure.fwbs_variables, float, range=(450.0, 900.0)
),
Expand All @@ -1107,9 +1103,7 @@ def __post_init__(self):
),
"paris_coefficient": InputVariable("cs_fatigue", float, range=(1e-20, 10.0)),
"paris_power_law": InputVariable("cs_fatigue", float, range=(1.0, 10.0)),
"pres_vv_chamber_base": InputVariable(
data_structure.vacuum_variables, float, range=(1e-08, 0.001)
),
"pres_vv_chamber_base": InputVariable("vacuum", float, range=(1e-08, 0.001)),
"p_plasma_separatrix_min_mw": InputVariable(
data_structure.constraint_variables, float, range=(0.1, 1000.0)
),
Expand Down Expand Up @@ -1167,9 +1161,7 @@ def __post_init__(self):
"p_fusion_total_max_mw": InputVariable(
data_structure.constraint_variables, float, range=(1.0, 10000.0)
),
"pres_div_chamber_burn": InputVariable(
data_structure.vacuum_variables, float, range=(0.0, 10.0)
),
"pres_div_chamber_burn": InputVariable("vacuum", float, range=(0.0, 10.0)),
"pres_fw_coolant": InputVariable(
data_structure.fwbs_variables, float, range=(100000.0, 100000000.0)
),
Expand All @@ -1191,17 +1183,11 @@ def __post_init__(self):
data_structure.times_variables, float, range=(0.0, 1.0)
),
"f_a_vac_pump_port_plasma_surface": InputVariable(
data_structure.vacuum_variables, float, range=(1e-06, 1.0)
),
"f_volflow_vac_pumps_impedance": InputVariable(
data_structure.vacuum_variables, float, range=(1e-06, 1.0)
),
"volflow_vac_pumps_max": InputVariable(
data_structure.vacuum_variables, float, range=(1e-06, 1000.0)
),
"molflow_vac_pumps": InputVariable(
data_structure.vacuum_variables, float, range=(0.0, 1e30)
"vacuum", float, range=(1e-06, 1.0)
),
"f_volflow_vac_pumps_impedance": InputVariable("vacuum", float, range=(1e-06, 1.0)),
"volflow_vac_pumps_max": InputVariable("vacuum", float, range=(1e-06, 1000.0)),
"molflow_vac_pumps": InputVariable("vacuum", float, range=(0.0, 1e30)),
"pflux_plant_floor_electric": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 1000.0)
),
Expand All @@ -1223,9 +1209,7 @@ def __post_init__(self):
"radius_fw_channel": InputVariable(
data_structure.fwbs_variables, float, range=(0.001, 0.5)
),
"outgrat_fw": InputVariable(
data_structure.vacuum_variables, float, range=(1e-10, 1e-06)
),
"outgrat_fw": InputVariable("vacuum", float, range=(1e-10, 1e-06)),
"rbrt": InputVariable(data_structure.buildings_variables, float, range=(0.0, 10.0)),
"rbvfac": InputVariable(data_structure.buildings_variables, float, range=(0.9, 3.0)),
"rbwt": InputVariable(data_structure.buildings_variables, float, range=(0.0, 10.0)),
Expand Down Expand Up @@ -1552,9 +1536,7 @@ def __post_init__(self):
"temp_tf_cryo": InputVariable(
data_structure.tfcoil_variables, float, range=(0.01, 293.0)
),
"temp_vv_chamber_gas_burn_end": InputVariable(
data_structure.vacuum_variables, float, range=(1.0, 1000.0)
),
"temp_vv_chamber_gas_burn_end": InputVariable("vacuum", float, range=(1.0, 1000.0)),
"i_t_current_ramp_up": InputVariable(
data_structure.times_variables, int, choices=[0, 1]
),
Expand Down Expand Up @@ -1786,9 +1768,7 @@ def __post_init__(self):
data_structure.rebco_variables, float, range=(1.0e6, 1.0e10)
),
"cost_model": InputVariable(data_structure.cost_variables, int, choices=[0, 1, 2]),
"i_vac_pump_dwell": InputVariable(
data_structure.vacuum_variables, int, choices=[0, 1, 2]
),
"i_vac_pump_dwell": InputVariable("vacuum", int, choices=[0, 1, 2]),
"i_fw_blkt_vv_shape": InputVariable(
data_structure.fwbs_variables, int, range=(1, 2)
),
Expand Down Expand Up @@ -1993,9 +1973,7 @@ def __post_init__(self):
"npdiv": InputVariable(data_structure.fwbs_variables, int, range=(0, 4)),
"nphcdin": InputVariable(data_structure.fwbs_variables, int, range=(0, 4)),
"nphcdout": InputVariable(data_structure.fwbs_variables, int, range=(0, 4)),
"i_vacuum_pump_type": InputVariable(
data_structure.vacuum_variables, int, choices=[0, 1]
),
"i_vacuum_pump_type": InputVariable("vacuum", int, choices=[0, 1]),
"num_rh_systems": InputVariable(data_structure.cost_variables, int, range=(1, 10)),
"output_costs": InputVariable(data_structure.cost_variables, int, choices=[0, 1]),
"i_p_coolant_pumping": InputVariable(
Expand Down Expand Up @@ -2027,9 +2005,7 @@ def __post_init__(self):
"i_fw_coolant_type": InputVariable(
data_structure.fwbs_variables, str, choices=["helium", "water"]
),
"i_vacuum_pumping": InputVariable(
data_structure.vacuum_variables, str, choices=["old", "simple"]
),
"i_vacuum_pumping": InputVariable("vacuum", str, choices=["old", "simple"]),
"dcond": InputVariable(data_structure.tfcoil_variables, float, array=True),
"c_pf_coil_turn_peak_input": InputVariable(
data_structure.pfcoil_variables, float, array=True
Expand Down
4 changes: 3 additions & 1 deletion process/core/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from process.data_structure.cost_2015_variables import Cost2015Data
from process.data_structure.cs_fatigue_variables import CSFatigueData
from process.data_structure.vacuum_variables import VacuumData
from process.data_structure.water_usage_variables import WaterUseData

initialise_later = object()
Expand All @@ -13,6 +14,7 @@ class DataStructure:
water_use: WaterUseData = initialise_later
costs_2015: Cost2015Data = initialise_later
cs_fatigue: CSFatigueData = initialise_later
vacuum: VacuumData = initialise_later

def __post_init__(self):
for f in fields(self):
Expand All @@ -27,7 +29,7 @@ class Model(abc.ABC):
def run(self) -> None:
"""Run the model.

The run method is resposible for 'running' the model, ensuring it updates the data
The run method is responsible for 'running' the model, ensuring it updates the data
structure with variables that subsequent models will require.
"""

Expand Down
4 changes: 2 additions & 2 deletions process/core/solver/constraints.py
Original file line number Diff line number Diff line change
Expand Up @@ -1345,14 +1345,14 @@ def constraint_equation_62(constraint_registration, _data):


@ConstraintManager.register_constraint(63, "", "<=")
def constraint_equation_63(constraint_registration, _data):
def constraint_equation_63(constraint_registration, data):
"""Upper limit on n_iter_vacuum_pumps (i_vacuum_pumping = simple)

tfno: number of TF coils (default = 50 for stellarators)
n_iter_vacuum_pumps: number of high vacuum pumps (real number), each with the throughput
"""
return leq(
data_structure.vacuum_variables.n_iter_vacuum_pumps,
data.vacuum.n_iter_vacuum_pumps,
data_structure.tfcoil_variables.n_tf_coils,
constraint_registration,
)
Expand Down
Loading
Loading