diff --git a/Examples/PerfectFluid/Fluxes.hpp b/Examples/PerfectFluid/Fluxes.hpp index acb26d5c7..e7080af9e 100644 --- a/Examples/PerfectFluid/Fluxes.hpp +++ b/Examples/PerfectFluid/Fluxes.hpp @@ -56,12 +56,12 @@ vars_t compute_flux(const vars_t &vars, const int idir) } template class vars_t> vars_t compute_num_flux(const vars_t &vars, const int idir, - const double lambda) + const double lambda, const int sign) { vars_t out = compute_flux(vars, idir); - out.D -= lambda * vars.D; - FOR(j) out.Sj[j] -= lambda * vars.Sj[j]; - out.tau -= lambda * vars.tau; + out.D += sign * lambda * vars.D; + FOR(j) out.Sj[j] += sign * lambda * vars.Sj[j]; + out.tau += sign * lambda * vars.tau; return out; } diff --git a/Examples/PerfectFluid/PerfectFluid.impl.hpp b/Examples/PerfectFluid/PerfectFluid.impl.hpp index 3e693e727..a7c9ef6b1 100644 --- a/Examples/PerfectFluid/PerfectFluid.impl.hpp +++ b/Examples/PerfectFluid/PerfectFluid.impl.hpp @@ -110,7 +110,7 @@ void PerfectFluid::add_matter_rhs( FOR(j) { vars_right_p.vi[j] = rp.vi[j][idir]; } ConservativeRecovery::PtoC(vars_right_p); vars_t flux_right_p = - Fluxes::compute_num_flux(vars_right_p, idir, m_lambda); + Fluxes::compute_num_flux(vars_right_p, idir, m_lambda, -1); vars_t vars_right_m = vars; vars_right_m.rho = rm.rho[idir]; @@ -118,7 +118,7 @@ void PerfectFluid::add_matter_rhs( FOR(j) vars_right_m.vi[j] = rm.vi[j][idir]; ConservativeRecovery::PtoC(vars_right_m); vars_t flux_right_m = - Fluxes::compute_num_flux(vars_right_m, idir, m_lambda); + Fluxes::compute_num_flux(vars_right_m, idir, m_lambda, 1); rhs.D += -1. / (2. * m_dx) * (flux_right_p.D + flux_right_m.D); FOR(j) @@ -137,7 +137,7 @@ void PerfectFluid::add_matter_rhs( FOR(j) { vars_left_p.vi[j] = lp.vi[j][idir]; } ConservativeRecovery::PtoC(vars_left_p); vars_t flux_left_p = - Fluxes::compute_num_flux(vars_left_p, idir, m_lambda); + Fluxes::compute_num_flux(vars_left_p, idir, m_lambda, -1); vars_t vars_left_m = vars; vars_left_m.rho = lm.rho[idir]; @@ -145,7 +145,7 @@ void PerfectFluid::add_matter_rhs( FOR(j) { vars_left_m.vi[j] = lm.vi[j][idir]; } ConservativeRecovery::PtoC(vars_left_m); vars_t flux_left_m = - Fluxes::compute_num_flux(vars_left_m, idir, m_lambda); + Fluxes::compute_num_flux(vars_left_m, idir, m_lambda, 1); rhs.D += 1. / (2. * m_dx) * (flux_left_p.D + flux_left_m.D); FOR(j)