ammarhakim / gkyl

This is the main source repo for the Gkeyll 2.0 code. Please see gkeyll.rtfd.io for details.
https://gkeyll.readthedocs.io/en/latest/
56 stars 15 forks source link

Add support for parallel vlasov-poisson + make external Vlasov force more efficient #132

Closed manauref closed 1 year ago

manauref commented 1 year ago

(corresponding gkylzero changes are in PR 201: https://github.com/ammarhakim/gkylzero/pull/201)

  1. Modify FemPoisson and MaxwellField to add support for multi-MPI process Vlasov-Poisson solves. I tested with the vp-sheath reg test, using MPI decomposition along x or species, on CPUs and GPUs, and in all cases got the same result.
  2. Change the handling of Vlasov external forcing so that users can specify separable forces (where time dependence is a multiplicative factor/function), or a table of separable forces that gets added. This allows us to project the spatial dependence only once, which should make it particularly efficient on GPUs.