Simul class made of coupled Simul classes
It should be possible to define solvers composed of coupled subsystems. They could be used for different applications:
- particles advected in a flow (simplest, we could start by this case, for example ns2d + particles)
- fluid + passive scalar at higher resolution (warning: transfers between differently distributed arrays of different shapes)
- fluid-structure interaction (see for example https://www.sciencedirect.com/science/article/pii/S0021999114006792)
It should be possible to record in a base Simul
class different interacting (coupled) Simul classes.
The creation of the result directory should be done at the level of the main class and it should be possible to tell the interacting classes that they should use subdirectories inside the main directory.
For example for a fluid-structure interaction solver, something like:
assert sim.sim_fluid.output.path_run == sim.output.path_run + "/fluid"
assert sim.sim_solid.output.path_run == sim.output.path_run + "/solid"
The interaction should be coded in the main TimeStepping
class. Of course the 2 timesteps could be very different. As the computational cost of advancement of the different subsystems.