110 likes | 125 Views
This user guide provides information on creating and using a machine description file for European tokamaks. The file includes machine-specific data and can be completed with shot-based data to form a full experimental data set. A specific tool is proposed to ease the collection and submission of this data.
E N D
Version 4 27/02/2011 Machine description User GuideF. Imbeaux
Machine description file : motivation • Machine description usually not available in data bases • ITM TF intends to formalise and store this information for the European tokamaks • The stored machine description can be completed with shot-based data to obtain a full experimental data set • A specific tool is proposed to ease the collection and submission of these data : the machine description file 2
Machine description file : how to create it • ISIP provides a template machine description file, as an XML document (ASCII) • It is an instance of the ITM data structure, with only the data flagged as being « machine description » in it • EDRG members fill out this form for each tokamak : all data put in ASCII format using a simple text editor. • Use MKSA units. Documentation and units are embedded in the machine description file template. • The range of shot numbers to which it applies must be indicated in fields topinfo/md_info/shot_min and shot_max • This machine description file is then read by ISIP tools and put in the ITM data base as an entry with shot number 0. • Multiple versions of the machine description can co-exist in the ITM data base. 3
Machine description file : how to use it • Machine descriptions are specific entries of the ITM data base, stored with shot number 0 • They must be completed with shot-based data to form a complete data set • The Exp2ITM tool is then run to create a complete experimental data set : • retrieve machine description relevant for the requested shot number • retrieve validated shot-based data from the local data base (automated generic tool to map local data onto ITM data structure could be developed in the longer term) • store the complete data set in the ITM data base, as a data entry • Simulations can then use this complete data set as input 4
Template machine description file : strings • The template machine description file is dynamically generated from the ITM data structure • It is an XML file – but knowledge of XML is not required to fill out the machine description file • Simply write as plain text the values in the objects, replacing the "Put value here text" • Example for a string : filling the datainfo/dataprovider signal of the interfdiag CPO (interferometer) : • <interfdiag type= "CPO" documentation="Interferometry; measures line-integrated electron density [m^-2]; Time-dependent CPO"> • <datainfo type="structure" documentation="Generic information on a data item"> • <dataprovider type="xs:string" documentation="Name of the actual data provider (the person who filled the data)" path="datainfo/dataprovider"> • Put value here • </dataprovider> • </datainfo> • </interfdiag> • Should be filled as : • <dataprovider type="xs:string" documentation="Name of the actual data provider (the person who filled the data)" path="datainfo/dataprovider"> • MyName • </dataprovider> 5
Template machine description file : vectors • Vectors should be put in line, values are separated by a comma as in F90 syntax • Dimension should be indicated by replacing the text "Put dimension here" • <r type="vecflt_type" documentation="Major radius [m]" path="setup_line/second_point/r" dim="Put dimension here">Put value here</r> • Should be filled as : • <r type="vecflt_type" documentation="Major radius [m]" path="setup_line/second_point/r" dim="50"> 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0</r> • Values can be repeated using the standard F90 syntax : (1.0d0, i = 1,3) is equivalent to 1.0d0,1.0d0,1.0d0 • Vectors of integers (type="vecint_type") use the same syntax for listing the numbers, but the numbers must be written as integers : 1, 2, 3 instead of 1.0d0, 2.0d0, 3.0d0. 6
Template machine description file : vector of strings • Vectors of strings should be put in line, values are separated by a comma as in F90 syntax • Dimension should be indicated by replacing the text "Put dimension here" • <name type="vecstring_type" documentation="Name of loop. Array of strings (nloops)." path="flux_loops/setup_floops/name" dim="Put dimension here"> Put value here</name> • Should be filled as : • <name type="vecstring_type" documentation="Name of loop. Array of strings (nloops)." path="flux_loops/setup_floops/name" dim=“3“> ’AAAA’, ‘BBBB’, ‘CCCC’ </name> • NB : all strings in the array must have the same size 7
Template machine description file : matrices • Matrices are put as a long line, all elements are separated by a comma. For a matrix (i,j), list the values as follows : M(1,j=1,m), then M(2,j=1,m), ... • Dimension should be indicated by replacing the text "Put dimension here". Dimensions separated by a comma • <r type="matflt_type" documentation="Major radius [m]" path="flux_loops/setup_floops/position/r" dim="Put dimension here"> Put value here </r> • Should be filled as : • <r type="matflt_type" documentation="Major radius [m]" path="flux_loops/setup_floops/position/r" dim="5,10"> 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0, 1.0d0, 2.0d0, 3.0d0, 4.0d0, 5.0d0, 6.0d0, 7.0d0, 8.0d0, 9.0d0, 10.0d0</r> • Matrices of integers (type="matint_type") use the same syntax for listing the numbers, but the numbers must be written as integers : 1, 2, 3 instead of 1.0d0, 2.0d0, 3.0d0. 8
Template machine description file : 3D arrays • 3D arrays are put as a long line, all elements are separated by a comma. For an array (i,j,k), list the values as follows (iterating the last index first) : M(1,1,k=1 to m), then M(1,2,k=1 to m), ... then M(2,1,k=1 to m), … • Dimension should be indicated by replacing the text "Put dimension here". Dimensions separated by a comma • <r type="array3dflt_type" documentation="Major radius [m]" path="pfcoils/desc_pfcoils/pfelement/pfgeometry/rzcoordinate/r" dim="Put dimension here"> Put value here </r> • Should be filled as : • <r type="array3dflt_type" documentation="Major radius [m]" path="pfcoils/desc_pfcoils/pfelement/pfgeometry/rzcoordinate/r" dim="5,3,2"> 1.1d0, 2.1d0, 1.2d0, 2.2d0, 1.3d0, 2.3d0, 1.1d0, 2.1d0, 1.2d0, 2.2d0, 1.3d0, 2.3d0, 1.1d0, 2.1d0, 1.2d0, 2.2d0, 1.3d0, 2.3d0, 1.1d0, 2.1d0, 1.2d0, 2.2d0, 1.3d0, 2.3d0, 1.1d0, 2.1d0, 1.2d0, 2.2d0, 1.3d0, 2.3d0 </r> • 3D arraysof integers (type="array3dint_type") use the same syntax for listing the numbers, but the numbers must be written as integers : 1, 2, 3 instead of 1.0d0, 2.0d0, 3.0d0. 9
Template machine description file : CPO occurrences • Feature available since version 4.09a. • By default, all CPOs in the machine description file correspond to occurrence 0 • Multiple occurrences may be needed, e.g. multiple diagnostics of the same type on a given tokamak • To have more than one occurrence : • Duplicate in the machine description the whole CPO (copy/paste) • Modify the occurrence attribute of the pasted CPO • <nbi type="CPO" documentation="Neutral Beam Injection. Input to NBI source codes; describes the neutrals that are about to be launched into the torus; Time-dependent CPO" occurrence="1" > • … fill the CPO as usual … • </nbi> 10
Template machine description file : Arrays of structure • Feature available since version 4.09a. • Some machine description data use the « array of structure feature », example : nbi/nbi_unit is an array of structure describing each NBI unit. • Fill the dim attribute with the size of the array of structure • Copy/paste the elementary structure to have « dim » instances of it. • For each instance of the structure, precise its index in the array using the « index » attribute • <nbi_unit type="struct_array" documentation="Injector unit. Structure array(nunits)" path="nbi_unit" dim="2" index="1" > • … fill in as usual … • </nbi_unit> • <nbi_unit type="struct_array" documentation="Injector unit. Structure array(nunits)" path="nbi_unit" dim="2" index="2" > • … fill in as usual … • </nbi_unit> 11