There seems to be some errors with the AUSM3 implementation (AUSM3Solver.cpp). The reference seems to be the paper by Meng-Sing Liou, "A sequel to AUSM, Part II: AUSM+-up for all speeds," Journal of Computational Physics, Vol. 214, No. 1, 2006, pp. 137-170.
Following is the correct code:
... // Note: if fa = 1 then AUSM3 = AUSM2 ... NekDouble Mo = std::sqrt(std::min(1.0, std::max(Mtilde, Mco*Mco))); ... NekDouble alpha = 0.1875*(-4.0 + 5.0*fa*fa);
A 2D shocktube test fails after 11 iterations even with the above modifications, there might be something else wrong.