The example in hybrid/Vortex in cell does not finish in reasonable time. The last working commit is cb9b4404660a7450603a64d8769f1839a3265d10. Even the code at this stage cannot run in parallel.
By comparing the resulting generated code I found the following differences that could lead to the unwanted behavior:
The indices used in the MoveKey abstraction for Curl are different. This might be introduced by 2fbcb9492c323b1d1a1637f5f70c2ff59cf4270e
rhs is calculated differently between the versions. Where vorticity had been in the old version, it now uses velocity. Introduced by e278b84055f342b1e5389063cb31e3324240da9d
rhs has two additions of nu * Lap in the first part.
The indices used in the MoveKey abstraction of GradientWithFactor are different.
By comparing with the Numerics/3_vortex_in_cell/main_petsc_opt.cpp of OpenFPM we found several missing ghost_getand ghost_put. This needs to be investigated further.
The example in hybrid/Vortex in cell does not finish in reasonable time. The last working commit is cb9b4404660a7450603a64d8769f1839a3265d10. Even the code at this stage cannot run in parallel.
By comparing the resulting generated code I found the following differences that could lead to the unwanted behavior:
MoveKey
abstraction forCurl
are different. This might be introduced by 2fbcb9492c323b1d1a1637f5f70c2ff59cf4270erhs
is calculated differently between the versions. Where vorticity had been in the old version, it now uses velocity. Introduced by e278b84055f342b1e5389063cb31e3324240da9drhs
has two additions ofnu * Lap
in the first part.MoveKey
abstraction ofGradientWithFactor
are different.By comparing with the
Numerics/3_vortex_in_cell/main_petsc_opt.cpp
of OpenFPM we found several missingghost_get
andghost_put
. This needs to be investigated further.ghost_get<vorticity> between
comp_veland
calc_rhs`calc_rhs
ghost_get<rhs>
ghost_get<velocity>