Skip to content

Add a new feature of Lagrangian points tracking

Ankang Gao requested to merge gaoak/nektar:feature/LagrangianVortex into master

Issue/feature addressed

A new filter feature of tracking many Lagrangian points in parallel is implemented. The points are distributed among different threads. MPI communication is used when the Lagrangian point is not found in the local mesh partition.

This feature can be developed into a particle-laden force. So not sure whether this feature should be placed in the filter or the forcing folder.

Proposed solution

Points are stored twice. One copy is the stationary points, which are fixed in the thread. Another copy is the mobile points, which can move based on the mesh partition.

When evaluating the physics values on the mobile points, we first search the local mesh partition. For the points that are not found in the local partition, do a global search. Once the thread whose mesh partition contains some unfound mobile points, move these points to the corresponding thread.

After evaluation the physics values on the mobile points, send the data back to thread which contains the corresponding stationary points.

Implementation

Design of the filter! design

Tests

2-D, 3DH1D and 3D tests have been added.

A 2-D example (plunging airfoil with 256 X 128 points) is as follows

Points_R0000_T000.000000

Points_R0000_T001.570796

A 3DH1D example (plunging airfoil with 32 X 32 X 64 points) is as follows

Points_R00000_T000.000000

Points_R00000_T000.950000

The trajectories of sample points are

trajectory2

Suggested reviewers

Please suggest any people who would be appropriate to review your code.

Notes

Please add any other information that could be useful for reviewers.

Checklist

  • Functions and classes, or changes to them, are documented.
  • User guide/documentation is updated.
  • Changelog is updated.
  • Suitable tests added for new functionality.
  • Contributed code is correctly formatted. (See the contributing guidelines).
  • License added to any new files.
  • No extraneous files have been added (e.g. compiler output or test data files).
Edited by Ankang Gao

Merge request reports