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
6 changes: 1 addition & 5 deletions process/core/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@
from process.core.solver import iteration_variables
from process.core.solver.constraints import ConstraintManager
from process.data_structure.divertor_variables import init_divertor_variables
from process.data_structure.heat_transport_variables import (
init_heat_transport_variables,
)
from process.data_structure.ife_variables import init_ife_variables
from process.data_structure.impurity_radiation_module import (
init_impurity_radiation_module,
Expand Down Expand Up @@ -255,7 +252,6 @@ def init_all_module_vars():
data_structure.numerics.init_numerics()
init_divertor_variables()
data_structure.global_variables.init_global_variables()
init_heat_transport_variables()
init_ife_variables()
init_impurity_radiation_module()
init_pfcoil_module()
Expand Down Expand Up @@ -375,7 +371,7 @@ def check_process(inputs, data): # noqa: ARG001
data_structure.physics_variables.f_plasma_fuel_tritium < 1.0e-3
): # tritium fraction is negligible
data.buildings.triv = 0.0
data_structure.heat_transport_variables.p_tritium_plant_electric_mw = 0.0
data.heat_transport.p_tritium_plant_electric_mw = 0.0

if data_structure.impurity_radiation_module.f_nd_impurity_electrons[1] != 0.1: # noqa: RUF069
raise ProcessValidationError(
Expand Down
52 changes: 18 additions & 34 deletions process/core/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ def __post_init__(self):
data_structure.tfcoil_variables, float, range=(0.0, 30.0)
),
"p_plant_electric_base": InputVariable(
data_structure.heat_transport_variables, float, range=(1000000.0, 10000000000.0)
"heat_transport", float, range=(1000000.0, 10000000000.0)
),
"bcritsc": InputVariable(data_structure.tfcoil_variables, float, range=(10.0, 50.0)),
"bctmp": InputVariable("pulse", float, range=(1.0, 800.0)),
Expand Down Expand Up @@ -340,7 +340,7 @@ def __post_init__(self):
"cryostore_l": InputVariable("buildings", float, range=(10.0, 1000.0)),
"cryostore_w": InputVariable("buildings", float, range=(10.0, 1000.0)),
"p_cryo_plant_electric_max_mw": InputVariable(
data_structure.heat_transport_variables, float, range=(0.01, 200.0)
"heat_transport", float, range=(0.01, 200.0)
),
"csi": InputVariable("costs", float, range=(1.0, 100.0)),
"cturbb": InputVariable("costs", float, range=(100.0, 1000.0)),
Expand Down Expand Up @@ -461,12 +461,8 @@ def __post_init__(self):
),
"etapsu": InputVariable(data_structure.pfcoil_variables, float, range=(0.0, 1.0)),
"etapump": InputVariable(data_structure.tfcoil_variables, float, range=(0.0, 1.0)),
"etatf": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 1.0)
),
"eta_turbine": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 1.0)
),
"etatf": InputVariable("heat_transport", float, range=(0.0, 1.0)),
"eta_turbine": InputVariable("heat_transport", float, range=(0.0, 1.0)),
"eyoung_al": InputVariable(data_structure.tfcoil_variables, float, range=(0.0, 1.0)),
"eyoung_cond_axial": InputVariable(
data_structure.tfcoil_variables, float, range=(0.0, 10000000000000.0)
Expand Down Expand Up @@ -578,22 +574,20 @@ def __post_init__(self):
"f_div_flux_expansion": InputVariable(
data_structure.divertor_variables, float, range=(0.0, 10.0)
),
"fmgdmw": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 100.0)
),
"fmgdmw": InputVariable("heat_transport", float, range=(0.0, 100.0)),
"fndt": InputVariable("buildings", float, range=(0.0, 10.0)),
"f_p_beam_orbit_loss": InputVariable("current_drive", float, range=(0.0, 0.999)),
"f_p_blkt_coolant_pump_total_heat": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 0.2)
"heat_transport", float, range=(0.0, 0.2)
),
"f_p_div_coolant_pump_total_heat": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 0.2)
"heat_transport", float, range=(0.0, 0.2)
),
"f_p_fw_coolant_pump_total_heat": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 0.2)
"heat_transport", float, range=(0.0, 0.2)
),
"f_p_shld_coolant_pump_total_heat": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 0.2)
"heat_transport", float, range=(0.0, 0.2)
),
"fracture_toughness": InputVariable("cs_fatigue", float, range=(0.1, 100000000.0)),
"fradpwr": InputVariable("constraints", float, range=(0.0, 1.0)),
Expand Down Expand Up @@ -652,17 +646,13 @@ def __post_init__(self):
"hot_sepdist": InputVariable("buildings", float, range=(0.0, 10.0)),
"hotcell_h": InputVariable("buildings", float, range=(1.0, 100.0)),
"p_blkt_coolant_pump_mw": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 1000.0)
),
"p_div_coolant_pump_mw": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 1000.0)
),
"p_fw_coolant_pump_mw": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 1000.0)
"heat_transport", float, range=(0.0, 1000.0)
),
"p_div_coolant_pump_mw": InputVariable("heat_transport", float, range=(0.0, 1000.0)),
"p_fw_coolant_pump_mw": InputVariable("heat_transport", float, range=(0.0, 1000.0)),
"htpmw_ife": InputVariable(data_structure.ife_variables, float, range=(0.0, 1000.0)),
"p_shld_coolant_pump_mw": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 1000.0)
"heat_transport", float, range=(0.0, 1000.0)
),
"hw_storage_h": InputVariable("buildings", float, range=(1.0, 100.0)),
"hw_storage_l": InputVariable("buildings", float, range=(10.0, 1000.0)),
Expand Down Expand Up @@ -834,7 +824,7 @@ def __post_init__(self):
"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)
"heat_transport", float, range=(0.0, 1000.0)
),
"q0": InputVariable(data_structure.physics_variables, float, range=(0.01, 20.0)),
"q95": InputVariable(data_structure.physics_variables, float, range=(1.0, 50.0)),
Expand Down Expand Up @@ -1105,7 +1095,7 @@ def __post_init__(self):
"triang": InputVariable(data_structure.physics_variables, float, range=(-1.0, 1.0)),
"triang95": InputVariable(data_structure.physics_variables, float, range=(0.0, 1.0)),
"p_tritium_plant_electric_mw": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 100.0)
"heat_transport", float, range=(0.0, 100.0)
),
"triv": InputVariable("buildings", float, range=(10000.0, 1000000.0)),
"turbine_hall_h": InputVariable("buildings", float, range=(1.0, 100.0)),
Expand Down Expand Up @@ -1178,9 +1168,7 @@ def __post_init__(self):
"v3dr": InputVariable(data_structure.ife_variables, float, range=(0.0, 50.0)),
"v3dzl": InputVariable(data_structure.ife_variables, float, range=(0.0, 30.0)),
"v3dzu": InputVariable(data_structure.ife_variables, float, range=(0.0, 30.0)),
"vachtmw": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 100.0)
),
"vachtmw": InputVariable("heat_transport", float, range=(0.0, 100.0)),
"vel_cp_coolant_midplane": InputVariable(
data_structure.tfcoil_variables, float, range=(0.001, 100.0)
),
Expand Down Expand Up @@ -1344,12 +1332,8 @@ def __post_init__(self):
data_structure.pfcoil_variables, int, choices=[0, 1]
),
"ipnet": InputVariable("costs", int, choices=[0, 1]),
"ipowerflow": InputVariable(
data_structure.heat_transport_variables, int, choices=[0, 1]
),
"i_shld_primary_heat": InputVariable(
data_structure.heat_transport_variables, int, choices=[0, 1]
),
"ipowerflow": InputVariable("heat_transport", int, choices=[0, 1]),
"i_shld_primary_heat": InputVariable("heat_transport", int, choices=[0, 1]),
"i_beta_norm_max": InputVariable(
data_structure.physics_variables, int, range=(0, 5)
),
Expand Down
2 changes: 2 additions & 0 deletions process/core/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
from process.data_structure.dcll_variables import DCLLData
from process.data_structure.first_wall_variables import FirstWallData
from process.data_structure.fwbs_variables import FWBSData
from process.data_structure.heat_transport_variables import HeatTransportData
from process.data_structure.primary_pumping_variables import PrimaryPumpingData
from process.data_structure.pulse_variables import PulseData
from process.data_structure.reinke_variables import ReinkeData
Expand Down Expand Up @@ -45,6 +46,7 @@ class DataStructure:
constraints: ConstraintData = initialise_later
dcll: DCLLData = initialise_later
current_drive: CurrentDriveData = initialise_later
heat_transport: HeatTransportData = initialise_later

