diff --git a/src/engines/grpic.hpp b/src/engines/grpic.hpp index cd04838d..35e544a9 100644 --- a/src/engines/grpic.hpp +++ b/src/engines/grpic.hpp @@ -840,8 +840,12 @@ namespace ntt { if constexpr (M::Dim == Dim::_2D) { if (domain.mesh.flds_bc_in({ 0, +1 }) == FldsBC::AXIS) { range = CreateRangePolicy( - { domain.mesh.i_min(in::x1), domain.mesh.i_min(in::x2) }, + { domain.mesh.i_min(in::x1) - 1, domain.mesh.i_min(in::x2) }, { domain.mesh.i_max(in::x1), domain.mesh.i_max(in::x2) + 1 }); + } else { + range = CreateRangePolicy( + { domain.mesh.i_min(in::x1) - 1, domain.mesh.i_min(in::x2) }, + { domain.mesh.i_max(in::x1), domain.mesh.i_max(in::x2) }); } } else if constexpr (M::Dim == Dim::_3D) { raise::Error("Invalid dimension", HERE); diff --git a/src/metrics/qkerr_schild.h b/src/metrics/qkerr_schild.h index 6ff114b4..c7bef618 100644 --- a/src/metrics/qkerr_schild.h +++ b/src/metrics/qkerr_schild.h @@ -39,7 +39,6 @@ namespace metric { const real_t chi_min, eta_min, phi_min; const real_t dchi, deta, dphi; const real_t dchi_inv, deta_inv, dphi_inv; - const bool small_angle; Inline auto Delta(const real_t& r) const -> real_t { return SQR(r) - TWO * r + SQR(a); @@ -90,8 +89,7 @@ namespace metric { , dphi { (x3_max - phi_min) / nx3 } , dchi_inv { ONE / dchi } , deta_inv { ONE / deta } - , dphi_inv { ONE / dphi } - , small_angle { eta2theta(HALF * deta) < constant::SMALL_ANGLE } { + , dphi_inv { ONE / dphi } { set_dxMin(find_dxMin()); } @@ -487,23 +485,12 @@ namespace metric { */ Inline auto polar_area(const real_t& x1) const -> real_t { if constexpr (D != Dim::_1D) { - if (small_angle) { - const real_t dtheta = eta2theta(HALF * deta); - return dchi * math::exp(x1 * dchi + chi_min) * - (SQR(r0 + math::exp(x1 * dchi + chi_min)) + SQR(a)) * - math::sqrt( - ONE + TWO * (r0 + math::exp(x1 * dchi + chi_min)) / - (SQR(r0 + math::exp(x1 * dchi + chi_min)) + SQR(a))) * - (static_cast(48) - SQR(dtheta)) * SQR(dtheta) / - static_cast(384); - } else { - return dchi * math::exp(x1 * dchi + chi_min) * - (SQR(r0 + math::exp(x1 * dchi + chi_min)) + SQR(a)) * - math::sqrt( - ONE + TWO * (r0 + math::exp(x1 * dchi + chi_min)) / - (SQR(r0 + math::exp(x1 * dchi + chi_min)) + SQR(a))) * - (ONE - math::cos(eta2theta(HALF * deta))); - } + return dchi * math::exp(x1 * dchi + chi_min) * + (SQR(r0 + math::exp(x1 * dchi + chi_min)) + SQR(a)) * + math::sqrt( + ONE + TWO * (r0 + math::exp(x1 * dchi + chi_min)) / + (SQR(r0 + math::exp(x1 * dchi + chi_min)) + SQR(a))) * + (ONE - math::cos(eta2theta(HALF * deta))); } }