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: F_{i} |

` AdvectTraceFlux` | Advection (Riemann) numerical flux at trace: _{i} |

` IProductWRTDerivBase` | ∑
_{j=1}^{d}B^{T }D_{j}^{T }Λ 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 |