Skip to content

Rectangular grid and METIS interfacing #321

@Didou09

Description

@Didou09

METIS now stores the equilibrium as a rectangular (R, Z) grid and associated values as 1d flattened arrays on WEST.

  • Proper keys 2dmeshR and 2dmeshZ should be accessible for Plasma2D by default
  • Associated interpolation (implying reshaping of flattened data array) should b eavailable
  • Equilibrum coming from METIS can be reckognized by ids_properties.source and comment

example:

In [6]: multi = tf.imas2tofu.MultiIDSLoader(ids=['bolometer'], shot=54178, get=False)
In [7]: multi.add_ids_synthdiag('bolometer', user='CB165101', shot=54178, run=13, tokamak='west')
Getting ids     [occ]  tokamak  user         version  shot   run  refshot  refrun
--------------  -----  -------  -----------  -------  -----  ---  -------  ------
core_sources    [0]    west     CB165101     3        54178  13   -1       -1    
equilibrium     [0]    "        "            "        "      "    "        "     
bolometer       [0]    west     imas_public  3        54178  0    -1       -1    
pulse_schedule  [0]    "        "            "        "      "    "        "     
wall            [0]    "        "            "        "      "    "        "     

In [8]: sig = multi.calc_signal('bolometer')
/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/imas2tofu/_core.py:486: RuntimeWarning: divide by zero encountered in true_divide
  return np.sqrt(phi / np.nanmax(phi, axis=1)[:,None])
/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/imas2tofu/_core.py:486: RuntimeWarning: invalid value encountered in true_divide
  return np.sqrt(phi / np.nanmax(phi, axis=1)[:,None])
/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/imas2tofu/_core.py:486: RuntimeWarning: invalid value encountered in sqrt
  return np.sqrt(phi / np.nanmax(phi, axis=1)[:,None])
/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/imas2tofu/_core.py:1969: RuntimeWarning: invalid value encountered in greater
  out[ii][np.abs(out[ii]) > 1.e30] = np.nan
/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/imas2tofu/_core.py:2095: UserWarning: The following data could not be retrieved:
	- equilibrium:
		2dmeshFaces  : list index out of range
  warnings.warn(msg)
---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
<ipython-input-8-4e709dfb4d67> in <module>()
----> 1 sig = multi.calc_signal('bolometer')

/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/imas2tofu/_core.py in calc_signal(self, ids, dsig, tlim, t, res, quant, ref1d, ref2d, q2dR, q2dPhi, q2dZ, Brightness, interp_t, indch, indch_auto, Name, occ_cam, occ_plasma, config, dextra, t0, datacls, geomcls, bck, fallback_X, nan, pos, plot, plot_compare, plot_plasma)
   3508         plasma = self.to_Plasma2D(tlim=tlim, dsig=dsig, t0=t0,
   3509                                   Name=None, occ=occ_plasma, config=cam.config, out=object,
-> 3510                                   plot=False, dextra=dextra, nan=True, pos=None)
   3511 
   3512         # Intermediate computation if necessary

/Home/DV226270/ToFu_All/tofu_git/tofu/tofu/imas2tofu/_core.py in to_Plasma2D(self, tlim, dsig, t0, Name, occ, config, out, plot, plot_sig, plot_X, bck, dextra, nan, pos, shapeRZ)
   2907                                + "\t- '2dmeshR' and '2dmeshZ'\n"
   2908                                + "\t- '2dmeshNodes' and '2dmeshFaces'")
-> 2909                         raise Exception(msg)
   2910 
   2911                     # Nodes / Faces case

Exception: 2d mesh shall be provided either via:
	- '2dmeshR' and '2dmeshZ'
	- '2dmeshNodes' and '2dmeshFaces'

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions