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);