Table 15.1 lists the main functions of the explicit and implicit compressible flow
solver. The discretization of the advection term mainly uses the AdvectVolumeFlux
and AdvectTraceFlux to calculate the fluxes on the quadrature points of inside
the element and on the element boundaries. Then, IProductWRTDerivBase and
AddTraceIntegral are adopted to perform the integrations. Similarly, in the diffusion
discretization, DiffuseVolumeFlux and DiffuseTraceFlux are implemented for
calculating the fluxes, while IProductWRTDerivBase and AddTraceIntegral are for the
integrations. For the diffusion term, spatial derivatives are needed and calculated using
DiffuseCalcDerivative. For the interior penalty method an extra symmetric term
may be needed and calculated by AddDiffusionSymmFluxToCoeff. The above
functions forms the spatial operator of DoOdeRhs and the explicit solver in relatively
complete coupled with a explicit time integration scheme. For the implicit solver,
extra functions are needed. The DoImplicitSolve solves the nonlinear system, in
which the NonlinSysEvaluatorCoeff1D evaluates the nonlinear system residual,
MatrixMultiplyMatrixFreeCoeff calculates the Jacobian matrix vector inner product and
PreconCoeff perform the preconditioning. Provided a specific implicit time integration
scheme, the DoImplicitSolve helps solve the nonlinear system for implicit stages and the
implicit solver is complete.
| Variable/Function name | Physical meaning |
AdvectVolumeFlux | Advection Euler flux: Fi |
AdvectTraceFlux | Advection (Riemann) numerical flux at trace: i |
IProductWRTDerivBase | ∑
j=1dBT DjT Λ operator to a vector |
AddTraceIntegral | T Λ to a vector |
MultiplyByElmImvMass | Multiply the inverse of mass matrix to a vector |
DiffuseCalcDerivative | Calculate the derivatives of a vector |
DiffuseVolumeFlux | Analytical Diffusion flux: G i |
DiffuseTraceFlux | Calculate the diffusion numerical flux |
AddDiffusionSymmFluxToCoeff | Add the integral of symmetric flux (special for IP) |
DoOdeRhs | Calculate Lδ |
DoImplicitSolve | Solve the nonlinear system in implicit time integrations |
NonlinSysEvaluatorCoeff1D | Calculate N(uδ(i)) |
MatrixMultiplyMatrixFreeCoeff | Calculate ∂N∕∂u ⋅q |
PreconCoeff | Perform preconditioning |