Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • SWIFTsim SWIFTsim
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 57
    • Issues 57
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 21
    • Merge requests 21
  • Deployments
    • Deployments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • SWIFT
  • SWIFTsimSWIFTsim
  • Merge requests
  • !292

Drift on demand

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Matthieu Schaller requested to merge drift_on_demand into master Dec 11, 2016
  • Overview 24
  • Commits 27
  • Changes 12

Fix to the time integration bug that triggers #248 (closed).

As written in the minutes, finding all the cells that need to be drifted can be really difficult in some convoluted situations and I'd like to avoid a full tree walk.

My solution is as follows:

  • (Re-)Create a drift task. When a cell has active particles, it's drift task is active
  • The runner_do_drift function gets replaced by a runner_do_unskip function that does not touch the particles but just updates the status of the tasks.#
  • There is a runner_do_drift_all function that drifts everything for the cases where we need this (rebuild or snapshot).
  • If a pair task involves a cell that is inactive and has hence not been drifted, the pair task starts by calling the drift operation on this cell and then carries on with its regular work. Most of the drifts are done via the regular task though.

In terms of performance it looks fairly similar to the current master. But now it is physically correct.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: drift_on_demand