Hint
Example code: https://github.com/cselab/korali/tree/master/examples/study.cases/CUP3D/
Study Case: Swarm of Swimmers
Environment for artificial swimmers, described by the StefanFish class (see _deps/CUP-3D/Obstacles/Stefanfish{.cpp,.h}).
The state is given the relative position \(\Delta x, \Delta y\) to the obstacle, the orientation \(\theta\), the phase \(\phi\), the speed \(u,v\) and angular velocity \(\omega\), the time of the last action \(t_{act}\) and previous two baseline curvatures \(C_{-1},C_{-2}\).
The action is given by modifying the baseline curvature \(C_0\) and the swimming period \(T\).
The reward is given by the (Froude) swimming efficiency \(\eta\).
Settings
The setup is described in the setting.sh file.
Running the code
The application is launched locally (or on an interactive node on Piz Daint) using
./run-vracer-swimmer.sh
If you are ready for production you can submitt a job to the batch-system using
./sbatch-run-vracer-swimmer.sh
Here you can change the number of environments for the solver with NWORKER and the number of ranks per worker via NRANKS.