From 67b48eabaaae23d2bf779b9923147ff84a334232 Mon Sep 17 00:00:00 2001 From: Calin Date: Sat, 3 Oct 2026 10:07:45 -0400 Subject: [PATCH] Equilibrium - BUGFIX - Select the rectangular profiles_2d by grid_type in read_imas --- src/Equilibrium/ReadEquilibrium.jl | 5 +++-- test/runtests_imas.jl | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Equilibrium/ReadEquilibrium.jl b/src/Equilibrium/ReadEquilibrium.jl index 755a91aca..04281f98d 100644 --- a/src/Equilibrium/ReadEquilibrium.jl +++ b/src/Equilibrium/ReadEquilibrium.jl @@ -446,7 +446,7 @@ internal COCOS 2 convention: + `global_quantities.psi_axis`, `global_quantities.psi_boundary` + `profiles_1d.psi`, `profiles_1d.f`, `profiles_1d.pressure`, `profiles_1d.q` - + `profiles_2d[1].grid.dim1` (R), `profiles_2d[1].grid.dim2` (Z), `profiles_2d[1].psi` + + the `profiles_2d` entry with `grid_type.index == 1` (rectangular), supplying `grid.dim1` (R), `grid.dim2` (Z) and `psi` """ function read_imas(config::EquilibriumConfig, dd) @info "Processing IMAS equilibrium at global_time = $(dd.global_time) s" @@ -511,7 +511,8 @@ function read_imas(config::EquilibriumConfig, dd) error("read_imas: no profiles_2d found in equilibrium time slice. " * "Ensure the 2D ψ(R,Z) map is stored in dd.equilibrium.") end - prof2d = eqt.profiles_2d[1] + prof2d = findfirst(:rectangular, eqt.profiles_2d) + prof2d === nothing && error("read_imas: no rectangular profiles_2d found.") r_grid = prof2d.grid.dim1 z_grid = prof2d.grid.dim2 diff --git a/test/runtests_imas.jl b/test/runtests_imas.jl index 2d82d5b0e..7970d6e4b 100644 --- a/test/runtests_imas.jl +++ b/test/runtests_imas.jl @@ -42,6 +42,7 @@ using GeneralizedPerturbedEquilibrium.Equilibrium resize!(eqt.profiles_2d, 1; wipe=true) prof2d = eqt.profiles_2d[1] + prof2d.grid_type.index = 1 prof2d.grid.dim1 = R_grid prof2d.grid.dim2 = Z_grid prof2d.psi = psi_rz .* cf