desc.magnetic_fields.field_line_integrate
- class desc.magnetic_fields.field_line_integrate(r0, z0, phis, field, params=None, source_grid=None, rtol=1e-08, atol=1e-08, maxstep=1000, min_step_size=1e-08, solver=Tsit5(), bounds_R=(0, inf), bounds_Z=(-inf, inf), chunk_size=None, **kwargs)Source
Trace field lines by integration, using diffrax package.
- Parameters:
r0 (array-like) – initial starting coordinates for r,z on phi=phis[0] plane
z0 (array-like) – initial starting coordinates for r,z on phi=phis[0] plane
phis (array-like) – strictly increasing array of toroidal angles to output r,z at Note that phis is the geometric toroidal agitngle for positive Bphi, and the negative toroidal angle for negative Bphi
field (MagneticField) – source of magnetic field to integrate
params (dict, optional) – parameters passed to field
source_grid (Grid, optional) – Collocation points used to discretize source field.
rtol (float) – relative and absolute tolerances for ode integration
atol (float) – relative and absolute tolerances for ode integration
maxstep (int) – maximum number of steps between different phis
min_step_size (float) – minimum step size (in phi) that the integration can take. default is 1e-8
solver (diffrax.Solver) – diffrax Solver object to use in integration, defaults to Tsit5(), a RK45 explicit solver
bounds_R (tuple of (float,float), optional) – R bounds for field line integration bounding box. Trajectories that leave this box will be stopped, and NaN returned for points outside the box. Defaults to (0,np.inf)
bounds_Z (tuple of (float,float), optional) – Z bounds for field line integration bounding box. Trajectories that leave this box will be stopped, and NaN returned for points outside the box. Defaults to (-np.inf,np.inf)
chunk_size (int or None) – Size to split computation into chunks of evaluation points. If no chunking should be done or the chunk size is the full input then supply
None. Default isNone.kwargs (dict) – keyword arguments to be passed into the
diffrax.diffeqsolve
- Returns:
r, z (ndarray) – arrays of r, z coordinates at specified phi angles