Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 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
0f50bbe
🔄 Add internal height variable for reactor building and implement rea…
chris-ashe Apr 1, 2026
799a48e
Refactor building volume calculations and improve output reporting fo…
chris-ashe Apr 8, 2026
45dff08
Rename 'admv' to 'vol_plant_administration_building' for clarity and …
chris-ashe Apr 8, 2026
aa78196
Rename 'conv' to 'vol_plant_control_building' for clarity and consist…
chris-ashe Apr 8, 2026
8d85c19
Rename 'shov' to 'vol_plant_shops_warehouse_buildings' for clarity an…
chris-ashe Apr 8, 2026
563aee0
Rename 'rxcl' to 'dr_plant_reactor_extra_clearance' for clarity and c…
chris-ashe Apr 8, 2026
492be17
Rename 'row' to 'dr_plant_reactor_crane_clearance' for clarity and co…
chris-ashe Apr 8, 2026
6c2a784
Add dz_plant_reactor_building_crane for crane operation height in rea…
chris-ashe Apr 8, 2026
dbf6ccf
Rename 'fndt' to 'dz_plant_reactor_building_foundation' for clarity a…
chris-ashe Apr 8, 2026
fab097f
Rename 'stcl' to 'dz_plant_reactor_building_crane_roof_clearance' for…
chris-ashe Apr 8, 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
36 changes: 24 additions & 12 deletions process/core/input.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ def __post_init__(self):
"fkzohm": InputVariable(data_structure.physics_variables, float, range=(0.5, 2.0)),
"abktflnc": InputVariable(data_structure.cost_variables, float, range=(0.1, 100.0)),
"adivflnc": InputVariable(data_structure.cost_variables, float, range=(0.1, 100.0)),
"admv": InputVariable(
"vol_plant_administration_building": InputVariable(
data_structure.buildings_variables, float, range=(1.0e4, 1.0e6)
),
"airtemp": InputVariable(
Expand Down Expand Up @@ -344,7 +344,7 @@ def __post_init__(self):
"control_buildings_w": InputVariable(
data_structure.buildings_variables, float, range=(10.0, 1000.0)
),
"conv": InputVariable(
"vol_plant_control_building": InputVariable(
data_structure.buildings_variables, float, range=(10000.0, 1000000.0)
),
"coolp": InputVariable(
Expand Down Expand Up @@ -794,7 +794,9 @@ def __post_init__(self):
"fmgdmw": InputVariable(
data_structure.heat_transport_variables, float, range=(0.0, 100.0)
),
"fndt": InputVariable(data_structure.buildings_variables, float, range=(0.0, 10.0)),
"dz_plant_reactor_building_foundation": InputVariable(
data_structure.buildings_variables, float, range=(0.0, 10.0)
),
"f_p_beam_orbit_loss": InputVariable(
data_structure.current_drive_variables, float, range=(0.0, 0.999)
),
Expand Down Expand Up @@ -1232,9 +1234,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 @@ -1326,7 +1332,9 @@ def __post_init__(self):
"rrr_tf_cu": InputVariable(
data_structure.tfcoil_variables, float, range=(1.0, 1000.0)
),
"rxcl": InputVariable(data_structure.buildings_variables, float, range=(0.0, 10.0)),
"dr_plant_reactor_extra_clearance": InputVariable(
data_structure.buildings_variables, float, range=(0.0, 10.0)
),
"sec_buildings_h": InputVariable(
data_structure.buildings_variables, float, range=(1.0, 100.0)
),
Expand Down Expand Up @@ -1358,7 +1366,7 @@ def __post_init__(self):
data_structure.build_variables, float, range=(0.0, 10.0)
),
"shmf": InputVariable(data_structure.buildings_variables, float, range=(0.0, 1.0)),
"shov": InputVariable(
"vol_plant_shops_warehouse_buildings": InputVariable(
data_structure.buildings_variables, float, range=(1000.0, 1000000.0)
),
"sig_tf_case_max": InputVariable(
Expand All @@ -1385,7 +1393,9 @@ def __post_init__(self):
"startupratio": InputVariable(
data_structure.cost_variables, float, range=(0.0, 10.0)
),
"stcl": InputVariable(data_structure.buildings_variables, float, range=(0.0, 10.0)),
"dz_plant_reactor_building_crane_roof_clearance": InputVariable(
data_structure.buildings_variables, float, range=(0.0, 10.0)
),
"str_cs_con_res": InputVariable(
data_structure.tfcoil_variables, float, range=(-0.02, 0.02)
),
Expand Down Expand Up @@ -1516,7 +1526,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 +1596,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 +1785,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
26 changes: 22 additions & 4 deletions process/core/io/plot_proc.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
from process.core.solver.objectives import OBJECTIVE_NAMES
from process.data_structure import impurity_radiation_module
from process.models.build import Build
from process.models.buildings import BuildingsITER1992
from process.models.geometry.blanket import (
blanket_geometry_double_null,
blanket_geometry_single_null,
Expand Down Expand Up @@ -10147,7 +10148,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 +10172,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 Expand Up @@ -13902,7 +13903,24 @@ def main_plot(
ax24 = figs[33].add_subplot(111)
# set_position([left, bottom, width, height]) -> height ~ 0.66 => ~2/3 of page height
ax24.set_position([0.08, 0.35, 0.84, 0.57])
plot_system_power_profiles_over_time(ax24, m_file, scan, figs[33])
plot_system_power_profiles_over_time(ax24, m_file, scan, figs[34])

reactor_hall_ax = figs[34].add_subplot(111, aspect="equal")
plot_full_machine_poloidal_cross_section(
reactor_hall_ax,
m_file,
scan,
radial_build,
colour_scheme,
)

BuildingsITER1992.plot_reactor_hall(
axis=reactor_hall_ax,
mfile=m_file,
scan=scan,
radial_build=radial_build,
colour_scheme=colour_scheme,
)


def create_thickness_builds(m_file, scan: int):
Expand Down Expand Up @@ -13979,7 +13997,7 @@ def main(args=None):

# create main plot
# Increase range when adding new page
pages = [plt.figure(figsize=(12, 9), dpi=80) for i in range(34)]
pages = [plt.figure(figsize=(12, 9), dpi=80) for i in range(35)]

# run main_plot
main_plot(
Expand Down
Loading