You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 22 Next »

CONTENT

  1.  Introduction
  2. DYON output
    1. Files provided
    2. Running the scripts
    3. The main files
    4. IDS core_profiles
    5. IDS core_sources
    6. IDS equilibrium
    7. IDS gas_injection
    8. IDS magnetics
    9. IDS radiation
    10. IDS wall
    11. Service functions
  3. DYON input
  4. To be done

1. Introduction

This page contains a description of MATLAB scripts supporting the storage of DYON input and output data files in IMAS. 

The repository folder of the DYON output wrapper is ~g2yyakov/public/dyon/stable.

This document can be found on the ACH-PSNC Confluence page (DYON IMASification - Scientific Worfklows - PCSS Confluence (psnc.pl), https://docs.psnc.pl/display/WFMS/DYON+IMASification).

2.  DYON output

The storage of the DYON output in IMAS is supported by two MATLAB functions, put_to_IMAS and get_from_IMAS. Depending on the situation, they can be integrated to the code or used separately as wrappers providing the connection between DYON and IMAS. The scripts test_put_to_IMAS and test_get_from_IMAS are provided, which illustrate how the functions can be called as wrappers.

The available IMAS Data Dictionary (DD) does not satisfy all requirements of DYON. Therefore, the functions put_to_IMAS and get_from_IMAS are to be extended after the planned extension of the DD. 

Now the output data are placed into 7 IMAS IDS's (Interface Data Structures - sections of the IMAS DD describing tokamak subsystems or tokamak physics chapters): 'core_profiles', 'core_sources', 'equilibrium', 'gas_injection', 'magnetics', 'radiation', and 'wall' (this list is to be extended). The allocation of the data in the IDS's and the functions supporting it are described below.

2.1.  Files provided

File name Content
put_to_IMAS.mFunction saving IMAS output data to IMAS
get_from_IMAS.mFunction reading IMAS output data from IMAS
test_put_to_IMAS.mSample script invoking the function put_to_IMAS
test_get_from_IMAS.mSample script that invokes the function get_from_IMAS and compares the recovered data with the initial ones
put_core_profiles.mFunction saving data to the 'core_profiles' IDS
put_core_sources.mFunction saving data to the 'core_sources' IDS
put_equilibrium.mFunction saving data to the 'equilibrium' IDS
put_gas_injection.mFunction saving data to the 'gas_injection' IDS
put_magnetics.mFunction saving data to the 'magnetics' IDS
put_radiation.mFunction saving data to the 'radiation' IDS
put_wall.mFunction saving data to the 'wall' IDS
get_core_profiles.mFunction recovering the saved data from the 'core_profiles' IDS
get_core_sources.mFunction recovering the saved data from the 'core_sources' IDS
get_equilibrium.mFunction recovering the saved data from the 'equilibrium' IDS
get_gas_injection.mFunction recovering the saved data from the 'gas_injection' IDS
get_magnetics.mFunction recovering the saved data from the 'magnetics' IDS
get_radiation.mFunction recovering the saved data from the 'radiation' IDS
get_wall.mFunction recovering the saved data from the 'wall' IDS
arrange_ion_densities.mFunction putting the densities of all charge states and the properties of an ion to 'core_profiles'
arrange_neutral_density.mFunction putting the density and the properties of a neutral atom to 'core_profiles'
arrange_radiation.mFunction arranging the radiation power density (together with all atom attributes) for given radiation type and neutral/ion kind
extract_ion_densities.mFunction extracting the densities of all charge states from the 'core_profiles' IDS
find_source.mFunction finding the location of the source with a given data dictionary index in an AoS
find_species.mFunction finding the location of the species with a given label in AoS
compare_core_profiles.mCompare the data restored from the 'core_profiles' IDS with the initial content
compare_core_sources.mCompare the data restored from the 'core_sources' IDS with the initial content
compare_equilibrium.mCompare the data restored from the 'equilibrium' IDS with the initial content
compare_magnetics.mCompare the data restored from the 'magnetics' IDS with the initial content
compare_radiation.mCompare the data restored from the 'radiation' IDS with the initial content
compare_wall.mCompare the data restored from the 'wall' IDS with the initial content
STEP_10003_N_O_impurities_Cwall_2022_11_12_17_53_27.mat
STEP_10003_v4_600kW_EBWCD_2022_6_20_21_24_29.mat
README.txt
DYON-IMAS_wrappers_user_guide.pdf

2.2. Running the scripts

To launch the test scripts, do the following:

1. Enter:

module load imasenv/<IMASversion> 

Here <IMASversion> is 3.37.0 or higher.

2. The scripts in its present form use the IMAS database 'step'. If you are planning to use it and this database is non-existent, enter the following command to create the database:
imasdb step

You can replace 'step' with another IMAS database name, but do not forget to create it and change the variable 'machine' in test_put_to_IMAS.m and test_get_from_IMAS.m.

3. Enter either 
     matlab
  or
     matlab -nodesktop -nosplash

In the nodesktop mode, MATLAB should work faster (I did not notice a significant difference - YY). When using the nodesktop mode, do not forget to run the command 'quit()' to end the session (otherwise, a dangling MATLAB session may remain).

4. Run test_put_to_IMAS.m in order to save in IMAS the data from an available DYON output MAT-file (you can change shot, run, IDS comments etc. by changing the parameters in this script).

5. Type 'viz' (on a console with imasenv loaded) to see the content of the IMAS database.

6. To get back the DYON output data, run test_get_from_IMAS.m. 

2.3. The main files (test scripts)

The file test_put_to_IMAS.m loads a MAT-file containing the DYON results (the name of the file is defined in the script). It is assumed that there is a structure with the name 'output' among the variables loaded from the MAT-file and that this structure holds all the data that must be saved.

The script then defines the rest of arguments of the function 'put_to_IMAS' and invokes it. The dummy arguments of this function are as follows:

NameTypeDescription
outputstructstructure containing the DYON output to be saved
H_massfloatmass of the H isotope (in units of the proton mass)
machinesymbol arrayname of the IMAS database (usually a tokamak name)
shotintshot number
runintrun number
commentsymbol arraycomment characterizing the saved data (put into each IDS)
data_sourcesymbol array

text describing the origin of the data (put into each IDS)

The function creates an IMAS data entry for the given 'shot' and 'run' parameters (note that the database with the required name must exist; otherwise, an error is raised). Then it invokes several functions that put data to separate IDS's ('put_core_profiles', 'put_core_sources', 'put_equilibrium', 'put_gas_injection', 'put_magnetics', 'put_wall', and 'put_radiation') and closes the database.


2.4. IDS core_profiles

2.5. IDS core_sources

2.6. IDS equilibrium

2.7. IDS gas_injection

2.8. IDS magnetics

2.9. IDS radiation

2.10. IDS wall

2.11. Service functions

3.  DYON input

Description of the scripts processing the DYON input (to be done).

4. To be done

  • Extending the input script (pending the planned DD extension)
  • Adding code descriptions to all IDS's.
  • Switching to the HDF5 IMAS backend (pending HDF5 debugging on Gateway).
  • No labels