To support parallelisation in `z`, we need to do a few things: - [x] check loops over `z` that currently go over `[0, LocalNz)` should be switched to `[zstart, zend]` instead - [x] check ranges over `z` that currently go over `[0, LocalNz)` should be switched to `[zstart, zend]` instead - [ ] convert remaining loops over `x, y, z` to use `BOUT_FOR` where possible - [x] guard anything using FFTs on `NZPE==1` - [ ] switch from using modulo for `z` periodicity to guard cells - [x] add communication in `z` (even for serial-in-z) - [x] default `MZG` - [ ] performance tests! - [x] domain decomposition in `z` - [x] modify `boutdata` and `xbout` to support parallel `z`
To support parallelisation in
z, we need to do a few things:zthat currently go over[0, LocalNz)should be switched to[zstart, zend]insteadzthat currently go over[0, LocalNz)should be switched to[zstart, zend]insteadx, y, zto useBOUT_FORwhere possibleNZPE==1zperiodicity to guard cellsz(even for serial-in-z)MZGzboutdataandxboutto support parallelz