Skip to content

Commit

Permalink
Cyclotron radiation source based on Albajar scaling.
Browse files Browse the repository at this point in the history
Total cyclotron radiation is from: F. Albajar et al 2001 Nucl. Fusion 41 665
https://doi.org/10.1088/0029-5515/41/6/301

Radial profile of the cyclotron radiation is from: J.F. Artaud et al 2018 Nucl. Fusion 58 105001
https://doi.org/10.1088/1741-4326/aad5b1

The Albajar scaling includes solving a parameterization for electron density and temperature profiles. For computational efficiency this is done here with a combination of a closed form analytical solution, and a 1D grid search.

PiperOrigin-RevId: 707885918
  • Loading branch information
jcitrin authored and Torax team committed Jan 3, 2025
1 parent 92a34e0 commit d82d186
Show file tree
Hide file tree
Showing 7 changed files with 592 additions and 0 deletions.
8 changes: 8 additions & 0 deletions torax/geometry/geometry.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ class Geometry:
spr_cell: chex.Array
spr_face: chex.Array
delta_face: chex.Array
elongation: chex.Array
elongation_face: chex.Array
g0: chex.Array
g0_face: chex.Array
Expand Down Expand Up @@ -273,6 +274,7 @@ class GeometryProvider:
spr_cell: interpolated_param.InterpolatedVarSingleAxis
spr_face: interpolated_param.InterpolatedVarSingleAxis
delta_face: interpolated_param.InterpolatedVarSingleAxis
elongation: interpolated_param.InterpolatedVarSingleAxis
elongation_face: interpolated_param.InterpolatedVarSingleAxis
g0: interpolated_param.InterpolatedVarSingleAxis
g0_face: interpolated_param.InterpolatedVarSingleAxis
Expand Down Expand Up @@ -416,6 +418,7 @@ class StandardGeometryProvider(GeometryProvider):
jtot_face: interpolated_param.InterpolatedVarSingleAxis
delta_upper_face: interpolated_param.InterpolatedVarSingleAxis
delta_lower_face: interpolated_param.InterpolatedVarSingleAxis
elongation: interpolated_param.InterpolatedVarSingleAxis
elongation_face: interpolated_param.InterpolatedVarSingleAxis

@functools.partial(jax_utils.jit, static_argnums=0)
Expand Down Expand Up @@ -636,6 +639,7 @@ def build_circular_geometry(
Rout=Rout,
Rout_face=Rout_face,
# Set the circular geometry-specific params.
elongation=elongation,
elongation_face=elongation_face,
volume_hires=volume_hires,
area_hires=area_hires,
Expand Down Expand Up @@ -1528,6 +1532,9 @@ def build_standard_geometry(
delta_face = 0.5 * (delta_upper_face + delta_lower_face)

# elongation
elongation = rhon_interpolation_func(
rho_norm, intermediate.elongation
)
elongation_face = rhon_interpolation_func(
rho_face_norm, intermediate.elongation
)
Expand Down Expand Up @@ -1628,6 +1635,7 @@ def build_standard_geometry(
jtot_face=jtot_face,
delta_upper_face=delta_upper_face,
delta_lower_face=delta_lower_face,
elongation=elongation,
elongation_face=elongation_face,
volume_hires=volume_hires,
area_hires=area_hires,
Expand Down
Loading

0 comments on commit d82d186

Please sign in to comment.