Skip to article frontmatterSkip to article content

🎉 Congratulations! You have completed this hands-on training on numerical simulations with the samurai library. Throughout these practical sessions, you have progressively built expertise in adaptive mesh refinement techniques and finite volume methods for solving conservation laws.

📚 What You Have Learned

Part 0: Environment Setup 🔧

You started by setting up your development environment and getting familiar with the tools necessary for computational fluid dynamics simulations. This included installing samurai, configuring compilers, and setting up visualization tools like ParaView.

Part 1: First Steps with samurai 🚀

You learned the fundamental concepts of samurai:

These foundational skills provided the building blocks for all subsequent work.

Part 2: Naive Burgers Implementation 🌊

You implemented your first numerical scheme:

This part highlighted the importance of proper flux handling at interfaces between different refinement levels.

Part 3: Flux Mechanism in samurai ⚡

You mastered samurai’s powerful flux mechanism:

This demonstrated how samurai elegantly handles complex multi-dimensional problems with the same code structure across dimensions.

Part 4: Euler Equations 💨

You tackled the most challenging problem:

This final part integrated all your skills: mesh management, flux computation, adaptation strategies, and physical insight.

🎯 Key Skills Acquired

By completing this training, you are now able to:

  1. ⚙️ Design and implement finite volume schemes for conservation laws using samurai’s flux mechanism

  2. 🎛️ Leverage adaptive mesh refinement to optimize computational resources while maintaining accuracy

  3. 📐 Handle multi-dimensional problems seamlessly with samurai’s unified framework

  4. 🔬 Implement sophisticated Riemann solvers (Rusanov, HLL, HLLC) for compressible flows

  5. 🛠️ Create custom operators (boundary conditions, prediction operators) tailored to specific problems

  6. 📊 Visualize and analyze simulation results to validate implementations

  7. 📝 Work with both conservative and non-conservative formulations of PDEs

💪 The Power of samurai

Throughout this training, you experienced the unique advantages of the samurai library:

🗜️ Innovative Data Structure

samurai’s compressed interval-based representation enables:

🔗 Flexibility and Extensibility

📏 Multi-Resolution Capabilities

💻 Modern C++ Design

🔭 Going Further

You are now equipped to:

📚 Resources

🙏 Acknowledgments

This training material was developed by the HPC-Maths team. samurai is an open-source project that benefits from contributions by researchers and developers worldwide. We encourage you to join the community, share your experiences, and help improve this powerful tool for adaptive mesh refinement.

Special thanks to Ward Haegeman and Giuseppe Orlando for their careful review, valuable suggestions for improvement, and for being the first participants to test this training material. Their feedback was essential to refining the content and exercises.

Thank you for your participation in this hands-on training. We hope you found it valuable and that samurai becomes a useful tool in your numerical simulation toolkit!

If you enjoyed this hands-on training, please consider giving the repository a star on GitHub – it’s the best reward for our efforts!


For questions, feedback, or support, please visit the samurai GitHub repository or contact the development team.