We present a Julia toolchain for the adaptive simulation of hyperbolic PDEs such as flow equations on complex domains. It begins with HOHQMesh.jl to create a curved, unstructured mesh. This mesh is then used in Trixi.jl, a numerical simulation framework for conservation laws. We visualize the results using Julia’s plotting packages. We highlight select features in Trixi.jl, like adaptive mesh refinement (AMR) or shock capturing, useful for practical applications with complex transient behaviour.
For more info on the Julia Programming Language, follow us on Twitter: https://twitter.com/JuliaLanguage and consider sponsoring us on GitHub: https://github.com/sponsors/JuliaLang
Resources
Presentation repository: https://github.com/trixi-framework/talk-2022-juliacon_toolchain
HOHQMESH.jl package repository: https://github.com/trixi-framework/HOHQMesh.jl
Makie Organization GitHub page: https://github.com/MakieOrg
Trixi.jl package repository: https://github.com/trixi-framework/Trixi.jl
Trixi2Vtk.jl package repository: https://github.com/trixi-framework/Trixi2Vtk.jl
Contents
00:00 Welcome and acknowledgements
00:41 Overview of workflow
01:37 Prototypical supersonic flow example
02:47 Overview of HOHQMesh.jl
03:54 Installing HOHQMesh.jl
04:38 Breakdown of domain for meshing
05:37 Creating and adding to a HOHQMesh.jl project
08:50 Generating the mesh and output files
09:53 Breakdown of desired solver features
10:44 Overview of Trixi.jl
11:29 Installing Trixi.jl
11:45 Description of a Trixi elixir file
12:14 Adding the physical model
13:19 Adding the mesh and boundary conditions
14:49 Adding the spatial discretization
16:07 Assembling the semidiscretization
16:48 Overview of callbacks
17:58 Description of the AMR callback
19:36 Time integration and running the elixir
20:53 First plot of solution using Makie
22:11 Postprocessing Trixi data with Trixi2Vtk.jl
23:02 Description of results from prototypical example
24:00 Conclusions and outlook
S/O to https://github.com/andrewwinters5000 for the video timestamps!
Want to help add timestamps to our YouTube videos to help with discoverability? Find out more here: https://github.com/JuliaCommunity/YouTubeVideoTimestamps
Interested in improving the auto generated captions? Get involved here: https://github.com/JuliaCommunity/YouTubeVideoSubtitles