Skip to content

Adaptive numerical simulations with Trixi.jl: A case study of Julia for scientific computing

License

Notifications You must be signed in to change notification settings

trixi-framework/paper-2021-juliacon

Repository files navigation

Adaptive numerical simulations with Trixi.jl: A case study of Julia for scientific computing

License: MIT DOI status

This repository contains the source files of the paper on Trixi.jl to be submitted to the proceedings of JuliaCon 2021. Additionally, it also contains material to reproduce the numerical experiments reported therein.

Abstract

We present Trixi.jl, a Julia package for adaptive high-order numerical simulations of hyperbolic partial differential equations. Utilizing Julia's strengths, Trixi.jl is extensible, easy to use, and fast. We describe the main design choices that enable these features and compare Trixi.jl with a mature open source Fortran code that uses the same numerical methods. We conclude with an assessment of Julia for simulation-focused scientific computing, an area that is still dominated by traditional high-performance computing languages such as C, C++, and Fortran.

Referencing

This repository contains information and code to reproduce the results presented in the article

@article{ranocha2022adaptive,
  title={Adaptive numerical simulations with {T}rixi.jl:
         {A} case study of {J}ulia for scientific computing},
  author={Ranocha, Hendrik and Schlottke-Lakemper, Michael and Winters, Andrew Ross
          and Faulhaber, Erik and Chan, Jesse and Gassner, Gregor},
  journal={Proceedings of the JuliaCon Conferences},
  volume={1},
  number={1},
  pages={77},
  year={2022},
  month={01},
  publisher={The Open Journal},
  doi={10.21105/jcon.00077},
  eprint={2108.06476},
  eprinttype={arXiv},
  eprintclass={cs.MS}
}

If you find these results useful, please cite the article mentioned above. If you use the implementations provided here, please also cite this repository as

@misc{ranocha2021adaptiveRepro,
  title={Reproducibility repository for
         Adaptive numerical simulations with {T}rixi.jl:
         {A} case study of {J}ulia for scientific computing},
  author={Ranocha, Hendrik and Schlottke-Lakemper, Michael and Winters, Andrew Ross
          and Faulhaber, Erik and Chan, Jesse and Gassner, Gregor},
  year={2021},
  month={08},
  howpublished={\url{https://github.com/trixi-framework/paper-2021-juliacon}},
  doi={10.5281/zenodo.5201484}
}

Reproducing the numerical experiments

  • All material necessary to reproduce the simulation of a Mach 2000 jet shown in the paper is contained in the folder figure_jet, including a README.md with instructions.
  • All material necessary to reproduce the simulation of a Kelvin-Helmholtz shown in the paper is contained in the folder figure_kelvin_helmholtz, including a README.md with instructions.
  • All material necessary to reproduce the acoustics simulation on a curved high-order mesh shown in the paper is contained in the folder figure_gingerbread_man, including a README.md with instructions.
  • All material necessary to reproduce the performance comparison with the Fortran code FLUXO is contained in the folder pid_runs, including a README.md with instructions.

Building the paper

The source files of the paper are contained in the folder paper. Build the paper by running

make

Clean up your mess afterwards with

make clean

Useful links

License

The source code included in this repository is licensed under the MIT license (see LICENSE.md). The manuscript is subject to the license of the JuliaCon proceedings.

Disclaimer

Everything is provided as is and without warranty. Use at your own risk!

About

Adaptive numerical simulations with Trixi.jl: A case study of Julia for scientific computing

Resources

License

Stars

Watchers

Forks

Languages