diff --git a/documentation/source/io/input-guide.md b/documentation/source/io/input-guide.md index 3d01a240c7..4176d5ba1b 100644 --- a/documentation/source/io/input-guide.md +++ b/documentation/source/io/input-guide.md @@ -9,7 +9,7 @@ with an error message. The last line of the output file `OUT.DAT` may give an indication of where in the input file the problem lies. !!! Info "Variable Descriptions" - A full list of inputs variables is given in the PROCESS data structure API documentation [here](../../source/reference/process/data_structure/blanket_library). + A full list of inputs variables is given in the PROCESS data structure API documentation [here](../../source/reference/process/data_structure/blanket_variables). ## File Naming Convention @@ -152,7 +152,7 @@ one can add a `*` to the beginning of the line, as below: ``` !!! Info "Variable Descriptions" - A full list of inputs variables is given in the PROCESS data structure API documentation [here](../../source/reference/process/data_structure/blanket_library). + A full list of inputs variables is given in the PROCESS data structure API documentation [here](../../source/reference/process/data_structure/blanket_variables). ## Scan diff --git a/process/core/init.py b/process/core/init.py index 78ce099b42..fa21a083e0 100644 --- a/process/core/init.py +++ b/process/core/init.py @@ -16,7 +16,6 @@ from process.core.log import logging_model_handler from process.core.solver import iteration_variables from process.core.solver.constraints import ConstraintManager -from process.data_structure.blanket_library import init_blanket_library from process.data_structure.build_variables import init_build_variables from process.data_structure.buildings_variables import init_buildings_variables from process.data_structure.ccfe_hcpb_module import init_ccfe_hcpb_module @@ -293,7 +292,6 @@ def init_all_module_vars(): init_pulse_variables() init_rebco_variables() init_reinke_variables() - init_blanket_library() init_dcll_module() init_power_variables() init_neoclassics_variables() diff --git a/process/core/model.py b/process/core/model.py index e7438d504b..bf2de77c9f 100644 --- a/process/core/model.py +++ b/process/core/model.py @@ -1,6 +1,7 @@ import abc from dataclasses import dataclass, fields +from process.data_structure.blanket_variables import BlanketData from process.data_structure.cost_2015_variables import Cost2015Data from process.data_structure.cost_variables import CostData from process.data_structure.cs_fatigue_variables import CSFatigueData @@ -21,6 +22,7 @@ class DataStructure: costs: CostData = initialise_later first_wall: FirstWallData = initialise_later fwbs: FWBSData = initialise_later + blanket: BlanketData = initialise_later def __post_init__(self): for f in fields(self): diff --git a/process/data_structure/__init__.py b/process/data_structure/__init__.py index b84550ac61..b6e4a5e1db 100644 --- a/process/data_structure/__init__.py +++ b/process/data_structure/__init__.py @@ -1,5 +1,5 @@ from process.data_structure import ( - blanket_library, + blanket_variables, build_variables, buildings_variables, ccfe_hcpb_module, @@ -37,7 +37,7 @@ ) __all__ = [ - "blanket_library", + "blanket_variables", "build_variables", "buildings_variables", "ccfe_hcpb_module", diff --git a/process/data_structure/blanket_library.py b/process/data_structure/blanket_library.py deleted file mode 100644 index 2cd99c3645..0000000000 --- a/process/data_structure/blanket_library.py +++ /dev/null @@ -1,342 +0,0 @@ -"""This library contains routines that can be shared by the blanket modules used in PROCESS. - -These include: -- component_volumes -- component_masses -- thermo_hydraulic_model - - - -Acronyms for this module: - - BB Breeding Blanket - FW First Wall - BZ Breeder Zone - MF/BSS Manifold/Back Supporting Structure - LT Low Temperature - HT High Temperature - MMS Multi Module Segment - SMS Single Modle Segment - IB Inboard - OB Outboard - HCD Heating & Current Drive - FCI Flow Channel Insert - -Any changes within a subroutine or function code will have a comment explaining the change -""" - -vol_shld_inboard: float = None -"""Volume of inboard shield (m3)""" - - -vol_shld_outboard: float = None -"""Volume of outboard shield (m3)""" - - -vol_vv_inboard: float = None -"""Volume of inboard Vacuum Vessel (m3)""" - - -vol_vv_outboard: float = None -"""Volume of outboard Vacuum Vessel (m3)""" - - -dz_pf_cryostat: float = None -"""Clearance between uppermost PF coil and cryostat lid (m)""" - - -vfblkti: float = None -"""Inboard void fraction of blanket""" - - -vfblkto: float = None -"""Outboard void fraction of blanket""" - - -len_blkt_inboard_coolant_channel_radial: float = None -"""Inboard blanket coolant channel length (radial direction) (m)""" - - -len_blkt_outboard_coolant_channel_radial: float = None -"""Outboard blanket coolant channel length (radial direction) (m)""" - - -len_blkt_inboard_segment_toroidal: float = None -"""Inboard blanket mid-plane toroidal circumference for segment (m)""" - - -len_blkt_outboard_segment_toroidal: float = None -"""Outboard blanket mid-plane toroidal circumference for segment (m)""" - - -len_blkt_inboard_segment_poloidal: float = None -"""Inboard blanket segment poloidal length (m)""" - - -len_blkt_outboard_segment_poloidal: float = None -"""Outboard blanket segment poloidal length (m)""" - - -len_blkt_inboard_channel_total: float = None -"""Inboard primary blanket flow lengths (m)""" - - -len_blkt_outboard_channel_total: float = None -"""Outboard primary blanket flow lengths (m)""" - - -bzfllengi_liq: float = None -"""Inboard secondary blanket flow lengths (m)""" - - -bzfllengo_liq: float = None -"""Outboard secondary blanket flow lengths (m)""" - - -p_fw_inboard_nuclear_heat_mw: float = None -"""Inboard first wall nuclear heating (MW)""" - - -p_fw_outboard_nuclear_heat_mw: float = None -"""Outboard first wall nuclear heating (MW)""" - - -temp_fw_inboard_peak: float = None -"""Inboard first wall peak temperature (K)""" - - -temp_fw_outboard_peak: float = None -"""Outboard first wall peak temperature (K)""" - - -mflow_fw_inboard_coolant_total: float = None -"""Inboard mass flow rate to remove inboard FW power (kg/s)""" - - -mflow_fw_outboard_coolant_total: float = None -"""Outboard mass flow rate to remove inboard FW power (kg/s)""" - - -mflow_fw_coolant_total: float = None -"""Total mass flow rate to remove inboard FW power (kg/s)""" - - -n_fw_inboard_channels: float = None -"""Inboard total number of first wall coolant channels""" - - -n_fw_outboard_channels: float = None -"""Outboard total number of first wall coolant channels""" - - -mflow_fw_inboard_coolant_channel: float = None -"""Inboard mass flow rate per coolant pipe (kg/s)""" - - -mflow_fw_outboard_coolant_channel: float = None -"""Outboard mass flow rate per coolant pipe (kg/s)""" - - -p_blkt_nuclear_heat_inboard_mw: float = None -"""Neutron power deposited inboard blanket blanket (MW)""" - - -p_blkt_nuclear_heat_outboard_mw: float = None -"""Neutron power deposited outboard blanket blanket (MW)""" - - -mflow_blkt_inboard_coolant: float = None -"""Inboard blanket mass flow rate for coolant (kg/s)""" - - -mflow_blkt_outboard_coolant: float = None -"""Outboard blanket mass flow rate for coolant (kg/s)""" - - -mflow_blkt_coolant_total: float = None -"""Total blanket mass flow rate for coolant (kg/s)""" - - -mfblkti_liq: float = None -"""Inboard blanket mass flow rate for liquid breeder (kg/s)""" - - -mfblkto_liq: float = None -"""Outboard blanket mass flow rate for liquid breeder (kg/s)""" - - -mfblkt_liq: float = None -"""Blanket mass flow rate for liquid breeder (kg/s)""" - - -mftotal: float = None -"""Total mass flow rate for coolant (kg/s)""" - - -n_blkt_inboard_channels: float = None -"""Inboard total number of blanket coolant pipes""" - - -n_blkt_outboard_channels: float = None -"""Outboard total number of blanket coolant pipes""" - - -mfblktpi: float = None -"""Inboard mass flow rate per coolant pipe (kg/s)""" - - -mfblktpo: float = None -"""Outboard mass flow rate per coolant pipe (kg/s)""" - - -vel_blkt_inboard_coolant: float = None -"""Inboard coolant velocity in blanket (m/s)""" - - -vel_blkt_outboard_coolant: float = None -"""Outboard coolant velocity in blanket (m/s)""" - - -htpmw_fwi: float = None -"""Inboard first wall pumping power (MW)""" - - -htpmw_fwo: float = None -"""Outboard first wall pumping power (MW)""" - - -htpmw_blkti: float = None -"""Inboard blanket pumping power (MW)""" - - -htpmw_blkto: float = None -"""Outboard blanket pumping power (MW)""" - - -htpmw_fw_blkti: float = None -"""Inboard fw and blanket pumping power (MW)""" - - -htpmw_fw_blkto: float = None -"""Outboard fw and blanket pumping power (MW)""" - - -dz_blkt_half: float = None -"""Blanket internal half-height (m)""" - - -dz_shld_half: float = None -"""Shield internal half-height (m)""" - - -dz_vv_half: float = None -"""Vacuum vessel internal half-height (m)""" - - -icomponent: int = None -"""Switch used to specify selected component: blanket=0, shield=1, vacuum vessel=2""" - - -def init_blanket_library(): - global \ - dz_blkt_half, \ - dz_shld_half, \ - dz_pf_cryostat, \ - dz_vv_half, \ - vol_shld_inboard, \ - vol_shld_outboard, \ - vol_vv_inboard, \ - vol_vv_outboard, \ - len_blkt_inboard_coolant_channel_radial, \ - len_blkt_outboard_coolant_channel_radial, \ - len_blkt_inboard_segment_toroidal, \ - len_blkt_outboard_segment_toroidal, \ - len_blkt_inboard_segment_poloidal, \ - len_blkt_outboard_segment_poloidal, \ - len_blkt_inboard_channel_total, \ - bzfllengi_liq, \ - bzfllengo_liq, \ - len_blkt_outboard_channel_total, \ - p_fw_inboard_nuclear_heat_mw, \ - p_fw_outboard_nuclear_heat_mw, \ - temp_fw_inboard_peak, \ - temp_fw_outboard_peak, \ - mflow_fw_inboard_coolant_total, \ - mflow_fw_outboard_coolant_total, \ - mflow_fw_coolant_total, \ - n_fw_inboard_channels, \ - n_fw_outboard_channels, \ - mflow_fw_inboard_coolant_channel, \ - mflow_fw_outboard_coolant_channel, \ - p_blkt_nuclear_heat_inboard_mw, \ - p_blkt_nuclear_heat_outboard_mw, \ - mflow_blkt_inboard_coolant, \ - mflow_blkt_outboard_coolant, \ - mfblkti_liq, \ - mfblkto_liq, \ - mfblkt_liq, \ - mflow_blkt_coolant_total, \ - mftotal, \ - n_blkt_inboard_channels, \ - n_blkt_outboard_channels, \ - mfblktpi, \ - mfblktpo, \ - vel_blkt_inboard_coolant, \ - vel_blkt_outboard_coolant, \ - htpmw_fwi, \ - htpmw_fwo, \ - htpmw_blkti, \ - htpmw_blkto, \ - vfblkti, \ - vfblkto - - dz_blkt_half = 0.0 - dz_shld_half = 0.0 - dz_pf_cryostat = 0.0 - dz_vv_half = 0.0 - vol_shld_inboard = 0.0 - vol_shld_outboard = 0.0 - vol_vv_inboard = 0.0 - vol_vv_outboard = 0.0 - len_blkt_inboard_coolant_channel_radial = 0.0 - len_blkt_outboard_coolant_channel_radial = 0.0 - len_blkt_inboard_segment_toroidal = 0.0 - len_blkt_outboard_segment_toroidal = 0.0 - len_blkt_inboard_segment_poloidal = 0.0 - len_blkt_outboard_segment_poloidal = 0.0 - len_blkt_inboard_channel_total = 0.0 - bzfllengi_liq = 0.0 - bzfllengo_liq = 0.0 - len_blkt_outboard_channel_total = 0.0 - p_fw_inboard_nuclear_heat_mw = 0.0 - p_fw_outboard_nuclear_heat_mw = 0.0 - temp_fw_inboard_peak = 0.0 - temp_fw_outboard_peak = 0.0 - mflow_fw_inboard_coolant_total = 0.0 - mflow_fw_outboard_coolant_total = 0.0 - mflow_fw_coolant_total = 0.0 - n_fw_inboard_channels = 0.0 - n_fw_outboard_channels = 0.0 - mflow_fw_inboard_coolant_channel = 0.0 - mflow_fw_outboard_coolant_channel = 0.0 - p_blkt_nuclear_heat_inboard_mw = 0.0 - p_blkt_nuclear_heat_outboard_mw = 0.0 - mflow_blkt_inboard_coolant = 0.0 - mflow_blkt_outboard_coolant = 0.0 - mfblkti_liq = 0.0 - mfblkto_liq = 0.0 - mfblkt_liq = 0.0 - mflow_blkt_coolant_total = 0.0 - mftotal = 0.0 - n_blkt_inboard_channels = 0.0 - n_blkt_outboard_channels = 0.0 - mfblktpi = 0.0 - mfblktpo = 0.0 - vel_blkt_inboard_coolant = 0.0 - vel_blkt_outboard_coolant = 0.0 - htpmw_fwi = 0.0 - htpmw_fwo = 0.0 - htpmw_blkti = 0.0 - htpmw_blkto = 0.0 - vfblkti = 0.0 - vfblkto = 0.0 diff --git a/process/data_structure/blanket_variables.py b/process/data_structure/blanket_variables.py new file mode 100644 index 0000000000..51d37e4b33 --- /dev/null +++ b/process/data_structure/blanket_variables.py @@ -0,0 +1,190 @@ +"""This library contains routines that can be shared by the blanket modules used in PROCESS. + +These include: +- component_volumes +- component_masses +- thermo_hydraulic_model + + + +Acronyms for this module: + + BB Breeding Blanket + FW First Wall + BZ Breeder Zone + MF/BSS Manifold/Back Supporting Structure + LT Low Temperature + HT High Temperature + MMS Multi Module Segment + SMS Single Modle Segment + IB Inboard + OB Outboard + HCD Heating & Current Drive + FCI Flow Channel Insert + +Any changes within a subroutine or function code will have a comment explaining the change +""" + +from dataclasses import dataclass + + +@dataclass +class BlanketData: + vol_shld_inboard: float = 0.0 + """Volume of inboard shield (m3)""" + + vol_shld_outboard: float = 0.0 + """Volume of outboard shield (m3)""" + + vol_vv_inboard: float = 0.0 + """Volume of inboard Vacuum Vessel (m3)""" + + vol_vv_outboard: float = 0.0 + """Volume of outboard Vacuum Vessel (m3)""" + + dz_pf_cryostat: float = 0.0 + """Clearance between uppermost PF coil and cryostat lid (m)""" + + vfblkti: float = 0.0 + """Inboard void fraction of blanket""" + + vfblkto: float = 0.0 + """Outboard void fraction of blanket""" + + len_blkt_inboard_coolant_channel_radial: float = 0.0 + """Inboard blanket coolant channel length (radial direction) (m)""" + + len_blkt_outboard_coolant_channel_radial: float = 0.0 + """Outboard blanket coolant channel length (radial direction) (m)""" + + len_blkt_inboard_segment_toroidal: float = 0.0 + """Inboard blanket mid-plane toroidal circumference for segment (m)""" + + len_blkt_outboard_segment_toroidal: float = 0.0 + """Outboard blanket mid-plane toroidal circumference for segment (m)""" + + len_blkt_inboard_segment_poloidal: float = 0.0 + """Inboard blanket segment poloidal length (m)""" + + len_blkt_outboard_segment_poloidal: float = 0.0 + """Outboard blanket segment poloidal length (m)""" + + len_blkt_inboard_channel_total: float = 0.0 + """Inboard primary blanket flow lengths (m)""" + + len_blkt_outboard_channel_total: float = 0.0 + """Outboard primary blanket flow lengths (m)""" + + bzfllengi_liq: float = 0.0 + """Inboard secondary blanket flow lengths (m)""" + + bzfllengo_liq: float = 0.0 + """Outboard secondary blanket flow lengths (m)""" + + p_fw_inboard_nuclear_heat_mw: float = 0.0 + """Inboard first wall nuclear heating (MW)""" + + p_fw_outboard_nuclear_heat_mw: float = 0.0 + """Outboard first wall nuclear heating (MW)""" + + temp_fw_inboard_peak: float = 0.0 + """Inboard first wall peak temperature (K)""" + + temp_fw_outboard_peak: float = 0.0 + """Outboard first wall peak temperature (K)""" + + mflow_fw_inboard_coolant_total: float = 0.0 + """Inboard mass flow rate to remove inboard FW power (kg/s)""" + + mflow_fw_outboard_coolant_total: float = 0.0 + """Outboard mass flow rate to remove inboard FW power (kg/s)""" + + mflow_fw_coolant_total: float = 0.0 + """Total mass flow rate to remove inboard FW power (kg/s)""" + + mflow_fw_inboard_coolant_channel: float = 0.0 + """Inboard mass flow rate per coolant pipe (kg/s)""" + + mflow_fw_outboard_coolant_channel: float = 0.0 + """Outboard mass flow rate per coolant pipe (kg/s)""" + + n_fw_inboard_channels: float = 0.0 + """Inboard total number of first wall coolant channels""" + + n_fw_outboard_channels: float = 0.0 + """Outboard total number of first wall coolant channels""" + + p_blkt_nuclear_heat_inboard_mw: float = 0.0 + """Neutron power deposited inboard blanket blanket (MW)""" + + p_blkt_nuclear_heat_outboard_mw: float = 0.0 + """Neutron power deposited outboard blanket blanket (MW)""" + + mflow_blkt_inboard_coolant: float = 0.0 + """Inboard blanket mass flow rate for coolant (kg/s)""" + + mflow_blkt_outboard_coolant: float = 0.0 + """Outboard blanket mass flow rate for coolant (kg/s)""" + + mflow_blkt_coolant_total: float = 0.0 + """Total blanket mass flow rate for coolant (kg/s)""" + + mfblkti_liq: float = 0.0 + """Inboard blanket mass flow rate for liquid breeder (kg/s)""" + + mfblkto_liq: float = 0.0 + """Outboard blanket mass flow rate for liquid breeder (kg/s)""" + + mfblkt_liq: float = 0.0 + """Blanket mass flow rate for liquid breeder (kg/s)""" + + mftotal: float = 0.0 + """Total mass flow rate for coolant (kg/s)""" + + n_blkt_inboard_channels: float = 0.0 + """Inboard total number of blanket coolant pipes""" + + n_blkt_outboard_channels: float = 0.0 + """Outboard total number of blanket coolant pipes""" + + mfblktpi: float = 0.0 + """Inboard mass flow rate per coolant pipe (kg/s)""" + + mfblktpo: float = 0.0 + """Outboard mass flow rate per coolant pipe (kg/s)""" + + vel_blkt_inboard_coolant: float = 0.0 + """Inboard coolant velocity in blanket (m/s)""" + + vel_blkt_outboard_coolant: float = 0.0 + """Outboard coolant velocity in blanket (m/s)""" + + htpmw_fwi: float = 0.0 + """Inboard first wall pumping power (MW)""" + + htpmw_fwo: float = 0.0 + """Outboard first wall pumping power (MW)""" + + htpmw_blkti: float = 0.0 + """Inboard blanket pumping power (MW)""" + + htpmw_blkto: float = 0.0 + """Outboard blanket pumping power (MW)""" + + htpmw_fw_blkti: float = None + """Inboard fw and blanket pumping power (MW)""" + + htpmw_fw_blkto: float = None + """Outboard fw and blanket pumping power (MW)""" + + dz_blkt_half: float = 0.0 + """Blanket internal half-height (m)""" + + dz_shld_half: float = 0.0 + """Shield internal half-height (m)""" + + dz_vv_half: float = 0.0 + """Vacuum vessel internal half-height (m)""" + + +CREATE_DICTS_FROM_DATACLASS = BlanketData diff --git a/process/models/blankets/blanket_library.py b/process/models/blankets/blanket_library.py index 88d2d0ff43..2611eb3039 100644 --- a/process/models/blankets/blanket_library.py +++ b/process/models/blankets/blanket_library.py @@ -11,7 +11,6 @@ from process.core.exceptions import ProcessValueError from process.core.model import Model from process.data_structure import ( - blanket_library, build_variables, divertor_variables, heat_transport_variables, @@ -75,7 +74,7 @@ def component_volumes(self): """ # Calculate half-height # Blanket - blanket_library.dz_blkt_half = self.calculate_blkt_half_height( + self.data.blanket.dz_blkt_half = self.calculate_blkt_half_height( z_plasma_xpoint_lower=build_variables.z_plasma_xpoint_lower, dz_xpoint_divertor=build_variables.dz_xpoint_divertor, dz_divertor=divertor_variables.dz_divertor, @@ -106,7 +105,7 @@ def component_volumes(self): rminor=physics_variables.rminor, dr_fw_plasma_gap_outboard=build_variables.dr_fw_plasma_gap_outboard, dr_fw_outboard=build_variables.dr_fw_outboard, - dz_blkt_half=blanket_library.dz_blkt_half, + dz_blkt_half=self.data.blanket.dz_blkt_half, ) ( @@ -122,7 +121,7 @@ def component_volumes(self): rminor=physics_variables.rminor, dr_fw_plasma_gap_outboard=build_variables.dr_fw_plasma_gap_outboard, dr_fw_outboard=build_variables.dr_fw_outboard, - dz_blkt_half=blanket_library.dz_blkt_half, + dz_blkt_half=self.data.blanket.dz_blkt_half, dr_blkt_outboard=build_variables.dr_blkt_outboard, dz_blkt_upper=build_variables.dz_blkt_upper, ) @@ -143,7 +142,7 @@ def component_volumes(self): r_shld_outboard_outer=build_variables.r_shld_outboard_outer, dr_shld_outboard=build_variables.dr_shld_outboard, dr_blkt_outboard=build_variables.dr_blkt_outboard, - dz_blkt_half=blanket_library.dz_blkt_half, + dz_blkt_half=self.data.blanket.dz_blkt_half, ) ( @@ -160,7 +159,7 @@ def component_volumes(self): r_shld_outboard_outer=build_variables.r_shld_outboard_outer, dr_shld_outboard=build_variables.dr_shld_outboard, dr_blkt_outboard=build_variables.dr_blkt_outboard, - dz_blkt_half=blanket_library.dz_blkt_half, + dz_blkt_half=self.data.blanket.dz_blkt_half, dz_blkt_upper=build_variables.dz_blkt_upper, ) @@ -895,17 +894,17 @@ def set_blanket_module_geometry(self): """ if self.data.fwbs.i_blanket_type == 5: # Unless DCLL then we will use BZ - blanket_library.len_blkt_inboard_coolant_channel_radial = ( + self.data.blanket.len_blkt_inboard_coolant_channel_radial = ( build_variables.blbuith ) - blanket_library.len_blkt_outboard_coolant_channel_radial = ( + self.data.blanket.len_blkt_outboard_coolant_channel_radial = ( build_variables.blbuoth ) else: - blanket_library.len_blkt_inboard_coolant_channel_radial = ( + self.data.blanket.len_blkt_inboard_coolant_channel_radial = ( 0.8e0 * build_variables.dr_blkt_inboard ) - blanket_library.len_blkt_outboard_coolant_channel_radial = ( + self.data.blanket.len_blkt_outboard_coolant_channel_radial = ( 0.8e0 * build_variables.dr_blkt_outboard ) @@ -922,37 +921,37 @@ def set_blanket_module_geometry(self): physics_variables.itart == 1 or self.data.fwbs.i_fw_blkt_vv_shape == FwBlktVVShape.D_SHAPED ): - blanket_library.len_blkt_inboard_segment_poloidal = self.calculate_dshaped_inboard_blkt_segment_poloidal( - dz_blkt_half=blanket_library.dz_blkt_half, + self.data.blanket.len_blkt_inboard_segment_poloidal = self.calculate_dshaped_inboard_blkt_segment_poloidal( + dz_blkt_half=self.data.blanket.dz_blkt_half, n_blkt_inboard_modules_poloidal=self.data.fwbs.n_blkt_inboard_modules_poloidal, ) - blanket_library.len_blkt_outboard_segment_poloidal = self.calculate_dshaped_outboard_blkt_segment_poloidal( + self.data.blanket.len_blkt_outboard_segment_poloidal = self.calculate_dshaped_outboard_blkt_segment_poloidal( n_blkt_outboard_modules_poloidal=self.data.fwbs.n_blkt_outboard_modules_poloidal, dr_fw_plasma_gap_inboard=build_variables.dr_fw_plasma_gap_inboard, rminor=physics_variables.rminor, dr_fw_plasma_gap_outboard=build_variables.dr_fw_plasma_gap_outboard, - dz_blkt_half=blanket_library.dz_blkt_half, + dz_blkt_half=self.data.blanket.dz_blkt_half, n_divertors=divertor_variables.n_divertors, f_ster_div_single=self.data.fwbs.f_ster_div_single, ) else: - blanket_library.len_blkt_inboard_segment_poloidal = self.calculate_elliptical_inboard_blkt_segment_poloidal( + self.data.blanket.len_blkt_inboard_segment_poloidal = self.calculate_elliptical_inboard_blkt_segment_poloidal( rmajor=physics_variables.rmajor, rminor=physics_variables.rminor, triang=physics_variables.triang, dr_fw_plasma_gap_inboard=build_variables.dr_fw_plasma_gap_inboard, - dz_blkt_half=blanket_library.dz_blkt_half, + dz_blkt_half=self.data.blanket.dz_blkt_half, n_blkt_inboard_modules_poloidal=self.data.fwbs.n_blkt_inboard_modules_poloidal, n_divertors=divertor_variables.n_divertors, f_ster_div_single=self.data.fwbs.f_ster_div_single, ) - blanket_library.len_blkt_outboard_segment_poloidal = self.calculate_elliptical_outboard_blkt_segment_poloidal( + self.data.blanket.len_blkt_outboard_segment_poloidal = self.calculate_elliptical_outboard_blkt_segment_poloidal( rmajor=physics_variables.rmajor, rminor=physics_variables.rminor, triang=physics_variables.triang, - dz_blkt_half=blanket_library.dz_blkt_half, + dz_blkt_half=self.data.blanket.dz_blkt_half, dr_fw_plasma_gap_outboard=build_variables.dr_fw_plasma_gap_outboard, n_blkt_outboard_modules_poloidal=self.data.fwbs.n_blkt_outboard_modules_poloidal, n_divertors=divertor_variables.n_divertors, @@ -967,11 +966,11 @@ def set_blanket_module_geometry(self): self.data.fwbs.b_bz_liq = ( min( ( - blanket_library.len_blkt_inboard_coolant_channel_radial + self.data.blanket.len_blkt_inboard_coolant_channel_radial * self.data.fwbs.r_f_liq_ib ), ( - blanket_library.len_blkt_outboard_coolant_channel_radial + self.data.blanket.len_blkt_outboard_coolant_channel_radial * self.data.fwbs.r_f_liq_ob ), ) @@ -981,11 +980,11 @@ def set_blanket_module_geometry(self): self.data.fwbs.a_bz_liq = ( min( ( - blanket_library.len_blkt_inboard_segment_toroidal + self.data.blanket.len_blkt_inboard_segment_toroidal * self.data.fwbs.w_f_liq_ib ), ( - blanket_library.len_blkt_outboard_segment_toroidal + self.data.blanket.len_blkt_outboard_segment_toroidal * self.data.fwbs.w_f_liq_ob ), ) @@ -993,10 +992,10 @@ def set_blanket_module_geometry(self): ) # Poloidal if ( - blanket_library.len_blkt_inboard_segment_poloidal + self.data.blanket.len_blkt_inboard_segment_poloidal < (self.data.fwbs.b_bz_liq * 3) ) or ( - blanket_library.len_blkt_outboard_segment_poloidal + self.data.blanket.len_blkt_outboard_segment_poloidal < (self.data.fwbs.b_bz_liq * 3) ): logger.error( @@ -1007,16 +1006,16 @@ def set_blanket_module_geometry(self): else: # Radial direction self.data.fwbs.b_bz_liq = ( - blanket_library.len_blkt_outboard_coolant_channel_radial + self.data.blanket.len_blkt_outboard_coolant_channel_radial * self.data.fwbs.r_f_liq_ob ) / self.data.fwbs.nopol # Toroidal direction self.data.fwbs.a_bz_liq = ( - blanket_library.len_blkt_outboard_segment_toroidal + self.data.blanket.len_blkt_outboard_segment_toroidal * self.data.fwbs.w_f_liq_ob ) / self.data.fwbs.nopipes # Poloidal - if blanket_library.len_blkt_outboard_segment_poloidal < ( + if self.data.blanket.len_blkt_outboard_segment_poloidal < ( self.data.fwbs.b_bz_liq * 3 ): logger.error( @@ -1025,17 +1024,17 @@ def set_blanket_module_geometry(self): # Calculate total flow lengths, used for pressure drop calculation # Blanket primary coolant flow - blanket_library.len_blkt_inboard_channel_total = ( + self.data.blanket.len_blkt_inboard_channel_total = ( self.data.fwbs.n_blkt_inboard_module_coolant_sections_radial - * blanket_library.len_blkt_inboard_coolant_channel_radial + * self.data.blanket.len_blkt_inboard_coolant_channel_radial + self.data.fwbs.n_blkt_inboard_module_coolant_sections_poloidal - * blanket_library.len_blkt_inboard_segment_poloidal + * self.data.blanket.len_blkt_inboard_segment_poloidal ) - blanket_library.len_blkt_outboard_channel_total = ( + self.data.blanket.len_blkt_outboard_channel_total = ( self.data.fwbs.n_blkt_outboard_module_coolant_sections_radial - * blanket_library.len_blkt_outboard_coolant_channel_radial + * self.data.blanket.len_blkt_outboard_coolant_channel_radial + self.data.fwbs.n_blkt_outboard_module_coolant_sections_poloidal - * blanket_library.len_blkt_outboard_segment_poloidal + * self.data.blanket.len_blkt_outboard_segment_poloidal ) def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): @@ -1060,21 +1059,21 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): npblkto_liq = 0 # Blanket secondary coolant/breeder flow - pollengi = blanket_library.len_blkt_inboard_segment_poloidal - pollengo = blanket_library.len_blkt_outboard_segment_poloidal + pollengi = self.data.blanket.len_blkt_inboard_segment_poloidal + pollengo = self.data.blanket.len_blkt_outboard_segment_poloidal self.data.fwbs.nopol = 2 self.data.fwbs.nopipes = 4 bzfllengi_liq = ( self.data.fwbs.bzfllengi_n_rad_liq - * blanket_library.len_blkt_inboard_coolant_channel_radial + * self.data.blanket.len_blkt_inboard_coolant_channel_radial + self.data.fwbs.bzfllengi_n_pol_liq - * blanket_library.len_blkt_inboard_segment_poloidal + * self.data.blanket.len_blkt_inboard_segment_poloidal ) bzfllengo_liq = ( self.data.fwbs.bzfllengo_n_rad_liq - * blanket_library.len_blkt_outboard_coolant_channel_radial + * self.data.blanket.len_blkt_outboard_coolant_channel_radial + self.data.fwbs.bzfllengo_n_pol_liq - * blanket_library.len_blkt_outboard_segment_poloidal + * self.data.blanket.len_blkt_outboard_segment_poloidal ) # ====================================================================== @@ -1102,24 +1101,24 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): # FW Pipe Flow and Velocity # Mass flow rate per FW coolant pipe (kg/s): - blanket_library.mflow_fw_inboard_coolant_channel = ( - blanket_library.mflow_fw_inboard_coolant_total - / blanket_library.n_fw_inboard_channels + self.data.blanket.mflow_fw_inboard_coolant_channel = ( + self.data.blanket.mflow_fw_inboard_coolant_total + / self.data.blanket.n_fw_inboard_channels ) - blanket_library.mflow_fw_outboard_coolant_channel = ( - blanket_library.mflow_fw_outboard_coolant_total - / blanket_library.n_fw_outboard_channels + self.data.blanket.mflow_fw_outboard_coolant_channel = ( + self.data.blanket.mflow_fw_outboard_coolant_total + / self.data.blanket.n_fw_outboard_channels ) # Coolant velocity in FW (m/s) vel_fw_inboard_coolant = self.flow_velocity( i_channel_shape=1, - mass_flow_rate=blanket_library.mflow_fw_inboard_coolant_channel, + mass_flow_rate=self.data.blanket.mflow_fw_inboard_coolant_channel, flow_density=self.data.fwbs.den_fw_coolant, ) vel_fw_outboard_coolant = self.flow_velocity( i_channel_shape=1, - mass_flow_rate=blanket_library.mflow_fw_outboard_coolant_channel, + mass_flow_rate=self.data.blanket.mflow_fw_outboard_coolant_channel, flow_density=self.data.fwbs.den_fw_coolant, ) @@ -1128,14 +1127,14 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): # Calc total num of pipes (in all inboard modules) from # coolant frac and channel dimensions # Assumes up/down flow, two 90 deg bends per length - blanket_library.n_blkt_outboard_channels = ( + self.data.blanket.n_blkt_outboard_channels = ( self.data.fwbs.f_a_blkt_cooling_channels * self.data.fwbs.vol_blkt_outboard ) / ( np.pi * self.data.fwbs.radius_fw_channel * self.data.fwbs.radius_fw_channel - * blanket_library.len_blkt_outboard_channel_total + * self.data.blanket.len_blkt_outboard_channel_total ) npblkto_liq = ( self.data.fwbs.nopipes @@ -1144,16 +1143,16 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): ) # Mass flow rate per coolant pipe - blanket_library.mfblktpo = ( - blanket_library.mflow_blkt_outboard_coolant - / blanket_library.n_blkt_outboard_channels + self.data.blanket.mfblktpo = ( + self.data.blanket.mflow_blkt_outboard_coolant + / self.data.blanket.n_blkt_outboard_channels ) - mfblktpo_liq = blanket_library.mfblkto_liq / npblkto_liq + mfblktpo_liq = self.data.blanket.mfblkto_liq / npblkto_liq # Coolant velocites in blanket (m/s) # Assume BZ structure has same channel width as FW - blanket_library.vel_blkt_outboard_coolant = self.flow_velocity( + self.data.blanket.vel_blkt_outboard_coolant = self.flow_velocity( i_channel_shape=1, - mass_flow_rate=blanket_library.mfblktpo, + mass_flow_rate=self.data.blanket.mfblktpo, flow_density=self.data.fwbs.den_blkt_coolant, ) velblkto_liq = self.flow_velocity( @@ -1166,14 +1165,14 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): # Calc total num of pipes (in all inboard modules) from # coolant frac and channel dimensions # Assumes up/down flow, two 90 deg bends per length - blanket_library.n_blkt_inboard_channels = ( + self.data.blanket.n_blkt_inboard_channels = ( self.data.fwbs.f_a_blkt_cooling_channels * self.data.fwbs.vol_blkt_inboard ) / ( np.pi * self.data.fwbs.radius_fw_channel * self.data.fwbs.radius_fw_channel - * blanket_library.len_blkt_inboard_channel_total + * self.data.blanket.len_blkt_inboard_channel_total ) # Have DEMO DCLL set here for now npblkti_liq = ( @@ -1183,22 +1182,24 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): ) # Mass flow rate per coolant pipe - blanket_library.mfblktpi = ( - blanket_library.mflow_blkt_inboard_coolant - / blanket_library.n_blkt_inboard_channels + self.data.blanket.mfblktpi = ( + self.data.blanket.mflow_blkt_inboard_coolant + / self.data.blanket.n_blkt_inboard_channels + ) + self.data.blanket.mfblktpi_liq = ( + self.data.blanket.mfblkti_liq / npblkti_liq ) - blanket_library.mfblktpi_liq = blanket_library.mfblkti_liq / npblkti_liq # Coolant velocites in blanket (m/s) # Assume BZ structure has same channel width as FW - blanket_library.vel_blkt_inboard_coolant = self.flow_velocity( + self.data.blanket.vel_blkt_inboard_coolant = self.flow_velocity( i_channel_shape=1, - mass_flow_rate=blanket_library.mfblktpi, + mass_flow_rate=self.data.blanket.mfblktpi, flow_density=self.data.fwbs.den_blkt_coolant, ) velblkti_liq = self.flow_velocity( i_channel_shape=2, - mass_flow_rate=blanket_library.mfblktpi_liq, + mass_flow_rate=self.data.blanket.mfblktpi_liq, flow_density=self.data.fwbs.den_liq, ) @@ -1207,14 +1208,14 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): # Calc total num of pipes (in all inboard modules) from # coolant frac and channel dimensions # Assumes up/down flow, two 90 deg bends per length - blanket_library.n_blkt_outboard_channels = ( + self.data.blanket.n_blkt_outboard_channels = ( self.data.fwbs.f_a_blkt_cooling_channels * self.data.fwbs.vol_blkt_outboard ) / ( np.pi * self.data.fwbs.radius_fw_channel * self.data.fwbs.radius_fw_channel - * blanket_library.len_blkt_outboard_channel_total + * self.data.blanket.len_blkt_outboard_channel_total ) npblkto_liq = ( self.data.fwbs.nopipes @@ -1223,29 +1224,29 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): ) # Mass flow rate per coolant pipe - blanket_library.mfblktpo = ( - blanket_library.mflow_blkt_outboard_coolant - / blanket_library.n_blkt_outboard_channels + self.data.blanket.mfblktpo = ( + self.data.blanket.mflow_blkt_outboard_coolant + / self.data.blanket.n_blkt_outboard_channels ) # Coolant velocity in blanket (m/s) # Assume BZ structure has same channel width as FW - blanket_library.vel_blkt_outboard_coolant = self.flow_velocity( + self.data.blanket.vel_blkt_outboard_coolant = self.flow_velocity( i_channel_shape=1, - mass_flow_rate=blanket_library.mfblktpo, + mass_flow_rate=self.data.blanket.mfblktpo, flow_density=self.data.fwbs.den_blkt_coolant, ) # Get mass flow rate etc. for inboard blanket breeder flow for tritium extraction # Use the number of desired recirculations ([Aub2013]=10) and mass from dcll_masses # N.B. wht_liq is BZ mass, does not include manifold. - blanket_library.mfblkto_liq = ( + self.data.blanket.mfblkto_liq = ( self.data.fwbs.n_liq_recirc * self.data.fwbs.wht_liq_ob ) / (24 * 3600) - blanket_library.mfblktpo_liq = blanket_library.mfblkto_liq / npblkto_liq + self.data.blanket.mfblktpo_liq = self.data.blanket.mfblkto_liq / npblkto_liq velblkto_liq = self.flow_velocity( i_channel_shape=2, - mass_flow_rate=blanket_library.mfblktpo_liq, + mass_flow_rate=self.data.blanket.mfblktpo_liq, flow_density=self.data.fwbs.den_liq, ) @@ -1253,14 +1254,14 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): # Calc total num of pipes (in all inboard modules) from # coolant frac and channel dimensions # Assumes up/down flow, two 90 deg bends per length - blanket_library.n_blkt_inboard_channels = ( + self.data.blanket.n_blkt_inboard_channels = ( self.data.fwbs.f_a_blkt_cooling_channels * self.data.fwbs.vol_blkt_inboard ) / ( np.pi * self.data.fwbs.radius_fw_channel * self.data.fwbs.radius_fw_channel - * blanket_library.len_blkt_inboard_channel_total + * self.data.blanket.len_blkt_inboard_channel_total ) # Have DEMO DCLL set here for now npblkti_liq = ( @@ -1270,29 +1271,31 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): ) # Mass flow rate per coolant pipe - blanket_library.mfblktpi = ( - blanket_library.mflow_blkt_inboard_coolant - / blanket_library.n_blkt_inboard_channels + self.data.blanket.mfblktpi = ( + self.data.blanket.mflow_blkt_inboard_coolant + / self.data.blanket.n_blkt_inboard_channels ) # Coolant velocity in blanket (m/s) # Assume BZ structure has same channel width as FW - blanket_library.vel_blkt_inboard_coolant = self.flow_velocity( + self.data.blanket.vel_blkt_inboard_coolant = self.flow_velocity( i_channel_shape=1, - mass_flow_rate=blanket_library.mfblktpi, + mass_flow_rate=self.data.blanket.mfblktpi, flow_density=self.data.fwbs.den_blkt_coolant, ) # Get mass flow rate etc. for inboard blanket breeder flow for tritium extraction # Use the number of desired recirculations ([Aub2013]=10) and mass from dcll_masses # N.B. wht_liq is BZ mass, does not include manifold. - blanket_library.mfblkti_liq = ( + self.data.blanket.mfblkti_liq = ( self.data.fwbs.n_liq_recirc * self.data.fwbs.wht_liq_ib ) / (24 * 3600) - blanket_library.mfblktpi_liq = blanket_library.mfblkti_liq / npblkti_liq + self.data.blanket.mfblktpi_liq = ( + self.data.blanket.mfblkti_liq / npblkti_liq + ) velblkti_liq = self.flow_velocity( i_channel_shape=2, - mass_flow_rate=blanket_library.mfblktpi_liq, + mass_flow_rate=self.data.blanket.mfblktpi_liq, flow_density=self.data.fwbs.den_liq, ) @@ -1300,27 +1303,27 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): else: # Calculate total number of pipes (in all outboard modules) from coolant fraction and # channel dimensions (assumes up/down flow, two 90 deg bends per length) - blanket_library.n_blkt_outboard_channels = ( + self.data.blanket.n_blkt_outboard_channels = ( self.data.fwbs.f_a_blkt_cooling_channels * self.data.fwbs.vol_blkt_outboard ) / ( np.pi * self.data.fwbs.radius_fw_channel * self.data.fwbs.radius_fw_channel - * blanket_library.len_blkt_outboard_channel_total + * self.data.blanket.len_blkt_outboard_channel_total ) # Mass flow rate per coolant pipe - blanket_library.mfblktpo = ( - blanket_library.mflow_blkt_outboard_coolant - / blanket_library.n_blkt_outboard_channels + self.data.blanket.mfblktpo = ( + self.data.blanket.mflow_blkt_outboard_coolant + / self.data.blanket.n_blkt_outboard_channels ) # Coolant velocity in blanket (m/s) # Assume BZ structure has same channel width as FW - blanket_library.vel_blkt_outboard_coolant = self.flow_velocity( + self.data.blanket.vel_blkt_outboard_coolant = self.flow_velocity( i_channel_shape=1, - mass_flow_rate=blanket_library.mfblktpo, + mass_flow_rate=self.data.blanket.mfblktpo, flow_density=self.data.fwbs.den_blkt_coolant, ) @@ -1328,27 +1331,27 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): # Calc total num of pipes (in all inboard modules) from # coolant frac and channel dimensions # Assumes up/down flow, two 90 deg bends per length - blanket_library.n_blkt_inboard_channels = ( + self.data.blanket.n_blkt_inboard_channels = ( self.data.fwbs.f_a_blkt_cooling_channels * self.data.fwbs.vol_blkt_inboard ) / ( np.pi * self.data.fwbs.radius_fw_channel * self.data.fwbs.radius_fw_channel - * blanket_library.len_blkt_inboard_channel_total + * self.data.blanket.len_blkt_inboard_channel_total ) # Mass flow rate per coolant pipe - blanket_library.mfblktpi = ( - blanket_library.mflow_blkt_inboard_coolant - / blanket_library.n_blkt_inboard_channels + self.data.blanket.mfblktpi = ( + self.data.blanket.mflow_blkt_inboard_coolant + / self.data.blanket.n_blkt_inboard_channels ) # Coolant velocity in blanket (m/s) # Assume BZ structure has same channel width as FW - blanket_library.vel_blkt_inboard_coolant = self.flow_velocity( + self.data.blanket.vel_blkt_inboard_coolant = self.flow_velocity( i_channel_shape=1, - mass_flow_rate=blanket_library.mfblktpi, + mass_flow_rate=self.data.blanket.mfblktpi, flow_density=self.data.fwbs.den_blkt_coolant, ) @@ -1411,8 +1414,8 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): dpres_blkt_outboard_coolant = self.total_pressure_drop( output, icoolpump=1, - vel_coolant=blanket_library.vel_blkt_outboard_coolant, - len_pipe=blanket_library.len_blkt_outboard_channel_total, + vel_coolant=self.data.blanket.vel_blkt_outboard_coolant, + len_pipe=self.data.blanket.len_blkt_outboard_channel_total, n_pipe_90_deg_bends=N_BLKT_PIPE_90_DEG_BENDS, n_pipe_180_deg_bends=N_BLKT_PIPE_180_DEG_BENDS, den_coolant=self.data.fwbs.den_blkt_coolant, @@ -1427,8 +1430,8 @@ def thermo_hydraulic_model_pressure_drop_calculations(self, output: bool): dpres_blkt_inboard_coolant = self.total_pressure_drop( output, icoolpump=1, - vel_coolant=blanket_library.vel_blkt_inboard_coolant, - len_pipe=blanket_library.len_blkt_inboard_channel_total, + vel_coolant=self.data.blanket.vel_blkt_inboard_coolant, + len_pipe=self.data.blanket.len_blkt_inboard_channel_total, n_pipe_90_deg_bends=N_BLKT_PIPE_90_DEG_BENDS, n_pipe_180_deg_bends=N_BLKT_PIPE_180_DEG_BENDS, den_coolant=self.data.fwbs.den_blkt_coolant, @@ -2061,12 +2064,12 @@ def thermo_hydraulic_model(self, output: bool): # Pre calculations needed for thermo-hydraulic model # ###################################################### # IB/OB FW (MW) - blanket_library.p_fw_inboard_nuclear_heat_mw = ( + self.data.blanket.p_fw_inboard_nuclear_heat_mw = ( self.data.fwbs.p_fw_nuclear_heat_total_mw * self.data.first_wall.a_fw_inboard / self.data.first_wall.a_fw_total ) - blanket_library.p_fw_outboard_nuclear_heat_mw = ( + self.data.blanket.p_fw_outboard_nuclear_heat_mw = ( self.data.fwbs.p_fw_nuclear_heat_total_mw * self.data.first_wall.a_fw_outboard / self.data.first_wall.a_fw_total @@ -2076,14 +2079,14 @@ def thermo_hydraulic_model(self, output: bool): # Neutron power deposited in inboard blanket (MW) if self.data.fwbs.i_blkt_inboard == 1: - blanket_library.p_blkt_nuclear_heat_inboard_mw = ( + self.data.blanket.p_blkt_nuclear_heat_inboard_mw = ( self.data.fwbs.p_blkt_nuclear_heat_total_mw * self.data.fwbs.vol_blkt_inboard / self.data.fwbs.vol_blkt_total ) # Neutron power deposited in outboard blanket (MW) - blanket_library.p_blkt_nuclear_heat_outboard_mw = ( + self.data.blanket.p_blkt_nuclear_heat_outboard_mw = ( self.data.fwbs.p_blkt_nuclear_heat_total_mw * self.data.fwbs.vol_blkt_outboard / self.data.fwbs.vol_blkt_total @@ -2137,37 +2140,37 @@ def thermo_hydraulic_model(self, output: bool): # Fraction of heat to be removed by IB/OB FW if self.data.fwbs.i_blkt_dual_coolant == 2: f_nuc_fwi = ( - blanket_library.p_fw_inboard_nuclear_heat_mw + self.data.blanket.p_fw_inboard_nuclear_heat_mw + self.data.fwbs.psurffwi ) / ( - blanket_library.p_fw_inboard_nuclear_heat_mw + self.data.blanket.p_fw_inboard_nuclear_heat_mw + self.data.fwbs.psurffwi + pnucblkti_struct ) f_nuc_fwo = ( - blanket_library.p_fw_outboard_nuclear_heat_mw + self.data.blanket.p_fw_outboard_nuclear_heat_mw + self.data.fwbs.psurffwo ) / ( - blanket_library.p_fw_outboard_nuclear_heat_mw + self.data.blanket.p_fw_outboard_nuclear_heat_mw + self.data.fwbs.psurffwo + pnucblkto_struct ) else: f_nuc_fwi = ( - blanket_library.p_fw_inboard_nuclear_heat_mw + self.data.blanket.p_fw_inboard_nuclear_heat_mw + self.data.fwbs.psurffwi ) / ( - blanket_library.p_fw_inboard_nuclear_heat_mw + self.data.blanket.p_fw_inboard_nuclear_heat_mw + self.data.fwbs.psurffwi - + blanket_library.p_blkt_nuclear_heat_inboard_mw + + self.data.blanket.p_blkt_nuclear_heat_inboard_mw ) f_nuc_fwo = ( - blanket_library.p_fw_outboard_nuclear_heat_mw + self.data.blanket.p_fw_outboard_nuclear_heat_mw + self.data.fwbs.psurffwo ) / ( - blanket_library.p_fw_outboard_nuclear_heat_mw + self.data.blanket.p_fw_outboard_nuclear_heat_mw + self.data.fwbs.psurffwo - + blanket_library.p_blkt_nuclear_heat_outboard_mw + + self.data.blanket.p_blkt_nuclear_heat_outboard_mw ) # Outlet FW/inlet BB temp (mass flow FW = mass flow BB) @@ -2198,56 +2201,57 @@ def thermo_hydraulic_model(self, output: bool): # pipes, manifolds etc. The outputs are mid quantities of inlet and outlet. # This subroutine recalculates cp and rhof. ( - blanket_library.temp_fw_inboard_peak, + self.data.blanket.temp_fw_inboard_peak, _, _, - blanket_library.mflow_fw_inboard_coolant_channel, + self.data.blanket.mflow_fw_inboard_coolant_channel, ) = self.fw.fw_temp( output, self.data.fwbs.radius_fw_channel, build_variables.dr_fw_inboard, self.data.first_wall.a_fw_inboard, self.data.fwbs.psurffwi, - blanket_library.p_fw_inboard_nuclear_heat_mw, + self.data.blanket.p_fw_inboard_nuclear_heat_mw, "Inboard first wall", ) ( - blanket_library.temp_fw_outboard_peak, + self.data.blanket.temp_fw_outboard_peak, _cf, _rhof, - blanket_library.mflow_fw_outboard_coolant_channel, + self.data.blanket.mflow_fw_outboard_coolant_channel, ) = self.fw.fw_temp( output, self.data.fwbs.radius_fw_channel, build_variables.dr_fw_outboard, self.data.first_wall.a_fw_outboard, self.data.fwbs.psurffwo, - blanket_library.p_fw_outboard_nuclear_heat_mw, + self.data.blanket.p_fw_outboard_nuclear_heat_mw, "Outboard first wall", ) # Peak first wall temperature (K) self.data.fwbs.temp_fw_peak = max( - blanket_library.temp_fw_inboard_peak, blanket_library.temp_fw_outboard_peak + self.data.blanket.temp_fw_inboard_peak, + self.data.blanket.temp_fw_outboard_peak, ) # Total mass flow rate to remove inboard FW power (kg/s) - blanket_library.mflow_fw_inboard_coolant_total = ( + self.data.blanket.mflow_fw_inboard_coolant_total = ( 1.0e6 - * (blanket_library.p_fw_inboard_nuclear_heat_mw + self.data.fwbs.psurffwi) + * (self.data.blanket.p_fw_inboard_nuclear_heat_mw + self.data.fwbs.psurffwi) / (self.data.fwbs.cp_fw * (fwoutleti - self.data.fwbs.temp_fw_coolant_in)) ) # Total mass flow rate to remove outboard FW power (kg/s) - blanket_library.mflow_fw_outboard_coolant_total = ( + self.data.blanket.mflow_fw_outboard_coolant_total = ( 1.0e6 - * (blanket_library.p_fw_outboard_nuclear_heat_mw + self.data.fwbs.psurffwo) + * (self.data.blanket.p_fw_outboard_nuclear_heat_mw + self.data.fwbs.psurffwo) / (self.data.fwbs.cp_fw * (fwoutleto - self.data.fwbs.temp_fw_coolant_in)) ) # If the blanket is dual-coolant... if self.data.fwbs.i_blkt_dual_coolant == 2: # Mass flow rates for outboard blanket coolants (kg/s) - blanket_library.mflow_blkt_outboard_coolant = ( + self.data.blanket.mflow_blkt_outboard_coolant = ( 1.0e6 * (pnucblkto_struct) / ( @@ -2255,7 +2259,7 @@ def thermo_hydraulic_model(self, output: bool): * (self.data.fwbs.temp_blkt_coolant_out - inlet_tempo) ) ) - blanket_library.mfblkto_liq = ( + self.data.blanket.mfblkto_liq = ( 1.0e6 * (pnucblkto_liq) / ( @@ -2267,7 +2271,7 @@ def thermo_hydraulic_model(self, output: bool): # If there is an IB blanket... if self.data.fwbs.i_blkt_inboard == 1: # Mass flow rates for inboard blanket coolants (kg/s) - blanket_library.mflow_blkt_inboard_coolant = ( + self.data.blanket.mflow_blkt_inboard_coolant = ( 1.0e6 * (pnucblkti_struct) / ( @@ -2275,7 +2279,7 @@ def thermo_hydraulic_model(self, output: bool): * (self.data.fwbs.temp_blkt_coolant_out - inlet_tempi) ) ) - blanket_library.mfblkti_liq = ( + self.data.blanket.mfblkti_liq = ( 1.0e6 * (pnucblkti_liq) / ( @@ -2290,9 +2294,9 @@ def thermo_hydraulic_model(self, output: bool): # If the blanket is single-coolant with liquid metal breeder... elif self.data.fwbs.i_blkt_dual_coolant == 1: # Mass flow rate for outboard blanket coolant (kg/s) - blanket_library.mflow_blkt_outboard_coolant = ( + self.data.blanket.mflow_blkt_outboard_coolant = ( 1.0e6 - * (blanket_library.p_blkt_nuclear_heat_outboard_mw) + * (self.data.blanket.p_blkt_nuclear_heat_outboard_mw) / ( self.data.fwbs.cp_bl * (self.data.fwbs.temp_blkt_coolant_out - inlet_tempo) @@ -2302,16 +2306,16 @@ def thermo_hydraulic_model(self, output: bool): # Get mass flow rate etc. for inboard blanket breeder flow for tritium extraction # Use the number of desired recirculations ([Aub2013]=10) and mass from dcll_masses # N.B. wht_liq is BZ mass, does not include manifold. - blanket_library.mfblkto_liq = ( + self.data.blanket.mfblkto_liq = ( self.data.fwbs.n_liq_recirc * self.data.fwbs.wht_liq_ob ) / (24 * 3600) # If there is an IB blanket... if self.data.fwbs.i_blkt_inboard == 1: # Mass flow rate for inboard blanket coolant (kg/s) - blanket_library.mflow_blkt_inboard_coolant = ( + self.data.blanket.mflow_blkt_inboard_coolant = ( 1.0e6 - * (blanket_library.p_blkt_nuclear_heat_inboard_mw) + * (self.data.blanket.p_blkt_nuclear_heat_inboard_mw) / ( self.data.fwbs.cp_bl * (self.data.fwbs.temp_blkt_coolant_out - inlet_tempi) @@ -2325,9 +2329,9 @@ def thermo_hydraulic_model(self, output: bool): # If the blanket is single-coolant with solid breeder... else: # Mass flow rate for inboard blanket coolant (kg/s) - blanket_library.mflow_blkt_outboard_coolant = ( + self.data.blanket.mflow_blkt_outboard_coolant = ( 1.0e6 - * (blanket_library.p_blkt_nuclear_heat_outboard_mw) + * (self.data.blanket.p_blkt_nuclear_heat_outboard_mw) / ( self.data.fwbs.cp_bl * (self.data.fwbs.temp_blkt_coolant_out - inlet_tempo) @@ -2337,9 +2341,9 @@ def thermo_hydraulic_model(self, output: bool): # If there is an IB blanket... # Mass flow rate for inboard blanket coolant (kg/s) if self.data.fwbs.i_blkt_inboard == 1: - blanket_library.mflow_blkt_inboard_coolant = ( + self.data.blanket.mflow_blkt_inboard_coolant = ( 1.0e6 - * (blanket_library.p_blkt_nuclear_heat_inboard_mw) + * (self.data.blanket.p_blkt_nuclear_heat_inboard_mw) / ( self.data.fwbs.cp_bl * (self.data.fwbs.temp_blkt_coolant_out - inlet_tempi) @@ -2384,9 +2388,9 @@ def thermo_hydraulic_model(self, output: bool): ): deltap_fw_blkt = primary_pumping_variables.dp_fw_blkt # Total coolant mass flow rate in the first wall/blanket (kg/s) - blanket_library.mftotal = ( - blanket_library.mflow_fw_inboard_coolant_total - + blanket_library.mflow_fw_outboard_coolant_total + self.data.blanket.mftotal = ( + self.data.blanket.mflow_fw_inboard_coolant_total + + self.data.blanket.mflow_fw_outboard_coolant_total ) # Total mechanical pumping power (MW) @@ -2398,7 +2402,7 @@ def thermo_hydraulic_model(self, output: bool): temp_coolant_pump_inlet=self.data.fwbs.temp_blkt_coolant_out, pres_coolant_pump_inlet=self.data.fwbs.pres_fw_coolant, dpres_coolant=deltap_fw_blkt, - mflow_coolant_total=blanket_library.mftotal, + mflow_coolant_total=self.data.blanket.mftotal, primary_coolant_switch=self.data.fwbs.i_fw_coolant_type, den_coolant=self.data.fwbs.den_fw_coolant, label="First Wall and Blanket", @@ -2427,14 +2431,14 @@ def thermo_hydraulic_model(self, output: bool): deltap_blkt = primary_pumping_variables.dp_blkt # Total coolant mass flow rate in the first wall (kg/s) - blanket_library.mflow_fw_coolant_total = ( - blanket_library.mflow_fw_inboard_coolant_total - + blanket_library.mflow_fw_outboard_coolant_total + self.data.blanket.mflow_fw_coolant_total = ( + self.data.blanket.mflow_fw_inboard_coolant_total + + self.data.blanket.mflow_fw_outboard_coolant_total ) # Total coolant mass flow rate in the blanket (kg/s) - blanket_library.mflow_blkt_coolant_total = ( - blanket_library.mflow_blkt_inboard_coolant - + blanket_library.mflow_blkt_outboard_coolant + self.data.blanket.mflow_blkt_coolant_total = ( + self.data.blanket.mflow_blkt_inboard_coolant + + self.data.blanket.mflow_blkt_outboard_coolant ) # Mechanical pumping power for the first wall (MW) @@ -2445,7 +2449,7 @@ def thermo_hydraulic_model(self, output: bool): temp_coolant_pump_inlet=self.data.fwbs.temp_fw_coolant_out, pres_coolant_pump_inlet=self.data.fwbs.pres_fw_coolant, dpres_coolant=deltap_fw, - mflow_coolant_total=blanket_library.mflow_fw_coolant_total, + mflow_coolant_total=self.data.blanket.mflow_fw_coolant_total, primary_coolant_switch=self.data.fwbs.i_fw_coolant_type, den_coolant=self.data.fwbs.den_fw_coolant, label="First Wall", @@ -2459,7 +2463,7 @@ def thermo_hydraulic_model(self, output: bool): temp_coolant_pump_inlet=self.data.fwbs.temp_blkt_coolant_out, pres_coolant_pump_inlet=self.data.fwbs.pres_blkt_coolant, dpres_coolant=deltap_blkt, - mflow_coolant_total=blanket_library.mflow_blkt_coolant_total, + mflow_coolant_total=self.data.blanket.mflow_blkt_coolant_total, primary_coolant_switch=( "Helium" if self.data.fwbs.i_blkt_coolant_type == 1 else "Water" ), @@ -2487,8 +2491,8 @@ def thermo_hydraulic_model(self, output: bool): ): deltap_bl_liq = primary_pumping_variables.dp_liq # Total liquid metal breeder/coolant mass flow rate in the blanket (kg/s) - blanket_library.mfblkt_liq = ( - blanket_library.mfblkti_liq + blanket_library.mfblkto_liq + self.data.blanket.mfblkt_liq = ( + self.data.blanket.mfblkti_liq + self.data.blanket.mfblkto_liq ) # Mechanical pumping power for the blanket (MW) @@ -2499,7 +2503,7 @@ def thermo_hydraulic_model(self, output: bool): temp_coolant_pump_inlet=self.data.fwbs.outlet_temp_liq, pres_coolant_pump_inlet=self.data.fwbs.blpressure_liq, dpres_coolant=deltap_bl_liq, - mflow_coolant_total=blanket_library.mfblkt_liq, + mflow_coolant_total=self.data.blanket.mfblkt_liq, primary_coolant_switch=( "Helium" if self.data.fwbs.i_blkt_coolant_type == 1 else "Water" ), @@ -2574,7 +2578,7 @@ def thermo_hydraulic_model(self, output: bool): self.outfile, "First wall coolant mass flow rate (kg/s)", "(mflow_fw_coolant_total)", - blanket_library.mflow_fw_coolant_total, + self.data.blanket.mflow_fw_coolant_total, "OP ", ) po.ovarrf( @@ -2597,7 +2601,7 @@ def thermo_hydraulic_model(self, output: bool): self.outfile, "Blanket half height (m)", "(dz_blkt_half)", - blanket_library.dz_blkt_half, + self.data.blanket.dz_blkt_half, ) po.ovarin( self.outfile, @@ -2631,7 +2635,7 @@ def thermo_hydraulic_model(self, output: bool): self.outfile, "Blanket coolant mass flow rate (kg/s)", "(mflow_blkt_coolant_total)", - blanket_library.mflow_blkt_coolant_total, + self.data.blanket.mflow_blkt_coolant_total, "OP ", ) @@ -2644,7 +2648,7 @@ def thermo_hydraulic_model(self, output: bool): self.outfile, "Total (FW+BB) primary coolant mass flow rate(kg/s)", "(mftotal)", - blanket_library.mftotal, + self.data.blanket.mftotal, "OP ", ) @@ -2688,7 +2692,7 @@ def thermo_hydraulic_model(self, output: bool): self.outfile, "Blanket liquid breeder mass flow rate (kg/s)", "(mfblkt_liq)", - blanket_library.mfblkt_liq, + self.data.blanket.mfblkt_liq, "OP ", ) diff --git a/process/models/blankets/dcll.py b/process/models/blankets/dcll.py index a2c948fa57..a2bc1a30a5 100644 --- a/process/models/blankets/dcll.py +++ b/process/models/blankets/dcll.py @@ -2,7 +2,6 @@ from process.core import ( process_output as po, ) -from process.data_structure import blanket_library as blanket_variables from process.data_structure import ( build_variables, current_drive_variables, @@ -110,13 +109,13 @@ def run(self, output: bool = False): self.set_blanket_module_geometry() - blanket_variables.len_blkt_inboard_segment_toroidal = self.calculate_blanket_inboard_module_geometry( + self.data.blanket.len_blkt_inboard_segment_toroidal = self.calculate_blanket_inboard_module_geometry( n_blkt_inboard_modules_toroidal=self.data.fwbs.n_blkt_inboard_modules_toroidal, rmajor=physics_variables.rmajor, rminor=physics_variables.rminor, dr_fw_plasma_gap_inboard=build_variables.dr_fw_plasma_gap_inboard, ) - blanket_variables.len_blkt_outboard_segment_toroidal = self.calculate_blanket_outboard_module_geometry( + self.data.blanket.len_blkt_outboard_segment_toroidal = self.calculate_blanket_outboard_module_geometry( n_blkt_outboard_modules_toroidal=self.data.fwbs.n_blkt_outboard_modules_toroidal, rmajor=physics_variables.rmajor, rminor=physics_variables.rminor, diff --git a/process/models/blankets/hcpb.py b/process/models/blankets/hcpb.py index 4a8bb4fb84..d770cdef03 100644 --- a/process/models/blankets/hcpb.py +++ b/process/models/blankets/hcpb.py @@ -2,7 +2,6 @@ import numpy as np -import process.data_structure.blanket_library as blanket_vars from process.core import constants from process.core import ( process_output as po, @@ -66,13 +65,13 @@ def run(self, output: bool = False): self.set_blanket_module_geometry() - blanket_vars.len_blkt_inboard_segment_toroidal = self.calculate_blanket_inboard_module_geometry( + self.data.blanket.len_blkt_inboard_segment_toroidal = self.calculate_blanket_inboard_module_geometry( n_blkt_inboard_modules_toroidal=self.data.fwbs.n_blkt_inboard_modules_toroidal, rmajor=physics_variables.rmajor, rminor=physics_variables.rminor, dr_fw_plasma_gap_inboard=build_variables.dr_fw_plasma_gap_inboard, ) - blanket_vars.len_blkt_outboard_segment_toroidal = self.calculate_blanket_outboard_module_geometry( + self.data.blanket.len_blkt_outboard_segment_toroidal = self.calculate_blanket_outboard_module_geometry( n_blkt_outboard_modules_toroidal=self.data.fwbs.n_blkt_outboard_modules_toroidal, rmajor=physics_variables.rmajor, rminor=physics_variables.rminor, @@ -1566,7 +1565,7 @@ def write_output(self): self.outfile, "Blanket half height (m)", "(dz_blkt_half)", - blanket_vars.dz_blkt_half, + self.data.blanket.dz_blkt_half, ) po.ovarre( self.outfile, diff --git a/process/models/cryostat.py b/process/models/cryostat.py index 72aa95d7bc..b8311621f9 100644 --- a/process/models/cryostat.py +++ b/process/models/cryostat.py @@ -4,7 +4,6 @@ from process.core import process_output as po from process.core.model import Model from process.data_structure import ( - blanket_library, build_variables, buildings_variables, pfcoil_variables, @@ -39,7 +38,7 @@ def external_cryo_geometry(self): # Clearance between uppermost PF coil and cryostat lid [m]. # Scaling from ITER by M. Kovari - blanket_library.dz_pf_cryostat = ( + self.data.blanket.dz_pf_cryostat = ( build_variables.f_z_cryostat * (2.0 * self.data.fwbs.r_cryostat_inboard) / 28.440 @@ -48,7 +47,7 @@ def external_cryo_geometry(self): # Half-height of cryostat [m] # Take height of furthest PF coil and add clearance self.data.fwbs.z_cryostat_half_inside = ( - np.max(pfcoil_variables.z_pf_coil_upper) + blanket_library.dz_pf_cryostat + np.max(pfcoil_variables.z_pf_coil_upper) + self.data.blanket.dz_pf_cryostat ) # Vertical clearance between TF coil and cryostat (m) @@ -109,7 +108,7 @@ def output(self): self.outfile, "Vertical clearance from highest PF coil to cryostat (m)", "(dz_pf_cryostat)", - blanket_library.dz_pf_cryostat, + self.data.blanket.dz_pf_cryostat, "OP ", ) po.ovarrf( diff --git a/process/models/fw.py b/process/models/fw.py index c98b72e86b..5dbc859ef2 100644 --- a/process/models/fw.py +++ b/process/models/fw.py @@ -8,7 +8,6 @@ from process.core.exceptions import ProcessValueError from process.core.model import Model from process.data_structure import ( - blanket_library, build_variables, constraint_variables, divertor_variables, @@ -98,8 +97,8 @@ def run(self): ) ( - blanket_library.n_fw_inboard_channels, - blanket_library.n_fw_outboard_channels, + self.data.blanket.n_fw_inboard_channels, + self.data.blanket.n_fw_outboard_channels, ) = self.calculate_total_fw_channels( self.data.first_wall.a_fw_inboard, self.data.first_wall.a_fw_outboard, @@ -744,14 +743,14 @@ def output_fw_geometry(self): self.outfile, "Number of inboard first wall cooling channels", "(n_fw_inboard_channels)", - blanket_library.n_fw_inboard_channels, + self.data.blanket.n_fw_inboard_channels, "OP ", ) po.ovarrf( self.outfile, "Number of outboard first wall cooling channels", "(n_fw_outboard_channels)", - blanket_library.n_fw_outboard_channels, + self.data.blanket.n_fw_outboard_channels, "OP ", ) diff --git a/process/models/shield.py b/process/models/shield.py index 3080a56823..63082cac7f 100644 --- a/process/models/shield.py +++ b/process/models/shield.py @@ -4,7 +4,6 @@ from process.core import process_output as po from process.core.model import Model from process.data_structure import ( - blanket_library, build_variables, divertor_variables, physics_variables, @@ -28,7 +27,7 @@ def output(self): self.output_shld_areas_and_volumes() def run(self): - blanket_library.dz_shld_half = self.calculate_shield_half_height( + self.data.blanket.dz_shld_half = self.calculate_shield_half_height( z_plasma_xpoint_lower=build_variables.z_plasma_xpoint_lower, dz_xpoint_divertor=build_variables.dz_xpoint_divertor, dz_divertor=divertor_variables.dz_divertor, @@ -59,12 +58,12 @@ def run(self): dr_fw_outboard=build_variables.dr_fw_outboard, dr_blkt_inboard=build_variables.dr_blkt_inboard, dr_blkt_outboard=build_variables.dr_blkt_outboard, - dz_shld_half=blanket_library.dz_shld_half, + dz_shld_half=self.data.blanket.dz_shld_half, ) ( - blanket_library.vol_shld_inboard, - blanket_library.vol_shld_outboard, + self.data.blanket.vol_shld_inboard, + self.data.blanket.vol_shld_outboard, self.data.fwbs.vol_shld_total, ) = self.calculate_dshaped_shield_volumes( r_shld_inboard_inner=build_variables.r_shld_inboard_inner, @@ -76,7 +75,7 @@ def run(self): dr_fw_outboard=build_variables.dr_fw_outboard, dr_blkt_inboard=build_variables.dr_blkt_inboard, dr_blkt_outboard=build_variables.dr_blkt_outboard, - dz_shld_half=blanket_library.dz_shld_half, + dz_shld_half=self.data.blanket.dz_shld_half, dr_shld_outboard=build_variables.dr_shld_outboard, dz_shld_upper=build_variables.dz_shld_upper, ) @@ -93,13 +92,13 @@ def run(self): triang=physics_variables.triang, dr_shld_inboard=build_variables.dr_shld_inboard, rminor=physics_variables.rminor, - dz_shld_half=blanket_library.dz_shld_half, + dz_shld_half=self.data.blanket.dz_shld_half, dr_shld_outboard=build_variables.dr_shld_outboard, ) ( - blanket_library.vol_shld_inboard, - blanket_library.vol_shld_outboard, + self.data.blanket.vol_shld_inboard, + self.data.blanket.vol_shld_outboard, self.data.fwbs.vol_shld_total, ) = self.calculate_elliptical_shield_volumes( r_shld_inboard_inner=build_variables.r_shld_inboard_inner, @@ -108,7 +107,7 @@ def run(self): triang=physics_variables.triang, dr_shld_inboard=build_variables.dr_shld_inboard, rminor=physics_variables.rminor, - dz_shld_half=blanket_library.dz_shld_half, + dz_shld_half=self.data.blanket.dz_shld_half, dr_shld_outboard=build_variables.dr_shld_outboard, dz_shld_upper=build_variables.dz_shld_upper, ) @@ -125,14 +124,14 @@ def run(self): + build_variables.a_shld_outboard_surface ) - blanket_library.vol_shld_inboard = ( - self.data.fwbs.fvolsi * blanket_library.vol_shld_inboard + self.data.blanket.vol_shld_inboard = ( + self.data.fwbs.fvolsi * self.data.blanket.vol_shld_inboard ) - blanket_library.vol_shld_outboard = ( - self.data.fwbs.fvolso * blanket_library.vol_shld_outboard + self.data.blanket.vol_shld_outboard = ( + self.data.fwbs.fvolso * self.data.blanket.vol_shld_outboard ) self.data.fwbs.vol_shld_total = ( - blanket_library.vol_shld_inboard + blanket_library.vol_shld_outboard + self.data.blanket.vol_shld_inboard + self.data.blanket.vol_shld_outboard ) @staticmethod @@ -459,14 +458,14 @@ def output_shld_areas_and_volumes(self): self.outfile, "Volume of inboard shield (m^3)", "(vol_shld_inboard)", - blanket_library.vol_shld_inboard, + self.data.blanket.vol_shld_inboard, "OP ", ) po.ovarrf( self.outfile, "Volume of outboard shield (m^3)", "(vol_shld_outboard)", - blanket_library.vol_shld_outboard, + self.data.blanket.vol_shld_outboard, "OP ", ) po.ovarrf( diff --git a/process/models/vacuum.py b/process/models/vacuum.py index efd0a7cd43..0dd1494de4 100644 --- a/process/models/vacuum.py +++ b/process/models/vacuum.py @@ -7,7 +7,6 @@ from process.core import process_output as po from process.core.model import Model from process.data_structure import ( - blanket_library, build_variables, divertor_variables, physics_variables, @@ -724,7 +723,7 @@ def __init__(self): self.outfile = constants.NOUT def run(self): - blanket_library.dz_vv_half = self.calculate_vessel_half_height( + self.data.blanket.dz_vv_half = self.calculate_vessel_half_height( z_tf_inside_half=build_variables.z_tf_inside_half, dz_shld_vv_gap=build_variables.dz_shld_vv_gap, dz_vv_lower=build_variables.dz_vv_lower, @@ -743,13 +742,13 @@ def run(self): or self.data.fwbs.i_fw_blkt_vv_shape == FwBlktVVShape.D_SHAPED ): ( - blanket_library.vol_vv_inboard, - blanket_library.vol_vv_outboard, + self.data.blanket.vol_vv_inboard, + self.data.blanket.vol_vv_outboard, self.data.fwbs.vol_vv, ) = self.calculate_dshaped_vessel_volumes( r_shld_inboard_inner=build_variables.r_shld_inboard_inner, r_shld_outboard_outer=build_variables.r_shld_outboard_outer, - dz_vv_half=blanket_library.dz_vv_half, + dz_vv_half=self.data.blanket.dz_vv_half, dr_vv_inboard=build_variables.dr_vv_inboard, dr_vv_outboard=build_variables.dr_vv_outboard, dz_vv_upper=build_variables.dz_vv_upper, @@ -757,8 +756,8 @@ def run(self): ) else: ( - blanket_library.vol_vv_inboard, - blanket_library.vol_vv_outboard, + self.data.blanket.vol_vv_inboard, + self.data.blanket.vol_vv_outboard, self.data.fwbs.vol_vv, ) = self.calculate_elliptical_vessel_volumes( rmajor=physics_variables.rmajor, @@ -766,7 +765,7 @@ def run(self): triang=physics_variables.triang, r_shld_inboard_inner=build_variables.r_shld_inboard_inner, r_shld_outboard_outer=build_variables.r_shld_outboard_outer, - dz_vv_half=blanket_library.dz_vv_half, + dz_vv_half=self.data.blanket.dz_vv_half, dr_vv_inboard=build_variables.dr_vv_inboard, dr_vv_outboard=build_variables.dr_vv_outboard, dz_vv_upper=build_variables.dz_vv_upper, @@ -958,14 +957,14 @@ def output(self): self.outfile, "Volume of inboard vacuum vessel (m^3)", "(vol_vv_inboard)", - blanket_library.vol_vv_inboard, + self.data.blanket.vol_vv_inboard, "OP ", ) po.ovarrf( self.outfile, "Volume of outboard vacuum vessel (m^3)", "(vol_vv_outboard)", - blanket_library.vol_vv_outboard, + self.data.blanket.vol_vv_outboard, "OP ", ) po.ovarrf( diff --git a/tests/unit/models/test_cryostat.py b/tests/unit/models/test_cryostat.py index 2ac6ddc2a5..99567794f9 100644 --- a/tests/unit/models/test_cryostat.py +++ b/tests/unit/models/test_cryostat.py @@ -4,7 +4,6 @@ import pytest from process.data_structure import ( - blanket_library, build_variables, buildings_variables, pfcoil_variables, @@ -201,7 +200,9 @@ def test_external_cryo_geometry( buildings_variables, "dz_tf_cryostat", externalcryogeometryparam.dz_tf_cryostat ) monkeypatch.setattr( - blanket_library, "dz_pf_cryostat", externalcryogeometryparam.dz_pf_cryostat + cryostat_fixture.data.blanket, + "dz_pf_cryostat", + externalcryogeometryparam.dz_pf_cryostat, ) cryostat_fixture.external_cryo_geometry() @@ -221,6 +222,6 @@ def test_external_cryo_geometry( assert buildings_variables.dz_tf_cryostat == pytest.approx( externalcryogeometryparam.expected_dz_tf_cryostat ) - assert blanket_library.dz_pf_cryostat == pytest.approx( + assert cryostat_fixture.data.blanket.dz_pf_cryostat == pytest.approx( externalcryogeometryparam.expected_dz_pf_cryostat )