From Mesh Generation to Adaptive Simulation: A Journey in Julia | Andrew Winters | JuliaCon 2022

From Mesh Generation to Adaptive Simulation: A Journey in Julia | Andrew Winters | JuliaCon 2022

4.465 Lượt nghe
From Mesh Generation to Adaptive Simulation: A Journey in Julia | Andrew Winters | JuliaCon 2022
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