diff options
Verify mass loss when using linear interpolation for C2F
Diffstat (limited to 'src')
-rw-r--r-- | src/refinement/coupler2D.hh | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/refinement/coupler2D.hh b/src/refinement/coupler2D.hh index 91a7db8..78aad46 100644 --- a/src/refinement/coupler2D.hh +++ b/src/refinement/coupler2D.hh @@ -131,6 +131,12 @@ Vector<T,N> order2interpolation(const Vector<T,N>& f0, const Vector<T,N>& f1) } template <typename T, unsigned N> +Vector<T,N> order2interpolation(const std::vector<Vector<T,N>>& data, int y) +{ + return 0.5 * (data[y] + data[y+1]); +} + +template <typename T, unsigned N> Vector<T,N> order3interpolation(const std::vector<Vector<T,N>>& data, int y, bool ascending) { if (ascending) { @@ -195,9 +201,9 @@ void FineCoupler2D<T,DESCRIPTOR>::couple() } for (int y=1; y < this->_coarseSize-2; ++y) { - const auto rho = order4interpolation(_c2f_rho, y); - const auto u = order4interpolation(_c2f_u, y); - const auto fneq = order4interpolation(_c2f_fneq, y); + const auto rho = order2interpolation(_c2f_rho, y); + const auto u = order2interpolation(_c2f_u, y); + const auto fneq = order2interpolation(_c2f_fneq, y); const T uSqr = u*u; |