Source code for cfspopcon.formulas.metrics.heat_exhaust_metrics

"""Calculate simple metrics for the heat exhaust challenge."""

from ...algorithm_class import Algorithm
from ...unit_handling import Unitfull


[docs] @Algorithm.register_algorithm(return_keys=["PB_over_R"]) def calc_PB_over_R(power_crossing_separatrix: Unitfull, magnetic_field_on_axis: Unitfull, major_radius: Unitfull) -> Unitfull: """Calculate P_sep*B0/R0, which scales roughly the same as the parallel heat flux density entering the scrape-off-layer.""" return power_crossing_separatrix * magnetic_field_on_axis / major_radius
[docs] @Algorithm.register_algorithm(return_keys=["PBpRnSq"]) def calc_PBpRnSq( power_crossing_separatrix: Unitfull, magnetic_field_on_axis: Unitfull, q_star: Unitfull, major_radius: Unitfull, average_electron_density: Unitfull, ) -> Unitfull: """Calculate P_sep * B_pol / (R * n^2), which scales roughly the same as the impurity fraction required for detachment.""" return (power_crossing_separatrix * (magnetic_field_on_axis / q_star) / major_radius) / (average_electron_density**2.0)