Put Entire IDSΒΆ
This example focuses on putting IDS into entry and passing IDS validation.
See also
API documentation for ids_put()
mode = 43;
ctx = imas_open('imas:mdsplus?path=./testdb_mdsplus', mode);
equilibrium = ids_init('equilibrium');
% set mandatory field
equilibrium.ids_properties.homogeneous_time = 1;
% when ids_properties.homogeneous_time is set to IDS_TIME_MODE_HOMOGENEOUS,
% all time-dependent fields values correspond to <ids>.time vector.
equilibrium.time = [1.0, 2.0, 3.0];
% equilibrium/vacuum_toroidal_field/b0 should have the same size as equilibrium/time
equilibrium.vacuum_toroidal_field.b0 = [1.0, 2.0, 3.0];
ids_put(ctx, 'equilibrium', equilibrium);
clear equilibrium;
% NOTE: some IDS fields are put automatically by Access Layer. Examples of this type of fields are:
% - <ids>/ids_properties/version_put/data_dictionary
% - <ids>/ids_properties/version_put/access_layer
% - <ids>/ids_properties/version_put/access_layer_language
% IDSs can be printed using fprintf() method.
fprintf('Dumping equilibrium from ids_get() function\n');
equilibrium_check = ids_get(ctx, 'equilibrium');
fprintf('\tequilibrium.ids_properties.homogeneous_time: %i\n', equilibrium_check.ids_properties.homogeneous_time);
fprintf('\tequilibrium.time: %i %i %i\n', equilibrium_check.time);
fprintf('\tequilibrium.vacuum_toroidal_field.b0: %i %i %i\n', equilibrium_check.vacuum_toroidal_field.b0);
fprintf('\n');
clear equilibrium_check;
imas_close(ctx);