Skip to content

Update to IMAS dictionary 4.1 and IMAS-Python/FORTRAN access layers - #38

Open
jorekart wants to merge 13 commits into
iterorganization:developfrom
jorekart:imas_DD4.1
Open

jorekart wants to merge 13 commits into
iterorganization:developfrom
jorekart:imas_DD4.1

Conversation

@jorekart

@jorekart jorekart commented Sep 17, 2026 •

Copy link
Copy Markdown
Collaborator

This PR implements the following

  • Update jorek2_IDS to IMAS Data Dictionary 4.1
  • Use URIs instead of legacy parameters whenever possible
  • Update reading functions to IMAS-Python in imas2jorek.py
  • Update reading functions to IMAS-FORTRAN in jorek2_IDS
  • Add new transport IDS to store parallel heat fluxes at PFCs (to couple with field line tracing workflows)
  • Add optional descriptors for disruption type
  • Create and re-use single function to create triangular meshes to avoid duplications

@jorekart

Copy link
Copy Markdown
Collaborator Author

env_iter_intel_RH2.sh
@N-Schwarz whenever you find time, could you help me uploading the new ITER environment module file to the jorek server? I don't seem to have access anymore when doing the curl command

@N-Schwarz

Copy link
Copy Markdown
Collaborator

Hi @jorekart, I uploaded the file for you as env_iter_intel_RH_2026.sh. Is this compatible with the old version or will it break runs?

@N-Schwarz

Copy link
Copy Markdown
Collaborator

@jorekart , could you double check the modules you are loading? it does not find matplotlib
18-Sept-2026 11:54:20 | import matplotlib.pyplot as plt
18-Sept-2026 11:54:20 | ModuleNotFoundError: No module named 'matplotlib'

If you find a fix, you can update the environment (env_iter_intel_RH_2026.sh) with your username and password yourself

@jorekart

Copy link
Copy Markdown
Collaborator Author

@N-Schwarz @matthiashoelzl
Ready to merge :)

parser.add_argument("-t", "--time", type=float, default=-1, help="The requested time in seconds")
args = parser.parse_args()

entry_options = {} if args.dd_version is None else {"dd_version": args.dd_version}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you not get the same result if you do entry_options = {"autoconvert": False} if ...?

entry_description = "legacy entry: user=%s, database=%s, pulse=%s, run=%s" % (
args.user, args.database, args.pulse, args.run)

atexit.register(lambda: entry.close())

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this necessary? Wouldn't it make more sense to put it after the next if because you might close and reopen it?

type(ids_pf_active) :: pf_active
type(ids_disruption) :: disruption_ids
type(ids_spi) :: spi_ids
type(ids_plasma_transport), target :: transport_ids

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why does only this have a target?

! --- Fill global quantities (call mod_integrals3D)
equilibrium_ids%time_slice(i_slice)%global_quantities%psi_axis = ES%Psi_axis * fact_psi
equilibrium_ids%time_slice(i_slice)%global_quantities%psi_boundary = ES%Psi_bnd * fact_psi
equilibrium_ids%time_slice(i_slice)%global_quantities%psi_magnetic_axis = ES%Psi_axis * fact_psi

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the boundary one no longer required?


! --- Optional disruption metadata. Leave these nodes empty unless the
! corresponding values were explicitly provided in imas.nml.
if (summary_disruption_type /= -999) then

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this also in the disruption ids?

@matthiashoelzl matthiashoelzl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me, but without running tests myself. Based on the automatic tests passing and you having tested yourself, I approve.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Update to IMAS dictionary 4.1 and IMAS-Python/FORTRAN access layers

3 participants