diff --git a/cpp/modmesh/onedim/Euler1DCore.cpp b/cpp/modmesh/onedim/Euler1DCore.cpp index 8065d791..7f01614f 100644 --- a/cpp/modmesh/onedim/Euler1DCore.cpp +++ b/cpp/modmesh/onedim/Euler1DCore.cpp @@ -170,6 +170,22 @@ void Euler1DCore::treat_boundary_so0() m_so0(ic, 1) = m_so0(ic - 1, 1); m_so0(ic, 2) = m_so0(ic - 1, 2); } + + // Set the boundary point eqaul to the inside point. + { + // Left boundary. + size_t const ic = 0; + m_so0(ic, 0) = m_so0(ic + 2, 0); + m_so0(ic, 1) = m_so0(ic + 2, 1); + m_so0(ic, 2) = m_so0(ic + 2, 2); + } + { + // Right boundary. + size_t const ic = ncoord() - 1; + m_so0(ic, 0) = m_so0(ic - 2, 0); + m_so0(ic, 1) = m_so0(ic - 2, 1); + m_so0(ic, 2) = m_so0(ic - 2, 2); + } } void Euler1DCore::treat_boundary_so1() @@ -191,6 +207,22 @@ void Euler1DCore::treat_boundary_so1() m_so1(ic, 1) = m_so1(ic - 1, 1); m_so1(ic, 2) = m_so1(ic - 1, 2); } + + // Set the boundary point eqaul to the inside point. + { + // Left boundary. + size_t const ic = 0; + m_so1(ic, 0) = m_so1(ic + 2, 0); + m_so1(ic, 1) = m_so1(ic + 2, 1); + m_so1(ic, 2) = m_so1(ic + 2, 2); + } + { + // Right boundary. + size_t const ic = ncoord() - 1; + m_so1(ic, 0) = m_so1(ic - 2, 0); + m_so1(ic, 1) = m_so1(ic - 2, 1); + m_so1(ic, 2) = m_so1(ic - 2, 2); + } } SimpleArray Euler1DCore::temperature() const