Roadmap
Clean up code and increase code coverage
Code not covered should be removed, except for very good reasons.
fluidsim-core should be >~95%, with proper unittests.
See https://foss.heptapod.net/fluiddyn/fluidsim/-/issues/100
Fluidsim-core and fluidsim-… packages for using third-party programs
snek5000 stable
fluidsim-core should grow, in particular by moving code from fluidsim and snek5000 to fluidsim-core when needed for the implementation of another package (in particular fluidsim-openfoam).
fluidsim-… (OpenFoam, Dedalus, Basilisk, …)
Fluidsim
Specialized in pseudo-spectral Fourier.
Questions about focus:
What about cos/sin transforms?
What about
fluidsim.solvers.sphere
?
SVV (Spectral Vanishing Viscosity)
Different diffusivity coefficients for different variables (Prandtl/Schmidt numbers), in particular for ns3d.strat.
cos/sin transform (how? options operators?)
More 3D solvers:
MHD
… (?)
Linear stability (as in NS3D
FFT accelerated with GPU and MPI+GPU (fluidfft)
Simul class made of 2 (or n) interacting Simul classes. For example, ns2d + passive scalar at higher resolution. Or fluid-structure interaction as in FLUSI (see !104)
Particles and Lagrangian dynamics
Long term
API to dynamically define a solver
“Ability to dynamically and concisely build a solver is what Dedalus is good at. And performance and batteries-included approach is where FluidSim shines. Our InfoSolver + Parameters approach is flexible but requires a lot of boilerplate code. Even today I always need to refer to documentation while creating a new solver. It must be possible to create intuitive factory classes which dynamically generate InfoSolver, Parameters, Simul classes for us. We could refer to some well known design patterns for inspiration.” (Ashwin V. Mohanan)
Explore use of type hints
Inline or separate *.pyi files? Use MonkeyType or similar to autogenerate type hints from tests? Some inspiration: FOSDEM talk and this blog post