Skip to content

Tidy compressible solver

Douglas Serson requested to merge feature/Compressible-opt into master

This MR makes several changes which I believe make the code for the compressible solver a lot more organised. I originally intended to work on the efficiency of the solver, but I only made a few changes towards this. The main changes are:

  • Move boundary conditions to separate class using factory

  • Move functions for converting variables (e.g. GetPressure) to a separate auxiliary class

  • Remove the ProblemType option and have RinglebFlow and IsentropicVortex as separate equation systems derived from Euler

  • Try to be more consistent about what should be in the CompressibleFlowSystem base class and what is specific to the particular equations

  • Rewrite the GetFluxVector functions in a more compact form, which depends on the problem dimension only in the loop limits

  • Allow passing Fwd and Bwd trace space to Advection and Diffusion operators as optional parameters. If these parameters are not set they are calculated as usual, but using them helps in saving some communication cost by reusing the values passed to the advection in the diffusion (perhaps a better condition is required to determine when to precompute these values).

I also implemented a semi-implicit DG/HDG for the unsteady advection diffusion, which seems to be working fine.

Merge request reports