CONTENT
- Introduction
- DYON output
- Files provided
- Running the scripts
- The main files
- IDS core_profiles
- IDS core_sources
- IDS equilibrium
- IDS gas_injection
- IDS magnetics
- IDS radiation
- IDS wall
- Service functions
- DYON input
- 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.m | Function saving IMAS output data to IMAS |
get_from_IMAS.m | Function reading IMAS output data from IMAS |
test_put_to_IMAS.m | Sample script invoking the function put_to_IMAS |
test_get_from_IMAS.m | Sample script that invokes the function get_from_IMAS and compares the recovered data with the initial ones |
put_core_profiles.m | Function saving data to the 'core_profiles' IDS |
put_core_sources.m | Function saving data to the 'core_sources' IDS |
put_equilibrium.m | Function saving data to the 'equilibrium' IDS |
put_gas_injection.m | Function saving data to the 'gas_injection' IDS |
put_magnetics.m | Function saving data to the 'magnetics' IDS |
put_radiation.m | Function saving data to the 'radiation' IDS |
put_wall.m | Function saving data to the 'wall' IDS |
get_core_profiles.m | Function recovering the saved data from the 'core_profiles' IDS |
get_core_sources.m | Function recovering the saved data from the 'core_sources' IDS |
get_equilibrium.m | Function recovering the saved data from the 'equilibrium' IDS |
get_gas_injection.m | Function recovering the saved data from the 'gas_injection' IDS |
get_magnetics.m | Function recovering the saved data from the 'magnetics' IDS |
get_radiation.m | Function recovering the saved data from the 'radiation' IDS |
get_wall.m | Function recovering the saved data from the 'wall' IDS |
arrange_ion_densities.m | Function putting the densities of all charge states and the properties of an ion to 'core_profiles' |
arrange_neutral_density.m | Function putting the density and the properties of a neutral atom to 'core_profiles' |
arrange_radiation.m | Function arranging the radiation power density (together with all atom attributes) for given radiation type and neutral/ion kind |
extract_ion_densities.m | Function extracting the densities of all charge states from the 'core_profiles' IDS |
find_source.m | Function finding the location of the source with a given data dictionary index in an AoS |
find_species.m | Function finding the location of the species with a given label in AoS |
compare_core_profiles.m | Compare the data restored from the 'core_profiles' IDS with the initial content |
compare_core_sources.m | Compare the data restored from the 'core_sources' IDS with the initial content |
compare_equilibrium.m | Compare the data restored from the 'equilibrium' IDS with the initial content |
compare_magnetics.m | Compare the data restored from the 'magnetics' IDS with the initial content |
compare_radiation.m | Compare the data restored from the 'radiation' IDS with the initial content |
compare_wall.m | Compare 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 big difference). Using the nodesktop mode, do not forget to run the command 'quit()' to end the session (otherwise, a dangling MATLAB session may remain).
4. To save data from the available DYON output MAT-file, run test_put_to_IMAS.m (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 the DYON output data back, run test_get_from_IMAS.m.
2.3. The main files (test scripts)
The file test_put_to_IMAS.m ??????
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 script saving the DYON input (to be done).
4. To be done
- Extend the input script (pending the planned DD extension)
- Add code descriptions to all IDS's.
- To switch to the HDF5 IMAS backend (pending HDF5 debugging on Gateway).