1.3: First steps in Trixi.jl: Changing Trixi.jl itself
If you plan on editing Trixi.jl itself, you can download Trixi.jl locally and run it from the cloned directory.
Forking Trixi.jl
To create your own fork of Trixi.jl, log in to your GitHub account, visit the Trixi.jl GitHub repository and click the Fork
button located in the upper-right corner of the page. Then, click on Create fork
in the opened window to complete the forking process.
Cloning Trixi.jl
Windows
If you are using Windows, you can clone Trixi.jl by using the GitHub Desktop tool:
- If you do not have a GitHub account yet, create it on the GitHub website.
- Download and install GitHub Desktop and then log in to your account.
- Open GitHub Desktop, press
Ctrl+Shift+O
. - In the opened window, navigate to the
URL
tab and pastetrixi-framework/Trixi.jl
orYourGitHubUserName/Trixi.jl
to clone your own fork of Trixi.jl, and choose the path to the folder where you want to save Trixi.jl. Then clickClone
and Trixi.jl will be cloned to your computer.
Now you cloned Trixi.jl and only need to tell Julia to use the local clone as the package sources:
- Open a terminal using
Win+r
andcmd
. Navigate to the folder with the cloned Trixi.jl usingcd
. - Create a new directory
run
, enter it, and start Julia with the--project=.
flag:mkdir run cd run julia --project=.
- Now run the following commands to install all relevant packages:
using Pkg; Pkg.develop(PackageSpec(path="..")) # Tell Julia to use the local Trixi.jl clone Pkg.add(["OrdinaryDiffEq", "Plots"]) # Install additional packages
Now you already installed Trixi.jl from your local clone. Note that if you installed Trixi.jl this way, you always have to start Julia with the --project
flag set to your run
directory, e.g.,
julia --project=.
if already inside the run
directory.
Linux
You can clone Trixi.jl to your computer by executing the following commands:
git clone git@github.com:trixi-framework/Trixi.jl.git
# If an error occurs, try the following:
# git clone https://github.com/trixi-framework/Trixi.jl
cd Trixi.jl
mkdir run
cd run
julia --project=. -e 'using Pkg; Pkg.develop(PackageSpec(path=".."))' # Tell Julia to use the local Trixi.jl clone
julia --project=. -e 'using Pkg; Pkg.add(["OrdinaryDiffEq", "Plots"])' # Install additional packages
Alternatively, you can clone your own fork of Trixi.jl by replacing the link git@github.com:trixi-framework/Trixi.jl.git
with git@github.com:YourGitHubUserName/Trixi.jl.git
.
Note that if you installed Trixi.jl this way, you always have to start Julia with the --project
flag set to your run
directory, e.g.,
julia --project=.
if already inside the run
directory.
Developing Trixi.jl
If you've created and cloned your own fork of Trixi.jl, you can make local changes to Trixi.jl and propose them as a Pull Request (PR) to be merged into trixi-framework/Trixi.jl
.
Linux and MacOS utilize the git
version control system to manage changes between your local and remote repositories. The most commonly used commands include add
, commit
, push
and pull
. You can find detailed information about these functions in the Git documentation.
For Windows and GitHub Desktop users, refer to the documentation of GitHub Desktop.
After making local changes to Trixi.jl and pushing them to the remote repository, you can open a Pull Request (PR) from your branch to the main branch of trixi-framework/Trixi.jl
. Then, follow the Review checklist provided in the Pull Request to streamline the review process.
Additional reading
To further delve into Trixi.jl, you may have a look at the following introductory tutorials.
- Behind the scenes of a simulation setup will guide you through a simple Trixi.jl setup ("elixir"), giving an overview of what happens in the background during the initialization of a simulation. It clarifies some of the more fundamental, technical concepts that are applicable to a variety of (also more complex) configurations.
- Introduction to DG methods will teach you how to set up a simple way to approximate the solution of a hyperbolic partial differential equation. It will be especially useful to learn about the Discontinuous Galerkin method and the way it is implemented in Trixi.jl.
- Adding a new scalar conservation law and Adding a non-conservative equation describe how to add new physics models that are not yet included in Trixi.jl.
- Callbacks gives an overview of how to regularly execute specific actions during a simulation, e.g., to store the solution or adapt the mesh.
This page was generated using Literate.jl.