Trixi.jl

Docs-stableDocs-devBuild Linux & macOSBuild WindowsCodecovCoverallsLicense: MITDOIGitHub commits since tagged version

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:

  1. Clone the repository:
    git clone git@github.com:trixi-framework/Trixi.jl.git
    
  2. 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.