Skip to content
Snippets Groups Projects
Commit 49e93734 authored by Matthieu Schaller's avatar Matthieu Schaller
Browse files

Merge branch 'kill_drift' into 'master'

Only drift the particles that need drifting

Here is an algorithmic speed-up. The plan is to drift only the cells that contain an active particles and the cells that have at least one neighbour with an active particle. 

 - If this condition is not met then `runner_do_drift()` just returns without performing any operation. 

 - If the condition is met, `runner_do_drift()` moves all particles (as before) from the last point in time where a drift was performed. 

We record for each cell the last time a drift was done such that we now by how much to drift things when needed.

Two exceptions to this rule: before reconstructing and before duping a snapshot,  we drift all particles as we need correct position information at these two stages.

Note that I have made this an engine policy to ease the testing. Drifting all particles can be restored by setting the right flag.

@nnrw56  could you check that the function `cell_is_drift_needed()` makes sense and fully does what it says it does ? Also could you let me know whether you also agree with the whole logic and implementation.


See merge request !225
parents 5641fa31 5c4963fc
No related branches found
No related tags found
1 merge request!225Only drift the particles that need drifting
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment