Loading ExaHyPE/kernels/finitevolumes/musclhancock/c/3d/musclhancock.cpph +12 −1 Original line number Diff line number Diff line Loading @@ -24,10 +24,20 @@ #if DIMENSIONS == 3 inline double kernels::finitevolumes::musclhancock::c::minmod(double a, double b) { inline double kernels::finitevolumes::musclhancock::c::minmod(double b, double a) { assert(std::isfinite(a)); assert(std::isfinite(b)); //koren limiter if(std::abs(a) < 1.e-12) { return 0.0; } else { double r=b/a; double phi=std::max(0.0, std::min(2.0*r , std::min((1.+2.*r)/3.,2.0))); return phi*a; } /* if (a * b < 0.0) { // sign is different (alternative: std::signbit and xor) return 0.0; } else { Loading @@ -37,6 +47,7 @@ inline double kernels::finitevolumes::musclhancock::c::minmod(double a, double b return b; } } */ } // TODO(Dominic): Work in progress Loading Loading
ExaHyPE/kernels/finitevolumes/musclhancock/c/3d/musclhancock.cpph +12 −1 Original line number Diff line number Diff line Loading @@ -24,10 +24,20 @@ #if DIMENSIONS == 3 inline double kernels::finitevolumes::musclhancock::c::minmod(double a, double b) { inline double kernels::finitevolumes::musclhancock::c::minmod(double b, double a) { assert(std::isfinite(a)); assert(std::isfinite(b)); //koren limiter if(std::abs(a) < 1.e-12) { return 0.0; } else { double r=b/a; double phi=std::max(0.0, std::min(2.0*r , std::min((1.+2.*r)/3.,2.0))); return phi*a; } /* if (a * b < 0.0) { // sign is different (alternative: std::signbit and xor) return 0.0; } else { Loading @@ -37,6 +47,7 @@ inline double kernels::finitevolumes::musclhancock::c::minmod(double a, double b return b; } } */ } // TODO(Dominic): Work in progress Loading