def __post_init__(self):
for f in fields(self):
Expand Down
5 changes: 2 additions & 3 deletions process/core/scan.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
from process.data_structure import (
divertor_variables,
global_variables,
heat_transport_variables,
impurity_radiation_module,
numerics,
pfcoil_variables,
Expand Down Expand Up @@ -1166,7 +1165,7 @@ def scan_select(self, nwp, swp, iscn):
case 55:
self.data.build.dr_shld_inboard = swp[iscn - 1]
case 56:
heat_transport_variables.p_cryo_plant_electric_max_mw = swp[iscn - 1]
self.data.heat_transport.p_cryo_plant_electric_max_mw = swp[iscn - 1]
case 57:
numerics.boundl[1] = swp[iscn - 1]
case 58:
Expand Down Expand Up @@ -1206,7 +1205,7 @@ def scan_select(self, nwp, swp, iscn):
case 75:
self.data.fwbs.dx_fw_module = swp[iscn - 1]
case 76:
heat_transport_variables.eta_turbine = swp[iscn - 1]
self.data.heat_transport.eta_turbine = swp[iscn - 1]
case 77:
self.data.costs.startupratio = swp[iscn - 1]
case 78:
Expand Down
8 changes: 4 additions & 4 deletions process/core/solver/constraints.py
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,7 @@ def constraint_equation_16(constraint_registration, data):
p_plant_electric_net_required_mw: required net electric power (MW)
"""
return geq(
data_structure.heat_transport_variables.p_plant_electric_net_mw,
data.heat_transport.p_plant_electric_net_mw,
data.constraints.p_plant_electric_net_required_mw,
constraint_registration,
)
Expand Down Expand Up @@ -1757,15 +1757,15 @@ def constraint_equation_86(constraint_registration, _data):


@ConstraintManager.register_constraint(87, "MW", "<=")
def constraint_equation_87(constraint_registration, _data):
def constraint_equation_87(constraint_registration, data):
"""Equation for TF coil cryogenic power upper limit

p_cryo_plant_electric_mw: cryogenic plant power (MW)
p_cryo_plant_electric_max_mw: Maximum cryogenic plant power (MW)
"""
return leq(
data_structure.heat_transport_variables.p_cryo_plant_electric_mw,
data_structure.heat_transport_variables.p_cryo_plant_electric_max_mw,
data.heat_transport.p_cryo_plant_electric_mw,
data.heat_transport.p_cryo_plant_electric_max_mw,
constraint_registration,
)

Expand Down
3 changes: 1 addition & 2 deletions process/core/solver/objectives.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
from process.core.model import DataStructure
from process.data_structure import (
divertor_variables,
heat_transport_variables,
pf_power_variables,
physics_variables,
tfcoil_variables,
Expand Down Expand Up @@ -107,7 +106,7 @@ def objective_function(minmax: int, data: DataStructure) -> float:
data.times.t_plant_pulse_burn / 7200.0
)
case 17:
objective_metric = heat_transport_variables.p_plant_electric_net_mw / 500.0
objective_metric = data.heat_transport.p_plant_electric_net_mw / 500.0
case 18:
objective_metric = 1.0
case 19:
Expand Down
Loading
Loading