ammarhakim / gkylzero

Lowest, compiled layer of Gkeyll infrastructure.
MIT License
22 stars 5 forks source link

Multib app gk cubicbmag #449

Closed akashukla closed 3 months ago

akashukla commented 3 months ago

This PR is associated with Issue (DR) #448 . For geometries read from EFIT, B is now calculated using a cubic representation of the poloidal flux, psi, rather than with a quadratic representation + recovery. There is also now an option to use the cubic representation for field line tracing, although the quadratic representation is used by default since it is faster.

Note about a lot of the cleanup in this PR:

The reason we no longer need the bmag kernels and no longer need F(psi) to be stored by efit updater is that now the calculation of B(R,Z), which uses this EFIT-given quantity F(psi) along with psi(R,Z), happens entirely within the efit updater. This was made very simple by the cubics.

Now the calc_bmag updater simply uses mapc2p given by the field line tracer along with B(R,Z) given by the efit updater to give us B on the computational grid.

Much of the cleanup in this branch is associated with this change. It used to be a lot of work (done by the calc_bmag updater) to calculate B(R,Z). Now B(R,Z) is calculated by the efit updater immediately after reading the efit file.