The BiotSavartBC extension to WL can't be used with v1.4 or 1.5. This is because the BC types and internals to mom_step! were are changed.
This was marked as a breaking change, so it's ok in principle. But if we anticipate that we will have more extensions to WL capabilities in the future (Multi-Phase flow, Fluid Structure Interactions, etc) then we should consider design improvements to WL that could help avoid breaking things downstream.
For now, I notice that mom_step! lives in Flow.jl, but it depends on almost everything in Simulation. Moving it to WaterLily.jl and giving the full Simulation as an input would allow people to type-specialize. We could also try to refactor it a bit since it's repetitive and a little arbitrary. For example, we need BC! enforcement inside the project function for BiotSavartBCs (since they are applied iteratively). I'm not sure if a similar issue arises in MultiPhase flows (@TzuYaoHuang) or FSI (@marinlauber).
The BiotSavartBC extension to WL can't be used with v1.4 or 1.5. This is because the BC types and internals to
mom_step!were are changed.This was marked as a breaking change, so it's ok in principle. But if we anticipate that we will have more extensions to WL capabilities in the future (Multi-Phase flow, Fluid Structure Interactions, etc) then we should consider design improvements to WL that could help avoid breaking things downstream.
For now, I notice that
mom_step!lives in Flow.jl, but it depends on almost everything inSimulation. Moving it to WaterLily.jl and giving the fullSimulationas an input would allow people to type-specialize. We could also try to refactor it a bit since it's repetitive and a little arbitrary. For example, we needBC!enforcement inside theprojectfunction for BiotSavartBCs (since they are applied iteratively). I'm not sure if a similar issue arises in MultiPhase flows (@TzuYaoHuang) or FSI (@marinlauber).