Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
5a0fece
🔄 Rename `bldgs_sizes` to `calculate_building_sizes_chapman`
chris-ashe Mar 24, 2026
cec4366
🔄 Refactor building size calculation method to `calculate_building_si…
chris-ashe Mar 24, 2026
c4c2b6c
Add BuildingsModel enum and update building size calculation logic fo…
chris-ashe Mar 24, 2026
cd2f957
Fix BuildingsModel enum values and update building size calculation r…
chris-ashe Mar 24, 2026
638bba7
🔄 Rename `wsvol` to `vol_plant_warm_shop_building` and update referen…
chris-ashe Mar 24, 2026
f6eea19
🔄 Rename `rmbvol` to `vol_plant_maintenance_assembly_building` and up…
chris-ashe Mar 24, 2026
ba43095
🔄 Rename `elevol` to `vol_plant_electrical_building` and update refer…
chris-ashe Mar 24, 2026
c7d50b5
🔄 Rename `rbvol` to `vol_plant_reactor_building` and update reference…
chris-ashe Mar 24, 2026
1807876
🔄 Rename `volrci` to `vol_plant_reactor_building_internal` and update…
chris-ashe Mar 24, 2026
e4dc10a
🔄 Rename `cryvol` to `vol_plant_cryoplant_building` and update refere…
chris-ashe Mar 24, 2026
f78b733
🔄 Rename `rbwt` to `dx_plant_reactor_building_wall` and update refere…
chris-ashe Mar 24, 2026
5bf9337
🔄 Rename `rbrt` to `dz_plant_reactor_building_roof` and update refere…
chris-ashe Mar 24, 2026
a4a1225
🔄 Rename `tfcbv` to `vol_plant_tf_power_supplies_building` and update…
chris-ashe Mar 24, 2026
1949c1f
🔄 Refactor buildings and power models to improve variable usage and r…
chris-ashe Mar 24, 2026
0ad01c8
🔄 Add `dr_tf_full_midplane` variable to represent full radial thickne…
chris-ashe Mar 24, 2026
9aab25d
Update TF coil calculations to use `dr_tf_full_midplane` for improved…
chris-ashe Mar 24, 2026
aa97174
🔄 Add `dr_tf_internal_midplane` variable and update documentation for…
chris-ashe Mar 24, 2026
4674d2a
Update TF coil calculations to use `dr_tf_internal_midplane` for inte…
chris-ashe Mar 24, 2026
b26e1d2
🔄 Update building size calculations to use new model methods and impr…
chris-ashe Mar 25, 2026
57c5bab
:bug: Temporarily revert logic to allow proper regression testing
chris-ashe Mar 25, 2026
7d4428c
🔄 Refactor TF coil calculations to improve variable naming and enhanc…
chris-ashe Mar 25, 2026
b6e1f9b
🔄 Refactor building size calculations to improve variable naming and …
chris-ashe Mar 25, 2026
f01c77c
🔄 Rename transportation clearance variable to improve clarity and con…
chris-ashe Mar 25, 2026
2534ac5
🔄 Rename distance variable for building wall to improve clarity and c…
chris-ashe Mar 25, 2026
8b426fc
🔄 Rename reactor building crane capacity variable for clarity and con…
chris-ashe Mar 25, 2026
754558e
🔄 Rename tritium building volume variable to improve clarity and cons…
chris-ashe Mar 25, 2026
f3ec162
🔄 Rename nuclear building volume variable for clarity and consistency…
chris-ashe Mar 25, 2026
d4184f2
Refactor variable names for clarity and consistency in buildings and …
chris-ashe Mar 25, 2026
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
2 changes: 1 addition & 1 deletion documentation/source/unique-models/buildings_sizes.md
Original file line number Diff line number Diff line change
Expand Up @@ -141,4 +141,4 @@ Amalgamating multiple individual buildings (and using an average height), this e
## Summary variables

- Effective floor area for AC power module, `a_plant_floor_effective`: total floor area (m2) across all buildings. This estimate attempts to account for multiple floors within buildings by assuming an average storey height of 6m across the site; the volume of all buildings is therefore summed and divided by 6.
- Total volume of nuclear buildings, `volnucb`: sum of all nuclear building (external) volumes.
- Total volume of nuclear buildings, `vol_plant_nuclear_buildings`: sum of all nuclear building (external) volumes.
2 changes: 1 addition & 1 deletion process/core/init.py
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,7 @@ def check_process(inputs): # noqa: ARG001
if (
data_structure.physics_variables.f_plasma_fuel_tritium < 1.0e-3
): # tritium fraction is negligible
data_structure.buildings_variables.triv = 0.0
data_structure.buildings_variables.vol_plant_tritium_fuel_building = 0.0
data_structure.heat_transport_variables.p_tritium_plant_electric_mw = 0.0

if data_structure.impurity_radiation_module.f_nd_impurity_electrons[1] != 0.1:
Expand Down
18 changes: 12 additions & 6 deletions process/core/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -1232,9 +1232,13 @@ def __post_init__(self):
"outgrat_fw": InputVariable(
data_structure.vacuum_variables, float, range=(1e-10, 1e-06)
),
"rbrt": InputVariable(data_structure.buildings_variables, float, range=(0.0, 10.0)),
"dz_plant_reactor_building_roof": 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)),
"dx_plant_reactor_building_wall": InputVariable(
data_structure.buildings_variables, float, range=(0.0, 10.0)
),
"radius_cp_coolant_channel": InputVariable(
data_structure.tfcoil_variables, float, range=(1e-06, 1.0)
),
Expand Down Expand Up @@ -1516,7 +1520,7 @@ def __post_init__(self):
"temp_plasma_separatrix_kev": InputVariable(
data_structure.physics_variables, float, range=(0.0, 20.0)
),
"tfcbv": InputVariable(
"vol_plant_tf_power_supplies_building": InputVariable(
data_structure.buildings_variables, float, range=(10000.0, 1000000.0)
),
"dx_tf_wp_insertion_gap": InputVariable(
Expand Down Expand Up @@ -1586,13 +1590,15 @@ def __post_init__(self):
"f_temp_plasma_ion_electron": InputVariable(
data_structure.physics_variables, float, range=(0.0, 2.0)
),
"trcl": InputVariable(data_structure.buildings_variables, float, range=(0.0, 10.0)),
"dr_plant_reactor_building_transport_clearance": InputVariable(
data_structure.buildings_variables, float, range=(0.0, 10.0)
),
"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)
),
"triv": InputVariable(
"vol_plant_tritium_fuel_building": InputVariable(
data_structure.buildings_variables, float, range=(10000.0, 1000000.0)
),
"turbine_hall_h": InputVariable(
Expand Down Expand Up @@ -1773,7 +1779,7 @@ def __post_init__(self):
"watertemp": InputVariable(
data_structure.water_usage_variables, float, range=(0.0, 25.0)
),
"wgt": InputVariable(
"m_plant_reactor_building_crane_capacity": InputVariable(
data_structure.buildings_variables, float, range=(10000.0, 1000000.0)
),
"wgt2": InputVariable(
Expand Down
4 changes: 2 additions & 2 deletions process/core/io/plot_proc.py
Original file line number Diff line number Diff line change
Expand Up @@ -10147,7 +10147,7 @@ def plot_tf_coil_structure(axis: plt.Axes, mfile: mf.MFile, scan: int, colour_sc
axis.text(
(r_tf_inboard_out + r_tf_outboard_in) / 1.5,
-z_tf_inside_half / 12,
f"{r_tf_outboard_in - r_tf_inboard_in:.3f} m",
f"{mfile.get('dr_tf_internal_midplane', scan=scan):.3f} m",
fontsize=7,
color="black",
verticalalignment="center",
Expand All @@ -10171,7 +10171,7 @@ def plot_tf_coil_structure(axis: plt.Axes, mfile: mf.MFile, scan: int, colour_sc
axis.text(
(r_tf_inboard_out + r_tf_outboard_in) / 1.5,
0.0,
f"{(r_tf_outboard_in + dr_tf_outboard) - r_tf_inboard_in:.3f} m",
f"{mfile.get('dr_tf_full_midplane', scan=scan):.3f} m",
fontsize=7,
color="black",
verticalalignment="center",
Expand Down
84 changes: 42 additions & 42 deletions process/data_structure/buildings_variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@
"""vertical clearance from TF coil to cryostat (m)"""


cryvol: float = None
vol_plant_cryoplant_building: float = None
"""volume of cryoplant building (m3)"""


Expand Down Expand Up @@ -158,7 +158,7 @@
"""Energy Storage facilities height (m)"""


elevol: float = None
vol_plant_electrical_building: float = None
"""volume of electrical equipment building (m3)"""


Expand Down Expand Up @@ -354,15 +354,15 @@
"""reactor building volume multiplication factor"""


rbrt: float = None
dz_plant_reactor_building_roof: float = None
"""reactor building roof thickness (m)"""


rbvol: float = None
vol_plant_reactor_building: float = None
"""reactor building volume (m3)"""


rbwt: float = None
dx_plant_reactor_building_wall: float = None
"""reactor building wall thickness (m)"""


Expand Down Expand Up @@ -394,7 +394,7 @@
"""reactor building wall thickness (m)"""


rmbvol: float = None
vol_plant_maintenance_assembly_building: float = None
"""volume of maintenance and assembly building (m3)"""


Expand Down Expand Up @@ -454,19 +454,19 @@
"""clearance above crane to roof (m)"""


tfcbv: float = None
vol_plant_tf_power_supplies_building: float = None
"""volume of TF coil power supply building (m3) (calculated if TF coils are superconducting)"""


transp_clrnc: float = None
"""transportation clearance between components (m)"""


trcl: float = None
dr_plant_reactor_building_transport_clearance: float = None
"""transportation clearance between components (m)"""


triv: float = None
vol_plant_tritium_fuel_building: float = None
"""volume of tritium, fuel handling and health physics buildings (m3)"""


Expand Down Expand Up @@ -494,11 +494,11 @@
"""tritiated waste storage building height (m)"""


volrci: float = None
vol_plant_reactor_building_internal: float = None
"""internal volume of reactor building (m3)"""


volnucb: float = None
vol_plant_nuclear_buildings: float = None
"""sum of nuclear buildings volumes (m3)"""


Expand Down Expand Up @@ -526,7 +526,7 @@
"""water, laundry & drainage buildings height (m)"""


wgt: float = None
m_plant_reactor_building_crane_capacity: float = None
"""reactor building crane capacity (kg) (calculated if 0 is input)"""


Expand All @@ -546,11 +546,11 @@
"""[cold] workshop buildings height (m)"""


wrbi: float = None
dr_plant_reactor_building_internal_half: float = None
"""distance from centre of machine to building wall (m)"""


wsvol: float = None
vol_plant_warm_shop_building: float = None
"""volume of warm shop building (m3)"""


Expand Down Expand Up @@ -641,7 +641,7 @@ def init_buildings_variables():
cryostore_w, \
cryostore_h, \
cryostat_clrnc, \
cryvol, \
vol_plant_cryoplant_building, \
a_plant_floor_effective, \
elecdist_l, \
elecdist_w, \
Expand All @@ -652,7 +652,7 @@ def init_buildings_variables():
elecstore_l, \
elecstore_w, \
elecstore_h, \
elevol, \
vol_plant_electrical_building, \
esbldgm3, \
fc_building_l, \
fc_building_w, \
Expand Down Expand Up @@ -701,17 +701,17 @@ def init_buildings_variables():
pibv, \
qnty_sfty_fac, \
rbvfac, \
rbrt, \
rbvol, \
rbwt, \
dz_plant_reactor_building_roof, \
vol_plant_reactor_building, \
dx_plant_reactor_building_wall, \
reactor_clrnc, \
reactor_fndtn_thk, \
reactor_hall_l, \
reactor_hall_w, \
reactor_hall_h, \
reactor_roof_thk, \
reactor_wall_thk, \
rmbvol, \
vol_plant_maintenance_assembly_building, \
robotics_l, \
robotics_w, \
robotics_h, \
Expand All @@ -726,31 +726,31 @@ def init_buildings_variables():
staff_buildings_area, \
staff_buildings_h, \
stcl, \
tfcbv, \
vol_plant_tf_power_supplies_building, \
transp_clrnc, \
trcl, \
triv, \
dr_plant_reactor_building_transport_clearance, \
vol_plant_tritium_fuel_building, \
turbine_hall_l, \
turbine_hall_w, \
turbine_hall_h, \
tw_storage_l, \
tw_storage_w, \
tw_storage_h, \
volrci, \
volnucb, \
vol_plant_reactor_building_internal, \
vol_plant_nuclear_buildings, \
warm_shop_l, \
warm_shop_w, \
warm_shop_h, \
water_buildings_l, \
water_buildings_w, \
water_buildings_h, \
wgt, \
m_plant_reactor_building_crane_capacity, \
wgt2, \
workshop_l, \
workshop_w, \
workshop_h, \
wrbi, \
wsvol, \
dr_plant_reactor_building_internal_half, \
vol_plant_warm_shop_building, \
wsvfac, \
a_reactor_bldg, \
a_ee_ps_bldg, \
Expand Down Expand Up @@ -795,7 +795,7 @@ def init_buildings_variables():
cryostore_w = 30.0
cryostore_h = 20.0
cryostat_clrnc = 2.5
cryvol = 0.0
vol_plant_cryoplant_building = 0.0
a_plant_floor_effective = 0.0
elecdist_l = 380.0
elecdist_w = 350.0
Expand All @@ -806,7 +806,7 @@ def init_buildings_variables():
elecstore_l = 100.0
elecstore_w = 60.0
elecstore_h = 12.0
elevol = 0.0
vol_plant_electrical_building = 0.0
esbldgm3 = 1.0e3
fc_building_l = 60.0
fc_building_w = 60.0
Expand Down Expand Up @@ -855,17 +855,17 @@ def init_buildings_variables():
pibv = 2.0e4
qnty_sfty_fac = 2.0
rbvfac = 1.6
rbrt = 1.0
rbvol = 0.0
rbwt = 2.0
dz_plant_reactor_building_roof = 1.0
vol_plant_reactor_building = 0.0
dx_plant_reactor_building_wall = 2.0
reactor_clrnc = 4.0
reactor_fndtn_thk = 2.0
reactor_hall_l = 0.0
reactor_hall_w = 0.0
reactor_hall_h = 0.0
reactor_roof_thk = 1.0
reactor_wall_thk = 2.0
rmbvol = 0.0
vol_plant_maintenance_assembly_building = 0.0
robotics_l = 50.0
robotics_w = 30.0
robotics_h = 30.0
Expand All @@ -880,18 +880,18 @@ def init_buildings_variables():
staff_buildings_h = 5.0
staff_buildings_area = 4.8e5
stcl = 3.0
tfcbv = 2.0e4
vol_plant_tf_power_supplies_building = 2.0e4
transp_clrnc = 1.0
trcl = 1.0
triv = 4.0e4
dr_plant_reactor_building_transport_clearance = 1.0
vol_plant_tritium_fuel_building = 4.0e4
turbine_hall_l = 109.0
turbine_hall_w = 62.0
turbine_hall_h = 15.0
tw_storage_l = 90.0
tw_storage_w = 30.0
tw_storage_h = 5.0
volnucb = 0.0
volrci = 0.0
vol_plant_nuclear_buildings = 0.0
vol_plant_reactor_building_internal = 0.0
warm_shop_l = 100.0
warm_shop_w = 50.0
warm_shop_h = 10.0
Expand All @@ -901,11 +901,11 @@ def init_buildings_variables():
workshop_l = 150.0
workshop_w = 125.0
workshop_h = 10.0
wgt = 5.0e5
m_plant_reactor_building_crane_capacity = 5.0e5
wgt2 = 1.0e5
wrbi = 0.0
dr_plant_reactor_building_internal_half = 0.0
wsvfac = 1.9
wsvol = 0.0
vol_plant_warm_shop_building = 0.0
a_reactor_bldg = 8.32e3
a_ee_ps_bldg = 2.133e4
a_aux_services_bldg = 1.0e3
Expand Down
10 changes: 10 additions & 0 deletions process/data_structure/tfcoil_variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -767,6 +767,12 @@
(calculated for stellarators)
"""

dr_tf_full_midplane: float = None
"""Full radial thickness of TF coil at midplane (m)"""

dr_tf_internal_midplane: float = None
"""Internal radial thickness of TF coil at midplane (m)"""


dr_tf_wp_with_insulation: float = None
"""radial thickness of winding pack (m) (`iteration variable 140`) (issue #514)"""
Expand Down Expand Up @@ -1221,6 +1227,8 @@ def init_tfcoil_variables():
dx_tf_turn_insulation, \
layer_ins, \
dr_tf_nose_case, \
dr_tf_full_midplane, \
dr_tf_internal_midplane, \
dr_tf_wp_with_insulation, \
dx_tf_turn_steel, \
dx_tf_wp_insulation, \
Expand Down Expand Up @@ -1454,6 +1462,8 @@ def init_tfcoil_variables():
dx_tf_turn_insulation = 8e-4
layer_ins = 0.0
dr_tf_nose_case = 0.3
dr_tf_full_midplane = 0.0
dr_tf_internal_midplane = 0.0
dr_tf_wp_with_insulation = 0.0
dx_tf_turn_steel = 8e-3
dx_tf_wp_insulation = 0.018
Expand Down
Loading
Loading