You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The actual significant changes are quite small, but these have big knock-on
effects in the tests. Main changes:
- Z is still periodic, but this is now implemented using guard cells instead of
modulus in `SpecificInd::zp/zm`
- Adds a new `Mesh` method `sendZ`
- `NZPE` is now a user-settable option
- Domain decomposition is done in Z before the usual X-Y decomposition
- The X/Y _boundary_ regions do not include the Z guards
- These corners should be filled in by `Mesh::communicate`
- Handle Z guards in `Gridfile`
- Handle Z guards in FFTs for `LaplaceCyclic`, `LaplacePCR`, `LaplacePCR_THOMAS`
- Pull out common classes for the FFT and DST transforms
Other bug fixes:
- `BoutMesh::GlobalZ` should start at the first interior point, not in the guards
Changes to the tests:
- `FakeMesh` now has 1 Z guard cell, which changes the size of the interior
domain, and requires many of the `Field*` tests to be updated
- `IndexOffsetTest` needs to skip the Z guards, just like X, Y
- Derivative tests need extra point for interior + 2 * guards
- The Petsc and Hypre Laplace unit tests require the Z guards to be communicated
in order to fill in the global indices. This requires `FakeMesh` to actually
implement `sendZ`. This just copies the relevant points into the Z guards
- Also, we should not check the result in the Z guards
- I've also pulled out a bunch of common machinery between these two tests
- `BoutMeshTest` now needs to understand Z guards and Z processors
This change also requires `boutdata.collect` to properly handle Z guards as well
0 commit comments