Skip to content
2 changes: 1 addition & 1 deletion documentation/source/eng-models/blanket_overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ $$

here $L$ is the characteristic length which we set to be the pipe diameter and $\mu$ is the coolant dynamic viscosity.

Using the Reynolds number we calculate the Darcy friction factor using the Haaland approximation calculated by `darcy_friction_haaland()`.
Using the Reynolds number we calculate the Darcy friction factor using the Haaland approximation calculated by [`darcy_friction_haaland()`](../eng-models/generic_methods/pumping.md#pumping-coolant-friction--darcy_friction_haaland).

For the radius of the pipe bend we assume it to be 3 times the radius of the coolant channel.

Expand Down
81 changes: 3 additions & 78 deletions documentation/source/eng-models/fw-blanket.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,9 +137,9 @@ This function is used to calculate the first wall heating, it assumes the same c
\mathtt{temp_k} = \frac{T_{\text{outlet}} + T_{\text{FW,peak}}}{2}
$$

8. Calculate the FW thermal conductivity at $\mathtt{temp_k}$ using the [`fw_thermal_conductivity()`](#fw-thermal-conductivity--fw_thermal_conductivity) function.
8. Calculate the FW thermal conductivity at $\mathtt{temp_k}$ using the [`eurofer97_thermal_conductivity()`](../eng-models/generic_methods/materials.md#eurofer97-thermal-conductivity--eurofer97_thermal_conductivity) function.

9. Determine the heat transfer coefficient using the [`heat_transfer()`](#fw-heat-transfer--heat_transfer) function.
9. Determine the heat transfer coefficient using the [`gnielinski_heat_transfer_coefficient()`](../eng-models/generic_methods/pumping.md#gnielinski-heat-transfer--gnielinski_heat_transfer_coefficient) function.

10. Compute the worst-case load.

Expand Down Expand Up @@ -193,78 +193,8 @@ $$

where $\texttt{tkfw}$ is the thermal conductivity of the first wall material and $\texttt{onedload}$ is the heat load per unit length.

-------------

### FW heat transfer | `heat_transfer()`

1. **Calculate the Reynolds number:**

$$
\mathrm{Re} = \frac{\rho v \left(2r_{\text{channel}}\right)}{\mu}
$$

where $\rho$ is the coolant density and $\mu$ is the coolant viscosity.

2. **Calculate the Prandtl number:**

$$
\mathrm{Pr} = \frac{c_{\text{p}}\mu}{k}
$$

were $c_{\text{p}}$ is the coolant heat capacity and $k$ is the coolant thermal conductivity.

3. **Calculate the Darcy friction factor using the [`darcy_friction_haaland()`](#fw-coolant-friction--darcy_friction_haaland) method:**

$$
f = \texttt{darcy_friction_haaland()}
$$

4. **Calculate the Nusselt number using the [Gnielinski correlation](https://en.wikipedia.org/wiki/Nusselt_number#Gnielinski_correlation):**

$$
\mathrm{Nu_D} = \frac{\left(f/8\right)\left(\mathrm{Re}-1000\right)\mathrm{Pr}}{1+12.7\left(f/8\right)^{0.5}\left(\mathrm{Pr}^{2/3}-1\right)}
$$

The relation is valid for:

$$
0.5 \le \mathrm{Pr} \le 2000 \\
3000 \le \mathrm{Re} \le 5 \times 10^6
$$

5. **Calculate the heat transfer coefficient with the Nusselt number:**

$$
h = \frac{\mathrm{Nu_D}k}{2r_{\text{channel}}}
$$


--------------

### FW coolant friction | `darcy_friction_haaland()`

The pressure drop is based on the Darcy fraction factor, using the [Haaland equation](https://en.wikipedia.org/wiki/Darcy_friction_factor_formulae#Haaland_equation), an approximation to the implicit Colebrook–White equation.

$$
\frac{1}{\sqrt{f}} = -1.8 \log{\left[ \left(\frac{\epsilon / D}{3.7}\right)^{1.11} \frac{6.9}{\text{Re}} \right]}
$$

------------

### FW thermal conductivity | `fw_thermal_conductivity()`

The thermal conductivity of the first wall is assumed to be that of Eurofer97 using the relation below[^1] [^2]:

$$
K_{\text{Eurofer97}} = 5.4308 + 0.13565T - 0.00023862T^2 + 1.3393 \times 10^{-7} T^3
$$

!!! warning Thermal conductivity validity bounds

The sources for the stated thermal conductivity relation above state that the relation is only valid up to 800K [^1] [^2].

-------------


### Model Switches

Expand Down Expand Up @@ -323,9 +253,4 @@ There are three model options, chosen by the user to match their selected blanke

| Variable | Units | Itvar. | Usage | Default | Description |
| :----------------------: | :-------: | ------ | ----------- | ------- | ------------------------------------------------------------------- |
| `bz_channel_conduct_liq` | A V-1 m-1 | 72 | ifci = 0, 2 | 8.33D5 | Liquid metal coolant/breeder thin conductor or FCI wall conductance |


[^1]: A. A. Tavassoli et al., “Materials design data for reduced activation martensitic steel type EUROFER,” Journal of Nuclear Materials, vol. 329–333, pp. 257–262, Aug. 2004, doi: https://doi.org/10.1016/j.jnucmat.2004.04.020.

[^2]: Tavassoli, F. "Fusion Demo Interim Structural Design Criteria (DISDC)/Appendix A Material Design Limit Data/A3. S18E Eurofer Steel." CEA, EFDA_TASK_TW4-TTMS-005-D01 (2004).
| `bz_channel_conduct_liq` | A V-1 m-1 | 72 | ifci = 0, 2 | 8.33D5 | Liquid metal coolant/breeder thin conductor or FCI wall conductance |
17 changes: 17 additions & 0 deletions documentation/source/eng-models/generic_methods/materials.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Materials Methods

## Eurofer97 thermal conductivity | `eurofer97_thermal_conductivity()`

The thermal conductivity of the first wall is assumed to be that of Eurofer97 using the relation below[^1] [^2]:

$$
K_{\text{Eurofer97}} = 5.4308 + 0.13565T - 0.00023862T^2 + 1.3393 \times 10^{-7} T^3
$$

!!! warning Thermal conductivity validity bounds
Comment on lines +8 to +11

The sources for the stated thermal conductivity relation above state that the relation is only valid up to 800K [^1] [^2].

[^1]: A. A. Tavassoli et al., “Materials design data for reduced activation martensitic steel type EUROFER,” Journal of Nuclear Materials, vol. 329–333, pp. 257–262, Aug. 2004, doi: https://doi.org/10.1016/j.jnucmat.2004.04.020.

[^2]: Tavassoli, F. "Fusion Demo Interim Structural Design Criteria (DISDC)/Appendix A Material Design Limit Data/A3. S18E Eurofer Steel." CEA, EFDA_TASK_TW4-TTMS-005-D01 (2004).
64 changes: 64 additions & 0 deletions documentation/source/eng-models/generic_methods/pumping.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Pumping Methods

## Pumping coolant friction | `darcy_friction_haaland()`

The pressure drop is based on the Darcy fraction factor, using the [Haaland equation](https://en.wikipedia.org/wiki/Darcy_friction_factor_formulae#Haaland_equation), an approximation to the implicit Colebrook–White equation.

$$
\frac{1}{\sqrt{f}} = -1.8 \log{\left[ \left(\frac{\epsilon / D}{3.7}\right)^{1.11} \frac{6.9}{\text{Re}} \right]}
Comment on lines +5 to +8
$$

-------------------

## Reynolds number | `calculate_reynolds_number()`

$$
\mathrm{Re} = \frac{\rho v \left(2r_{\text{channel}}\right)}{\mu}
$$

where $\rho$ is the coolant density and $\mu$ is the coolant viscosity.

-------------------

## Gnielinski heat transfer | `gnielinski_heat_transfer_coefficient()`

1. **Calculate the Reynolds number:**

$$
\mathrm{Re} = \frac{\rho v \left(2r_{\text{channel}}\right)}{\mu}
$$

where $\rho$ is the coolant density and $\mu$ is the coolant viscosity.

2. **Calculate the Prandtl number:**

$$
\mathrm{Pr} = \frac{c_{\text{p}}\mu}{k}
$$

were $c_{\text{p}}$ is the coolant heat capacity and $k$ is the coolant thermal conductivity.

3. **Calculate the Darcy friction factor using the [`darcy_friction_haaland()`](../eng-models/generic_methods/pumping.md#pumping-coolant-friction--darcy_friction_haaland) method:**

$$
f = \texttt{darcy_friction_haaland()}
$$

4. **Calculate the Nusselt number using the [Gnielinski correlation](https://en.wikipedia.org/wiki/Nusselt_number#Gnielinski_correlation):**

$$
\mathrm{Nu_D} = \frac{\left(f/8\right)\left(\mathrm{Re}-1000\right)\mathrm{Pr}}{1+12.7\left(f/8\right)^{0.5}\left(\mathrm{Pr}^{2/3}-1\right)}
$$

The relation is valid for:

$$
0.5 \le \mathrm{Pr} \le 2000 \\
3000 \le \mathrm{Re} \le 5 \times 10^6
$$

5. **Calculate the heat transfer coefficient with the Nusselt number:**

$$
h = \frac{\mathrm{Nu_D}k}{2r_{\text{channel}}}
$$
3 changes: 3 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,9 @@ nav:
- Plant Availability: eng-models/plant-availability.md
- Power Requirements: eng-models/power-requirements.md
- Vacuum Vessel: eng-models/vacuum-vessel.md
- Generic Engineering Methods:
- Pumping: eng-models/generic_methods/pumping.md
- Materials: eng-models/generic_methods/materials.md
- Unique Models:
- Water Use: unique-models/water_use.md
- Power Plant Building Sizes: unique-models/buildings_sizes.md
Expand Down
19 changes: 14 additions & 5 deletions process/models/blankets/blanket_library.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@
primary_pumping_variables,
)
from process.models.build import FwBlktVVShape
from process.models.engineering.pumping import (
calculate_reynolds_number,
darcy_friction_haaland,
)

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -3009,17 +3013,22 @@ def coolant_friction_pressure_drop(
dia_pipe = self.pipe_hydraulic_diameter(i_ps)

# Reynolds number
reynolds_number = den_coolant * vel_coolant * dia_pipe / visc_coolant
reynolds_number = calculate_reynolds_number(
den_coolant=den_coolant,
vel_coolant=vel_coolant,
Comment on lines +3016 to +3018
radius_channel=dia_pipe / 2,
visc_coolant=visc_coolant,
)

# Calculate Darcy friction factor
# N.B. friction function Uses Haaland approx. which assumes a filled circular pipe.
# Use dh which allows us to do fluid calculations for non-cicular tubes
# (dh is estimate appropriate for fully developed flow).

darcy_friction_factor = self.fw.darcy_friction_haaland(
reynolds_number,
fwbs_variables.roughness_fw_channel,
fwbs_variables.radius_fw_channel,
darcy_friction_factor = darcy_friction_haaland(
reynolds=reynolds_number,
roughness_channel=fwbs_variables.roughness_fw_channel,
radius_channel=fwbs_variables.radius_fw_channel,
)

# Pressure drop coefficient
Expand Down
Empty file.
41 changes: 41 additions & 0 deletions process/models/engineering/materials.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import logging

from process.data_structure import (
fwbs_variables,
)

logger = logging.getLogger(__name__)


Comment on lines +1 to +9
def eurofer97_thermal_conductivity(temp: float) -> float:
"""Calculates the thermal conductivity of the first wall material (Eurofer97).

Parameters
----------
temp:
Property temperature in Kelvin (K).

Returns
-------
:
Thermal conductivity of Eurofer97 in W/m/K.

Notes
-----
Valid up to about 800 K

References
----------
- A. A. Tavassoli et al., “Materials design data for reduced activation martensitic steel type EUROFER,”
Journal of Nuclear Materials, vol. 329-333, pp. 257-262, Aug. 2004,
doi: https://doi.org/10.1016/j.jnucmat.2004.04.020.

- Tavassoli, F. "Fusion Demo Interim Structural Design Criteria (DISDC)/Appendix A Material Design Limit Data/A3. S18E Eurofer Steel."
CEA, EFDA_TASK_TW4-TTMS-005-D01 (2004)
"""
# temp in Kelvin
return (
(5.4308 + 0.13565 * temp - 0.00023862 * temp**2 + 1.3393e-7 * temp**3)
* fwbs_variables.fw_th_conductivity
/ 28.34
)
Loading
Loading