2022-07-27 –, Red
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 behavior.
Applications of interest in computational fluid mechanics typically occur on domains with curved boundaries. Further, the solution of a non-linear physical model can develop complex phenomena such as discontinuities, singularities, and turbulence.
Attacking such complex flow problems may seem daunting. In this talk, however, we present a toolchain with components entirely available in the Julia ecosystem to do just that. In broad strokes the workflow is:
- Use HOHQMesh.jl to interactively prototype and visualize a domain with curved boundaries.
- HOHQMesh.jl then generates an all quadrilateral mesh amenable for high-order numerical methods.
- The mesh file is passed to Trixi.jl, a numerical simulation framework for conservation laws.
- Solution-adaptive refinement of the mesh within Trixi.jl is handled by P4est.jl.
- After the simulation, a first visualization is made using either Plots.jl or Makie.jl.
- Solution data can also be exported with Trixi2Vtk.jl for visualization in external software like ParaView.
The strength and simplicity of this workflow is through the combination of several packages either originally written in Julia, like Trixi.jl, or wrappers, like P4est.jl or HOHQMesh.jl, that provide Julia users access to powerful, well-developed numerical libraries and tools written in other programming languages.
I am an Assistant Professor in the Department of Mathematics, Division of Applied Mathematics at Linköping University in Linköping, Sweden.