! This library contains routines that can be shared by the blanket modules used in PROCESS.
! These include: ! - component_volumes ! - component_masses ! - thermo_hydraulic_model
! author: G Graham, CCFE, Culham Science Centre
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
! VOLUME CALCULATIONS ! component_volumes: ! - component_half_height ! - dshaped_component ! - elliptical_component ! - apply_coverage_factors ! - external_cryo_geometry
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! MASS CALCULATIONS ! component_masses !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! THERMOHYDRAUIC CALCULATIONS ! thermo_hydraulic_model: ! - blanket_mod_pol_height ! - flow_velocity ! - liquid_breeder_properties ! - primary_coolant_properties ! - hydraulic_diameter ! - elbow_coeff ! - pressure_drop ! - liquid_breeder_pressure_drop_mhd ! - deltap_tot ! - pumppower !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=dp), | public | :: | volshldi | Volume of inboard and outboard shield (m3) |
|||
real(kind=dp), | public | :: | volshldo | Volume of inboard and outboard shield (m3) |
|||
real(kind=dp), | public | :: | volvvi | Volume of inboard and outboard Vacuum Vessel (m3) |
|||
real(kind=dp), | public | :: | volvvo | Volume of inboard and outboard Vacuum Vessel (m3) |
|||
real(kind=dp), | public | :: | hcryopf | Clearance between uppermost PF coil and cryostat lid (m) |
|||
real(kind=dp), | public | :: | vfblkti | Inboard/outboard void fraction of blanket |
|||
real(kind=dp), | public | :: | vfblkto | Inboard/outboard void fraction of blanket |
|||
real(kind=dp), | public | :: | bldepti | Inboard/outboard blanket coolant channel length (radial direction) (m) |
|||
real(kind=dp), | public | :: | bldepto | Inboard/outboard blanket coolant channel length (radial direction) (m) |
|||
real(kind=dp), | public | :: | blwidti | Inboard/outboard blanket mid-plan toroidal circumference for segment (m) |
|||
real(kind=dp), | public | :: | blwidto | Inboard/outboard blanket mid-plan toroidal circumference for segment (m) |
|||
real(kind=dp), | public | :: | bllengi | Inboard/outboard blanket segment poloidal length (m) |
|||
real(kind=dp), | public | :: | bllengo | Inboard/outboard blanket segment poloidal length (m) |
|||
real(kind=dp), | public | :: | bzfllengi | Inboard/outboard primary blanket flow lengths (m) |
|||
real(kind=dp), | public | :: | bzfllengo | Inboard/outboard primary blanket flow lengths (m) |
|||
real(kind=dp), | public | :: | bzfllengi_liq | Inboard/outboard secondary blanket flow lengths (m) |
|||
real(kind=dp), | public | :: | bzfllengo_liq | Inboard/outboard secondary blanket flow lengths (m) |
|||
real(kind=dp), | public | :: | pnucfwi | Inboard/outboard first wall nuclear heating (MW) |
|||
real(kind=dp), | public | :: | pnucfwo | Inboard/outboard first wall nuclear heating (MW) |
|||
real(kind=dp), | public | :: | tpeakfwi | Inboard/outboard first wall peak temperature (K) |
|||
real(kind=dp), | public | :: | tpeakfwo | Inboard/outboard first wall peak temperature (K) |
|||
real(kind=dp), | public | :: | mffwi | Inboard/outboard total mass flow rate to remove inboard FW power (kg/s) |
|||
real(kind=dp), | public | :: | mffwo | Inboard/outboard total mass flow rate to remove inboard FW power (kg/s) |
|||
real(kind=dp), | public | :: | mffw | Inboard/outboard total mass flow rate to remove inboard FW power (kg/s) |
|||
real(kind=dp), | public | :: | npfwi | Inboard/utboard total number of pipes |
|||
real(kind=dp), | public | :: | npfwo | Inboard/utboard total number of pipes |
|||
real(kind=dp), | public | :: | mffwpi | Inboard/outboard mass flow rate per coolant pipe (kg/s) |
|||
real(kind=dp), | public | :: | mffwpo | Inboard/outboard mass flow rate per coolant pipe (kg/s) |
|||
real(kind=dp), | public | :: | pnucblkti | Neutron power deposited inboard/outboard blanket blanket (MW) |
|||
real(kind=dp), | public | :: | pnucblkto | Neutron power deposited inboard/outboard blanket blanket (MW) |
|||
real(kind=dp), | public | :: | mfblkti | Inboard/outboard blanket mass flow rate for coolant (kg/s) |
|||
real(kind=dp), | public | :: | mfblkto | Inboard/outboard blanket mass flow rate for coolant (kg/s) |
|||
real(kind=dp), | public | :: | mfblkt | Inboard/outboard blanket mass flow rate for coolant (kg/s) |
|||
real(kind=dp), | public | :: | mfblkti_liq | Inboard/outboard blanket mass flow rate for liquid breeder (kg/s) |
|||
real(kind=dp), | public | :: | mfblkto_liq | Inboard/outboard blanket mass flow rate for liquid breeder (kg/s) |
|||
real(kind=dp), | public | :: | mfblkt_liq | Inboard/outboard blanket mass flow rate for liquid breeder (kg/s) |
|||
real(kind=dp), | public | :: | mftotal | Total mass flow rate for coolant (kg/s) |
|||
real(kind=dp), | public | :: | npblkti | Inboard/outboard total num of pipes |
|||
real(kind=dp), | public | :: | npblkto | Inboard/outboard total num of pipes |
|||
real(kind=dp), | public | :: | mfblktpi | Inboard/outboard mass flow rate per coolant pipe (kg/s) |
|||
real(kind=dp), | public | :: | mfblktpo | Inboard/outboard mass flow rate per coolant pipe (kg/s) |
|||
real(kind=dp), | public | :: | velblkti | Inboard/outboard coolant velocity in blanket (m/s) |
|||
real(kind=dp), | public | :: | velblkto | Inboard/outboard coolant velocity in blanket (m/s) |
|||
real(kind=dp), | public | :: | htpmw_fwi | Inboard/outboard first wall pumping power (MW) |
|||
real(kind=dp), | public | :: | htpmw_fwo | Inboard/outboard first wall pumping power (MW) |
|||
real(kind=dp), | public | :: | htpmw_blkti | Inboard/outboard blanket pumping power (MW) |
|||
real(kind=dp), | public | :: | htpmw_blkto | Inboard/outboard blanket pumping power (MW) |
|||
real(kind=dp), | public | :: | htpmw_fw_blkti | Inboard/outboard fw and blanket pumping power (MW) |
|||
real(kind=dp), | public | :: | htpmw_fw_blkto | Inboard/outboard fw and blanket pumping power (MW) |
|||
real(kind=dp), | public | :: | hblnkt | Blanket internal half-height (m) |
|||
real(kind=dp), | public | :: | hshld | Shield internal half-height (m) |
|||
real(kind=dp), | public | :: | hvv | Vacuum vessel internal half-height (m) |
|||
integer, | public | :: | icomponent | Switch used to specify selected component: blanket=0, shield=1, vacuum vessel=2 |
Calculate the blanket, shield or vacuum vessel half-height Based on blanket_half_height, shield_half_height, vv_half_height original author: J. Morris, CCFE, Culham Science Centre author: G. Graham, CCFE, Culham Science Centre
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | icomponent |
Calculate the coolant flow velocity (m/s) for given pipe mass flow rate and pipe size/shape. N.B. Assumed that primary BB and FW coolants have same pipe radius (= afw). author: G. Graham, CCFE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | i_channel_shape | Coolant mass flow rate per pipe (kg/s) |
||
real(kind=dp), | intent(in) | :: | mass_flow_rate | Coolant density |
||
real(kind=dp), | intent(in) | :: | flow_density | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! If primary coolant then circular channels assumed |
Arguments !!!!!!!!!!!!!!!!!!!!!
Swicth for circular or rectangular channel crossection. Shape depends on whether primary or secondary coolant. - =1 circle (primary) - =2 rectangle (secondary)
Pressure drops are calculated for a pipe with a number of 90 and 180 degree bends. The pressure drop due to frictional forces along the total straight length of the pipe is calculated, then the pressure drop due to the bends is calculated. The total pressure drop is the sum of all contributions.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ip | Swicth for primary or secondary coolant - =1 primary - =2 secondary |
||
integer, | intent(in) | :: | ofile | Swicth for primary or secondary coolant - =1 primary - =2 secondary |
||
integer, | intent(in) | :: | i_ps | Number of 90 and 180 degree bends in pipe |
||
integer, | intent(in) | :: | num_90 | Total flow length along pipe (m) |
||
integer, | intent(in) | :: | num_180 | Total flow length along pipe (m) |
||
real(kind=dp), | intent(in) | :: | l_pipe | Coolant density (kg/m3) |
||
real(kind=dp), | intent(in) | :: | den | Coolant viscosity (Pa s) |
||
real(kind=dp), | intent(in) | :: | vsc | Coolant flow velocity (m/s) |
||
real(kind=dp), | intent(in) | :: | vv | Description of this calculation |
||
character(len=*), | intent(in) | :: | label | Local variables !!!!!!!!!!!!!!! Hydraulic diameter of coolant flow channels (m) |
Arguments !!!!!!!!!!!!!!!!!!!!!
Caculate the hydraulic diameter (m) for a given coolant pipe size/shape. author: G. Graham !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | i_channel_shape | !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! If primary coolant then circular channels assumed |
Arguments !!!!!!!!!!!!!!!!!!!!!
Swicth for circular or rectangular channel crossection Shape depends on whether primary or secondary coolant - =1 circle (primary) - =2 rectangle (secondary)
Function calculates elbow bends coefficients for pressure drop calculations.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=dp), | intent(in) | :: | r_elbow | Pipe elbow angle (degrees) |
||
real(kind=dp), | intent(in) | :: | ang_elbow | Darcy Friction Factor |
||
real(kind=dp), | intent(in) | :: | lambda | Hydraulic Diameter (m) |
||
real(kind=dp), | intent(in) | :: | dh | Local variables !!!!!!!!!!!!!!! A and B from singularity coefficient equation |
Arguments !!!!!!!!!!!!!!!!!!!!!
Pipe elbow radius (m)
Calculates the pressure drop in a liquid metal flow channel due to MHD effects. The total pressure drop is the sum of contributions. This is only used for secondary coolant/breeder so rectangular flow channels are assumed.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ip | Liquid metal coolant/breeder flow velocity (m/s) |
||
integer, | intent(in) | :: | ofile | Liquid metal coolant/breeder flow velocity (m/s) |
||
real(kind=dp), | intent(in) | :: | vel | Liquid metal visosity |
||
real(kind=dp), | intent(in) | :: | vsc | Liquid metal conductivity |
||
real(kind=dp), | intent(in) | :: | conduct_liq | Length long poloidal sections of channel |
||
real(kind=dp), | intent(in) | :: | l_channel | Number long poloidal sections of channel |
||
integer, | intent(in) | :: | num_pol | Description of this calculation |
||
character(len=*), | intent(in) | :: | label | Local Variables !!!!!!!!!!!!!!! Half-widths of channel (m) |
Arguments !!!!!!!!!!!!!!!!!!!!!
Initialise module variables
Calculate the blanket, shield, vacuum vessel and cryostat volumes author: J. Morris, CCFE, Culham Science Centre Calculate the blanket, shield, vacuum vessel and cryostat volumes
Calculate component surface area and volume using dshaped scheme Based on dshaped_blanket, dshaped_shield, dshaped_vv original author: J. Morris, CCFE, Culham Science Centre author: G. Graham, CCFE, Culham Science Centre
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | icomponent |
Calculate component surface area and volume using elliptical scheme Based on elliptical_blanket, elliptical_shield, elliptical_vv original author: J. Morris, CCFE, Culham Science Centre author: G. Graham, CCFE, Culham Science Centre
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | icomponent |
Apply coverage factors to volumes author: J. Morris, CCFE, Culham Science Centre Apply coverage factors to volumes
Calculate cryostat geometry author: J. Morris, CCFE, Culham Science Centre Calculate cryostat geometry
Calculations for component masses author: J. Morris, CCFE, Culham Science Centre Calculations for component masses
Calculations for blanket module poloidal height author: J. Morris, CCFE, Culham Science Centre Calculations for blanket module poloidal height for D shaped and elliptical machines
Calculates the fluid properties of the Liquid Metal Breeder/Coolant in the Blanket BZ Uses middle value of input and output temperatures of Liquid Metal Breeder/Coolant Curently have PbLi but can expand with e.g., Lithium
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | ip | Local variables !!!!!!!!!!!!!!! Gas constant (J K-1 mol-1) |
||
integer, | intent(in) | :: | ofile | Local variables !!!!!!!!!!!!!!! Gas constant (J K-1 mol-1) |