TrixiParticles.jl is a high-performance simulation framework for particle-based methods for complex multiphysics applications, written in Julia.
TrixiParticles.jl focuses on the following use cases:
- Accurate and efficient physics-based modeling of complex multiphysics problems.
- Development of new particle-based methods and models.
- Accessible simulation setup for educational purposes, including student projects, coursework, and thesis work.
It offers intuitive configuration, robust pre- and post-processing, and vendor-agnostic GPU support based on the Julia package KernelAbstractions.jl.
- Incompressible Navier-Stokes flows
- Methods: Weakly Compressible Smoothed Particle Hydrodynamics (WCSPH), Entropically Damped Artificial Compressibility (EDAC), Implicit Incompressible Smoothed Particle Hydrodynamics (IISPH)
- Models: Surface Tension, Open Boundaries
- Structural mechanics
- Methods: Total Lagrangian SPH (TLSPH), Discrete Element Method (DEM)
- Fluid-Structure Interaction
- Particle sampling of complex geometries from
.stl,.asc, and.dxffiles. - Output formats:
- VTK
- GPU support for NVIDIA, AMD, and Apple devices
We provide several example simulation setups in the examples folder (which can be accessed from Julia via examples_dir()).
![]() 2D Dam Break |
![]() Moving Wall |
![]() Oscillating Beam |
![]() Dam Break with Elastic Plate |
If you have not installed Julia yet, please follow the instructions for your operating system. TrixiParticles.jl works with Julia v1.10 and newer. We recommend using the latest stable release of Julia.
TrixiParticles.jl is a registered Julia package. You can install TrixiParticles.jl, OrdinaryDiffEq.jl (used for time integration) and Plots.jl by executing the following commands in the Julia REPL:
julia> using Pkg
julia> Pkg.add(["TrixiParticles", "OrdinaryDiffEq", "Plots"])If you plan on editing TrixiParticles.jl itself, you can download TrixiParticles.jl to a local folder and use the code from the cloned directory:
git clone git@github.com:trixi-framework/TrixiParticles.jl.git
cd TrixiParticles.jl
mkdir run
julia --project=run -e 'using Pkg; Pkg.develop(PackageSpec(path="."))' # Add TrixiParticles.jl to `run` project
julia --project=run -e 'using Pkg; Pkg.add(["OrdinaryDiffEq", "Plots"])' # Add additional packagesIf you installed TrixiParticles.jl this way, you always have to start Julia with the
--project flag set to your run directory, e.g.,
julia --project=runfrom the TrixiParticles.jl root directory. Further details can be found in the documentation.
In the Julia REPL, first load the package TrixiParticles.jl.
julia> using TrixiParticles
Then start the simulation by executing
julia> trixi_include(joinpath(examples_dir(), "fluid", "hydrostatic_water_column_2d.jl"))
To visualize the result quickly, use Plots.jl:
julia> using Plots; plot(sol)This opens a new window with a 2D visualization of the final solution:

Further details can be found in the documentation.
You can find the documentation for the latest release here.
If you use TrixiParticles.jl in your own research or write a paper using results obtained with the help of TrixiParticles.jl, please cite it as
@misc{trixiparticles,
title={{T}rixi{P}articles.jl: {P}article-based multiphysics simulations in {J}ulia},
author={Erik Faulhaber and Niklas Neher and Sven Berger and
Michael Schlottke-Lakemper and Gregor Gassner},
year={2024},
howpublished={\url{https://github.com/trixi-framework/TrixiParticles.jl}},
doi={10.5281/zenodo.10797541}
}and
@article{neher2025trixiparticles,
author = {Niklas S. Neher and Erik Faulhaber and Sven Berger and Gregor J. Gassner and Michael Schlottke-Lakemper},
title = {TrixiParticles.jl: Particle-based multiphysics simulation in Julia},
journal = {Journal of Open Source Software},
volume = {10},
number = {105},
pages = {7044},
year = {2025},
publisher = {Open Journals},
doi = {10.21105/joss.07044},
url = {https://joss.theoj.org/papers/10.21105/joss.07044},
issn = {2475-9066}
}Erik Faulhaber (University of Cologne) and Niklas Neher (HLRS) implemented the foundations for TrixiParticles.jl and are principal developers along with Sven Berger (Hereon). The project was started by Michael Schlottke-Lakemper (University of Augsburg) and Gregor Gassner (University of Cologne), who provide scientific direction and technical advice. The full list of contributors can be found in AUTHORS.md.
TrixiParticles.jl is licensed under the MIT license (see LICENSE.md). Since TrixiParticles.jl is
an open-source project, we are very happy to accept contributions from the
community. Please refer to CONTRIBUTING.md for more details.
Note that we strive to be a friendly, inclusive open-source community and ask all members
of our community to adhere to our CODE_OF_CONDUCT.md.
To get in touch with the developers,
join us on Slack
or create an issue.
The project has benefited from funding from hereon, HiRSE, and through ScienceServe for the MATRIX project.







