Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
19 changes: 19 additions & 0 deletions process/data_structure/physics_variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -511,6 +511,17 @@
fusrat_total: float = None
"""fusion reaction rate, from beams and plasma (reactions/sec)"""

fusrat_plasma_dt_profile: list[float] = None
"""Profile of D-T fusion reaction rate in plasma, (reactions/sec)"""

fusrat_plasma_dd_triton_profile: list[float] = None
"""Profile of D-D fusion reaction rate (tritium branch) in plasma, (reactions/sec)"""

fusrat_plasma_dd_helion_profile: list[float] = None
"""Profile of D-D fusion reaction rate (helium branch) in plasma, (reactions/sec)"""

fusrat_plasma_dhe3_profile: list[float] = None
"""Profile of D-3He fusion reaction rate in plasma, (reactions/sec)"""

fusden_plasma: float = None
"""fusion reaction rate, just from plasma (reactions/m3/sec)"""
Expand Down Expand Up @@ -1420,6 +1431,10 @@ def init_physics_variables():
global f_tritium
global fusden_total
global fusrat_total
global fusrat_plasma_dt_profile
global fusrat_plasma_dd_triton_profile
global fusrat_plasma_dd_helion_profile
global fusrat_plasma_dhe3_profile
global fusden_plasma
global f_c_plasma_non_inductive
global ejima_coeff
Expand Down Expand Up @@ -1664,6 +1679,10 @@ def init_physics_variables():
f_tritium = 0.5
fusden_total = 0.0
fusrat_total = 0.0
fusrat_plasma_dt_profile = []
fusrat_plasma_dd_triton_profile = []
fusrat_plasma_dd_helion_profile = []
fusrat_plasma_dhe3_profile = []
fusden_plasma = 0.0
f_c_plasma_non_inductive = 1.0
ejima_coeff = 0.4
Expand Down
60 changes: 60 additions & 0 deletions process/fusion_reactions.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,21 @@ def dt_reaction(self) -> None:
# Initialize Bosch-Hale constants for the D-T reaction
dt = BoschHaleConstants(**REACTION_CONSTANTS_DT)

physics_variables.fusrat_plasma_dt_profile = (
bosch_hale_reactivity(
(physics_variables.ti / physics_variables.te)
* self.plasma_profile.teprofile.profile_y,
dt,
)
* physics_variables.f_deuterium
* physics_variables.f_tritium
* (
self.plasma_profile.neprofile.profile_y
* (physics_variables.nd_fuel_ions / physics_variables.dene)
)
** 2
)

# Calculate the fusion reaction rate integral using Simpson's rule
sigmav = integrate.simpson(
fusion_rate_integral(self.plasma_profile, dt),
Expand Down Expand Up @@ -289,6 +304,21 @@ def dhe3_reaction(self) -> None:
dx=self.plasma_profile.neprofile.profile_dx,
)

physics_variables.fusrat_plasma_dhe3_profile = (
bosch_hale_reactivity(
(physics_variables.ti / physics_variables.te)
* self.plasma_profile.teprofile.profile_y,
dhe3,
)
* physics_variables.f_deuterium
* physics_variables.f_helium3
* (
self.plasma_profile.neprofile.profile_y
* (physics_variables.nd_fuel_ions / physics_variables.dene)
)
** 2
)

# Reaction energy in MegaJoules [MJ]
reaction_energy = constants.D_HELIUM_ENERGY / 1.0e6

Expand Down Expand Up @@ -359,6 +389,21 @@ def dd_helion_reaction(self) -> None:
dx=self.plasma_profile.neprofile.profile_dx,
)

physics_variables.fusrat_plasma_dd_helion_profile = (
bosch_hale_reactivity(
(physics_variables.ti / physics_variables.te)
* self.plasma_profile.teprofile.profile_y,
dd1,
)
* physics_variables.f_deuterium
* physics_variables.f_deuterium
* (
self.plasma_profile.neprofile.profile_y
* (physics_variables.nd_fuel_ions / physics_variables.dene)
)
** 2
)

# Reaction energy in MegaJoules [MJ]
reaction_energy = constants.DD_HELIUM_ENERGY / 1.0e6

Expand Down Expand Up @@ -432,6 +477,21 @@ def dd_triton_reaction(self) -> None:
dx=self.plasma_profile.neprofile.profile_dx,
)

physics_variables.fusrat_plasma_dd_triton_profile = (
bosch_hale_reactivity(
(physics_variables.ti / physics_variables.te)
* self.plasma_profile.teprofile.profile_y,
dd2,
)
* physics_variables.f_deuterium
* physics_variables.f_deuterium
* (
self.plasma_profile.neprofile.profile_y
* (physics_variables.nd_fuel_ions / physics_variables.dene)
)
** 2
)

# Reaction energy in MegaJoules [MJ]
reaction_energy = constants.DD_TRITON_ENERGY / 1.0e6

Expand Down
Loading
Loading