Skip to content

Implementation for velocity averaging on the surface of a shell.

Nils Kohl requested to merge kohl/plate-avg into master

Fixes #292 (closed).


Includes:

  • New method in the PlateVelocityProvider to compute average velocities.
  • The LocalAveragingPointWeightProvider interface has been added to flexibly implement new rules for point locations and weights.
  • Providing two simple implementations for the interface (uniform circles and the Fibonacci sequence both with Gaussian weighting).
  • Added small app to visualize the points and weights on the sphere.
  • Quickly replaced the velocity computation in the demo app.

Still requires testing/discussion/cleanup/optimization/etc.

Some notes:

  • On my machine: with around 7 sample points (center + circle with 6 points) there is only a little performance difference compared to the previous implementation (about 10-20% increase in run time for the plate velocity computation in one test case). With 20 points the run time roughly doubles.

Example 1: UniformCirclesPointWeightProvider (created with app PlateAveragingPointsAndWeights):

avg_rings

Example 2: FibonacciLatticePointWeightProvider (created with app PlateAveragingPointsAndWeights):

avg_fib


Comparison of averages around plates moving in similar directions (color: velocity magnitude, arrows: velocity)

Before (always averaging to 0):

old

After (with UniformCirclesPointWeightProvider):

new

Edited by Marcus Mohr

Merge request reports

Loading