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

Compare with Current View Page History

« Previous Version 5 Next »

1.1.1. 06.2.3.1 "put" and "putSlice" functions

putputSlice
IMAS C++ :: put
#include "UALClasses.h"
using namespace IdsNs;

int main(int argc, char *argv[])
{

    IDS::core_profiles ids;  // <= IDS object

    const char* treename = "ids";
    const char* database = "test";
    int shot = 13;
    int run = 22;
    char*  userName;
    char*  imasVersion;


    // Gets user name and data version
    userName = getenv("USER");
    imasVersion = getenv("IMAS_VERSION");

    //Create a new instance of database

    IdsNs::IDS imas(shot, run, -1, -1);

    imas.createEnv(userName, database, imasVersion);

    ids = imas._core_profiles;

    // Mandatory to define this property
    ids.ids_properties.homogeneous_time = IDS_TIME_MODE_HOMOGENEOUS;

    // allocate the CPO structures
    ids.time.resize(10);
    ids.global_quantities.ip.resize(10);

    // Fill IDS time-independent fields
    ids.ids_properties.comment = "IDS stored by put (CPP)";

    // Fill IDS time-dependent fields
    for(int i=0; i < 10; i++)
    {
        // Do not forget time!!
        ids.time(i) = i;

        // Setting values of data
        ids.global_quantities.ip(i) = 2*i;
    }

    // Save data in the database
    ids.put();

    // Close the pulse file
    imas.close();
}
IMAS C++ :: putSlice
#include "UALClasses.h"
using namespace IdsNs;

int main(int argc, char *argv[])
{
	//Create a new instance of database
	IDS imas(12, 2, -1, -1);
 	imas.create();

	IDS::core_profiles ids = imas._core_profiles;
	
	//! Mandatory to define this property
	ids.ids_properties.homogeneous_time = 1; 

	// Fill IDS time-independent fields
	ids.ids_properties.comment = "IDS created by C++ PUT";
 	ids.putNonTimed();
 	
	// Fill IDS time-dependent fields
	ids.global_quantities.ip.resize(1); 
   	ids.global_quantities.ip(0) = VALUE;
	
	

	// Do not forget time!!
	ids.time.resize(1);
	ids.time(0) = TIME;

	// Save data in the database
 	ids.putSlice();

	// Close the pulse file
 	imas.close();
}


1.1.2. 06.2.3.2 "get" and "getSlice" functions

getgetSlice
IMAS C++ :: get
#include "UALClasses.h"
using namespace IdsNs;

int main(int argc, char *argv[])
{
   int number;
	//Open the database
 	IdsNs::IDS imas(12, 2, -1, -1);
	imas.open(); //Open the database
    
	IdsNs::IDS::core_profiles ids = imas._core_profiles;
   ids.get();

   number = ids.time.extent(0);
 
   for (int j=0; j< number; j++)
   {
     printf("Time:  %g",ids.time(j));
     printf("Value: %g",ids.x.y(j));
   }
// Close the pulse file
 imas.close();
}
IMAS C++ :: getSlice
#include "UALClasses.h"
using namespace IdsNs;

int main(int argc, char *argv[])
{
	//Open the database
	IDS imas(12, 2, -1, -1);
   	imas.open(); 
   	
	IDS::core_profiles ids = imas._core_profiles;
   	
	//Get the slice corresponding to the passed time
	ids.getSlice(1.0, 2);
	
	printf("Time %g",ids.time(0));
  	printf("Value: %g",ids.x.y(0));
	
	// Close the pulse file
 	imas.close();
 }
Building the code
CXX=g++
COPTS = -g `pkg-config imas-cpp --cflags`
LIBS =`pkg-config imas-cpp --libs`

all: ids_get.exe ids_put.exe ids_getSlice.exe ids_putSlice.exe

%.exe: %.cpp
$(CXX) $(COPTS) -o $@ $< $(LIBS)

clean:
rm -f *.o *.exe



  • No labels