Skip to content

[BUG] - Eulerian Material Derivative Routine Puzzler #10

@lmoresi

Description

@lmoresi

The ddt.py routines are Material Derivative classes.

There are three of them which are designed to handle the various end member cases:

  1. Lagrangian: the classic swarm-based history manager in which we just supply history terms and update the value of the variable as it is carried by the flow. This is best suited to strong advection (weak diffusion) and works best in the no-diffusion limit.
  2. Semi-Lagrangian: computes values along the recent trajectory of the fluid at a nodal point. Works well for balanced advection / diffusion but will not work very well if the fluid is very slowly moving compared to the diffusion timescale (it becomes overly diffusive due to interpolation steps).
  3. Eulerian: classical mesh-based advection diffusion which works well for weak advection and has all the usual Courant stability problems. It should work well in the pure diffusion limit.

We should be able to switch between these (plugin replacements for each other) but the current implementation of the Eulerian ddt class has no advection terms at all. It also has a different calling pattern to the other classes.

Metadata

Metadata

Labels

No labels
No labels

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions