desc.equilibrium.Equilibrium.compute

Equilibrium.compute(names, grid=None, params=None, transforms=None, profiles=None, data=None, override_grid=True, **kwargs)Source

Compute the quantity given by name on grid.

If grid.coordinates!="rtz" then this method may take longer to run than usual as a coordinate mapping subproblem will need to be solved.

Parameters:
  • names (str or array-like of str) – Name(s) of the quantity(s) to compute.

  • grid (Grid, optional) – Grid of coordinates to evaluate at. Defaults to the quadrature grid.

  • params (dict of ndarray) – Parameters from the equilibrium, such as R_lmn, Z_lmn, i_l, p_l, etc Defaults to attributes of self.

  • transforms (dict of Transform) – Transforms for R, Z, lambda, etc. Default is to build from grid

  • profiles (dict of Profile) – Profile objects for pressure, iota, current, etc. Defaults to attributes of self

  • data (dict[str, jnp.ndarray]) – Data computed so far, generally output from other compute functions. Any vector v = v¹ R̂ + v² ϕ̂ + v³ Ẑ should be given in components v = [v¹, v², v³] where R̂, ϕ̂, Ẑ are the normalized basis vectors of the cylindrical coordinates R, ϕ, Z.

  • override_grid (bool) – If True, override the user supplied grid if necessary and use a full resolution grid to compute quantities and then downsample to user requested grid. If False, uses only the user specified grid, which may lead to inaccurate values for surface or volume averages.

Returns:

data (dict of ndarray) – Computed quantity and intermediate variables.