Trixi.jl
A flexible, tree-based numerical simulation framework for PDEs written in Julia.
Trixi.jl is a flexible numerical simulation framework for partial differential equations. It is based on a two-dimensional hierarchical mesh (quadtree) and supports several governing equations such as the compressible Euler equations, magnetohydrodynamics equations, or hyperbolic diffusion equations. Trixi is written in Julia and aims to be easy to use and extend also for new or inexperienced users.
Installation
If you have not yet installed Julia, please follow the instructions for your operating system found here. Trixi works with Julia v1.5.
You can then install Trixi, the postprocessing tools, and the respective dependencies by performing the following steps:
- Clone the repository:
git clone git@github.com:trixi-framework/Trixi.jl.git
- Enter the cloned directory and run the following command to install all
required dependencies:
julia utils/install.jl
Trixi is also a registered Julia package. Hence, you can also install Trixi via
julia> import Pkg
julia> Pkg.add("Trixi")
If you do this and want to modify Trixi, you can run
julia> Pkg.dev("Trixi") # get a clone of the git repository, usually in ~/.julia/dev/Trixi
Usage
Enter the root directory Trixi.jl/
and execute
julia --project=@.
This will start an interactive Julia session (REPL) using the project setup of Trixi.jl. If you have installed Trixi.jl in your default project environment, you can just start Julia as usual
julia
In the Julia REPL, you need to load the package Trixi
julia> using Trixi
To run a simulation, execute
Trixi.run("examples/parameters.toml")
You can also pass a different parameters file or edit examples/parameters.toml
to
modify the simulation setup.
Sometimes it can be helpful to run Trixi non-interactively in batch mode, e.g., when starting a simulation from another script. This is possible by directly passing the code that shall be executed to Julia
julia -e 'using Trixi; Trixi.run("examples/parameters.toml")'
Documentation
Additional documentation is available that contains more information on how to
use Trixi interactively, how to visualize output files etc. It also includes a
section on our preferred development workflow and some tips for using Git. The
latest documentation can be accessed either
online or under docs/src
.
Authors
Trixi was initiated by Michael Schlottke-Lakemper and Gregor Gassner (both University of Cologne, Germany). Together with Hendrik Ranocha (KAUST, Saudi Arabia) and Andrew Winters (Linköping University, Sweden), they are the principal developers of Trixi. The full list of contributors can be found in AUTHORS.md.
License and contributing
Trixi is licensed under the MIT license (see LICENSE.md). Since Trixi is an open-source project, we are very happy to accept contributions from the community. Please refer to CONTRIBUTING.md for more details.