Fortran-to-JAX map#
For users coming from Fortran TRACMASS 7: where each piece of the Fortran code went. For the namelist variables see the namelist-to-settings map.
Routines#
Fortran (TRACMASS 7) |
TRACMASS-JAX |
|---|---|
|
|
|
|
|
|
|
adapter |
|
adapter |
|
the |
|
|
|
|
|
Python loop over windows |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
not ported: |
|
|
|
|
|
|
|
land, domain edges and |
|
|
|
|
|
|
|
|
|
not yet |
|
not yet |
|
not yet |
|
not yet |
Variables#
Fortran |
TRACMASS-JAX |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
same names in |
|
|
|
|
|
|
Behavioural differences#
Particles in lock-step. All particles advance together, one sub-cycle at a time. Fortran finishes one trajectory’s sub-steps before moving to the next. The time-interpolation weight is shared across particles, as in Fortran (see Time interpolation).
tests/test_fortran_comparison.pychecks the result against the Fortran Theoretical run.Single precision positions. Positions and fluxes are 32-bit by default. Set
JAX_ENABLE_X64=True(the pixi environment does) for 64-bit.Domain edges. On non-periodic axes, entering the outermost row or column stops the particle (
out_of_bounds_h), because the flux through the outer face of those cells is not part of the grid.Safety stops. Particles that make no progress, fall far behind or hit the per-window sub-cycle limit are stopped, each with its own reason code.