Forcing similar to MILESTONE experiments
I'd like to implement a forcing reproducing what is done in the MILESTONE experiments (see https://foss.heptapod.net/fluiddyn/fluidcoriolis/tree/branch/default/fluidcoriolis).
More specifically, a movement of an array of vertically invariant objects (by default, cylinders).
Parameters for this forcing:
m = params.forcing.milestone
m.objects.type (default: "cylinders")
m.objects.number
m.objects.diameter
m.movement.type
u = m.movement.uniform
u.speed
s = m.movement.sinusoidal
s.length
s.period
pu = m.movement.periodic_uniform
pu.length
pu.length_acc
pu.speed
For each time step, we need (see https://foss.heptapod.net/fluiddyn/fluidsim/blob/branch/default/fluidsim/solvers/ns3d/forcing.py#L152):
- location and speed of the objects (all objects have the same speed!)
- a 2d array/field
solid(t, x, y)
computed from the location forcing(t, x, y, z) = sigma * solid(t, x, y) * (speed_target(t) - velocity(t, x, y, z))