Skip to main content
Log in

Accuracy Enhancing Interface Treatment Algorithm: The Back and Forth Error Compensation and Correction Method

  • Published:
Journal of Scientific Computing Aims and scope Submit manuscript

Abstract

The accuracy of information transmission while solving domain decomposed problems is crucial to the smooth transition of a solution around the interface/overlapping region. This paper describes a systematical study on an accuracy-enhancing interface treatment algorithm based on the back and forth error compensation and correction method (BFECC). By repetitively employing a low order interpolation technique (usually local 2nd order) 3 times, this algorithm achieves local 3rd order accuracy. Analytical derivation for any dimensions is made, and the “superconvergence” phenomenon (4th order accuracy) is found for specific positioning of the source and target grids. Its limitation has also been studied. With rotated grids or grids of different sizes, this method can still reduce the error but fails to improve the order of the underlying interpolation technique. A series of numerical experiments on meshes with various translations, rotations, spacing ratios, and perturbations have been tested. Different interface treatments applied to cavity flow are compared. The 3D flow example shows that the BFECC method positively impacts the convergence of the domain decomposed problem.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10

Similar content being viewed by others

Availability of Data and Materials

Data is available within the article.

Code Availability

The code is available upon request.

References

  1. Atkinson, K.E.: An Introduction to Numerical Analysis, 2nd edn. Wiley, New York (1989)

    MATH  Google Scholar 

  2. Llamas, I., Kim, B.-M., Liu, Y.-J., Rossignac, J.: FlowFixer: using BFECC for fluid simulation. In: Eurographics Workshop on Natural Phenomena (2005)

  3. Llamas, I., Kim, B.-M., Liu, Y.-J., Rossignac, J.: Advections with significantly reduced dissipation and diffusion. IEEE Trans. Vis. Comput. Graph. 13, 135–144 (2007)

    Article  Google Scholar 

  4. Barth, T., Frederickson, P.: Higher order solution of the Euler equations on unstructured grids using quadratic reconstruction. In: 28th Aerospace Sciences Meeting, 13 (1990)

  5. Benek, J.A., Steger, J.L., Dougherly, F.C.: A flexible grid embedding technique with application to the Euler equations. Technical report, AIAA (1983)

  6. Chen, Y., Kang, Q.-J., Cai, Q.-D., Zhang, D.-X.: Lattice Boltzmann method on quadtree grids. Phys. Rev. E 83, 1–10 (2011)

    Article  Google Scholar 

  7. Chesshire, G., Henshaw, W.D.: Composite overlapping meshes for the solution of partial differential equations. J. Comput. Phys. 90, 1–64 (1990)

    Article  MathSciNet  MATH  Google Scholar 

  8. Courant, R., Isaacson, E., Rees, M.: On the solution of nonlinear hyperbolic differential equations by finite differences. Commun. Pure Appl. Math. 5, 243–255 (1952)

    Article  MathSciNet  MATH  Google Scholar 

  9. Dupont, T.F., Liu, Y.-J.: Back and forth error compensation and correction methods for removing errors induced by uneven gradients of the level set function. J. Comput. Phys. 191, 311–324 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  10. Dupont, T.F., Liu, Y.-J.: Back and forth error compensation and correction methods for semi-Lagrangian schemes with application to level set interface computations. Math. Comput. 76, 647–668 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  11. Epperson, J.F.: An Introduction to Numerical Methods and Analysis, 2nd edn. Wiley, Hoboken (2013)

    MATH  Google Scholar 

  12. Foster, N.F., Noack, R.W.: High-order overset interpolation within an OVERFLOW solution. In: 50th AIAA Aerospace Sciences Meeting Including the New Horizons Forum and Aerospace Exposition, Nashville, TN, USA (2012)

  13. Goda, K.: Multistep technique with implicit difference schemes for calculating 2-dimensional or 3-dimensional cavity flows. J. Comput. Phys. 30, 76–95 (1979)

    Article  MATH  Google Scholar 

  14. Henshaw, W.D., Watson, T.J.: A fourth-order accurate method for the incompressible Navier–Stokes equations on overlapping grids. J. Comput. Phys. 113, 13–25 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  15. Hu, C., Shu, C.-W.: Weighted essentially non-oscillatory schemes on triangular meshes. J. Comput. Phys. 150, 97–127 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  16. Hu, L.-L.: Numerical algorithms based on the back and forth error compensation and correction. PhD thesis, Georgia Institute of Technology (2014)

  17. Hu, L.-L., Li, Y., Liu, Y.-J.: A limiting strategy for the back and forth error compensation and correction method for solving advection equations. Math. Comput. 85, 1263–1280 (2016)

    Article  MathSciNet  MATH  Google Scholar 

  18. Jiang, G.-S., Shu, C.-W.: Efficient implementation of weighted ENO schemes. J. Comput. Phys. 126(1), 202–228 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  19. Lax, P.D.: On the stability of difference approximations to solutions of hyperbolic equations with variable coefficients. Commun. Pure Appl. Math. 14, 497–520 (1961)

    Article  MathSciNet  MATH  Google Scholar 

  20. Liu, X.-D., Osher, S., Chan, T.: Weighted essentially non-oscillatory schemes. J. Comput. Phys. 115(1), 200–212 (1994)

    Article  MathSciNet  MATH  Google Scholar 

  21. Selle, A., Fedkiw, R., Kim, B.-M., Liu, Y.-J., Rossignac, J.: An unconditionally stable MacCormack method. J. Sci. Comput. 35, 350–371 (2008)

    Article  MathSciNet  MATH  Google Scholar 

  22. Tang, H.-S.: Study on a grid interface algorithm for solutions of incompressible Navier–Stokes equations. Comput. Fluids 35, 1372–1383 (2006)

    Article  MATH  Google Scholar 

  23. Tang, H.S., Jones, C., Sotiropoulos, F.: An overset grid method for 3D unsteady incompressible flows. J. Comput. Phys. 191, 567–600 (2003)

    Article  MATH  Google Scholar 

  24. Tang, H.-S., Qu, K., Wu, X.-G.: An overset grid method for integration of fully 3D fluid dynamics and geophysical fluid dynamics models to simulate multiphysics coastal ocean flows. J. Comput. Phys. 273, 548–571 (2014)

    Article  MathSciNet  MATH  Google Scholar 

  25. Tang, H.-S., Sotiropoulos, F.: Fractional step artificial compressibility method for Navier–Stokes equations. Comput. Fluids 36, 974–986 (2007)

    Article  MathSciNet  MATH  Google Scholar 

  26. Tang, H.S., Zhou, T.: On nonconservative algorithms for grid interfaces. SIAM J. Numer. Anal. 37, 173–193 (1999)

    Article  MathSciNet  MATH  Google Scholar 

  27. Tang, H.-Z., Tang, T.: Adaptive mesh methods for one-and two-dimensional hyperbolic conservation laws. SIAM J. Numer. Anal. 41, 487–515 (2003)

    Article  MathSciNet  MATH  Google Scholar 

  28. Terekhov, K.M., Nikitin, K.D., Olshanskii, M.A., Vassilevski, Y.V.: A semi-Lagrangian method on dynamically adapted octree meshes. Russ. J. Numer. Anal. Math. Model. 30, 363–380 (2015)

    Article  MathSciNet  MATH  Google Scholar 

  29. Wang, X., Liu, Y.: Back and forth error compensation and correction method for linear hyperbolic systems with application to the Maxwell’s equations. J. Comput. Phys. X 1, 100014 (2019)

    MathSciNet  Google Scholar 

  30. Zhang, M., Shu, C.-W.: An analysis of and a comparison between the discontinuous Galerkin and the spectral finite volume methods. Comput. Fluids 34, 581–592 (2005)

    Article  MATH  Google Scholar 

Download references

Funding

This work is partly supported by National Science Foundation (DMS \(\#\) 1622459 and 1622453).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yingjie Liu.

Ethics declarations

Conflict of interest

There are no conflicts of interest.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendices

Appendices

1.1 Comparison of Coefficients Between BFECC and 3rd Order Polynomial Interpolation in 1D

The third-degree Lagrange interpolation polynomial is

$$\begin{aligned} l(x) =&\frac{(x-x_i)(x-x_{i+1})(x-x_{i+2})}{(-\Delta x)(-2\Delta x)(-3\Delta x)}f_{i-1} + \frac{(x-x_{i-1})(x-x_{i+1})(x-x_{i+2})}{\Delta x(-2\Delta x)(-3\Delta x)}f_i \\&+ \frac{(x-x_{i-1})(x-x_i)(x-x_{i+2})}{2\Delta x\cdot \Delta x\cdot (-3\Delta x)}f_{i+1} + \frac{(x-x_{i-1})(x-x_i)(x-x_{i+1})}{3\Delta x\cdot 2\Delta x\cdot \Delta x}f_{i+2}~, \end{aligned}$$

which gives

$$\begin{aligned} l(x_i+\alpha \Delta x)= & {} -\left( \frac{\alpha }{3}-\frac{\alpha ^2}{2}+\frac{\alpha ^3}{6}\right) f_{i-1} + \left( 1-\frac{\alpha }{2}-\alpha ^2+\frac{\alpha ^3}{2}\right) f_i \nonumber \\&+ \left( \alpha +\frac{\alpha ^2}{2}-\frac{\alpha ^3}{2}\right) f_{i+1} - \left( \frac{\alpha }{6}-\frac{\alpha ^3}{6}\right) f_{i+2}~, \end{aligned}$$
(33)

for \(0<\alpha <1\).

BFECC interpolation of f at \(x_i+\alpha \Delta x\):

(1) Forward:

$$\begin{aligned} f^*_{j-1}&= \alpha f_i + (1-\alpha )f_{i-1}~, \\ f^*_{j}&= \alpha f_{i+1} + (1-\alpha )f_i~, \\ f^*_{j+1}&= \alpha f_{i+2} + (1-\alpha )f_{i+1}~. \end{aligned}$$

(2) Backward:

$$\begin{aligned} {\widetilde{f}}_i&= \alpha f^*_{j-1} + (1-\alpha )f^*_j = \alpha ^2 f_i + \alpha (1-\alpha )f_{i-1} + \alpha (1-\alpha )f_{i+1} + (1-\alpha )^2f_i~, \\ {\widetilde{f}}_{i+1}&= \alpha f^*_j + (1-\alpha )f^*_{j+1} = \alpha ^2 f_{i+1} + \alpha (1-\alpha )f_i + \alpha (1-\alpha )f_{i+2} + (1-\alpha )^2f_{i+1}~. \end{aligned}$$

(3) Compensation:

$$\begin{aligned} {\hat{f}}_i&= f_i + \frac{1}{2}(f_i - {\widetilde{f}}_i) = (1+\alpha -\alpha ^2)f_i - \frac{\alpha }{2}(1-\alpha )f_{i-1} - \frac{\alpha }{2}(1-\alpha )f_{i+1}~, \\ {\hat{f}}_{i+1}&= f_{i+1} + \frac{1}{2}(f_{i+1} - {\widetilde{f}}_{i+1} ) = (1+\alpha -\alpha ^2)f_{i+1} - \frac{\alpha }{2}(1-\alpha )f_i - \frac{\alpha }{2}(1-\alpha )f_{i+2}~. \end{aligned}$$

(4) Forward:

$$\begin{aligned} f^{new}&= \alpha {\hat{f}}_{i+1} + (1-\alpha ) {\hat{f}}_i \\&= -\left( \frac{\alpha }{2}-\alpha ^2+\frac{\alpha ^3}{2}\right) f_{i-1} + \left( 1-\frac{5}{2}\alpha ^2+\frac{3}{2}\alpha ^3\right) f_i \\&\quad + \left( \frac{\alpha }{2}+2\alpha ^2-\frac{3}{2}\alpha ^3\right) f_{i+1} - \left( \frac{\alpha ^2}{2}-\frac{\alpha ^3}{2}\right) f_{i+2}~. \end{aligned}$$

This looks different from (33) (note that they also have different orders of approximation in general.) If we let \(\alpha =0.5\), both formulas become

$$\begin{aligned} -\frac{1}{16}f_{i-1} + \frac{9}{16}f_i + \frac{9}{16}f_{i+1} -\frac{1}{16}f_{i+2}~, \end{aligned}$$

which is the ’superconvergence’ case of BFECC interpolation.

1.2 Comparison of BFECC Interpolation at Cell Center with Cubic Least Squares and Bicubic Interpolations in 2D

Consider the cubic least squares interpolation using the values of a sufficiently smooth function at the following 16 nodes, see Fig. 11.

$$\begin{aligned}&g1(0,0), g2(1,0), g3(2,0), g4(3,0) \\&g5(0,1), g6(1,1), g7(2,1), g8(3,1) \\&g9(0,2), g10(1,2), g11(2,2), g12(3,2) \\&g13(0,3),g14(1,3), g15(2,3), g16(3,3) \end{aligned}$$
Fig. 11
figure 11

Interpolation coefficients and node index

Let a third-degree polynomial in 2D be written as

$$\begin{aligned} P(x,y) = c_1+c_2x+c_3y+c_4x^2+c_5xy+c_6y^2+c_7x^3+c_8x^2y+c_9xy^2+c_{10}y^3 \end{aligned}$$

which is determined by the 16 values of the function by least squares fitting. The coefficients can be obtained in Matlab with symbolic computation. We present the formula at the center as follows.

$$\begin{aligned} \begin{aligned} P(1.5, 1.5) =&-\frac{3}{32}(g_1+g_4+g_{13}+g_{16}) \\&+\frac{1}{16}(g_2+g_3+g_5+g_8+g_9+g_{12}+g_{14}+g_{15}) \\&+\frac{7}{32}(g_6+g_7+g_{10}+g_{11})~. \end{aligned} \end{aligned}$$
(34)

The 2D BFECC interpolation at the center point can be described as follows. For simplicity, we use labels of nodes to represent interpolation values of the function at corresponding nodes at different stages of the method.

(1) Forward:

$$\begin{aligned} f_1^*&= \frac{1}{4}(g_1+g_2+g_5+g_6), \\ f_2^*&= \frac{1}{4}(g_2+g_3+g_6+g_7) \\ f_3^*&= \frac{1}{4}(g_3+g_4+g_7+g_8) \\ f_4^*&= \frac{1}{4}(g_5+g_6+g_9+g_{10}) \\ f_5^*&= \frac{1}{4}(g_6+g_7+g_{10}+g_{11}) \\ f_6^*&= \frac{1}{4}(g_7+g_8+g_{11}+g_{12}) \\ f_7^*&= \frac{1}{4}(g_9+g_{10}+g_{13}+g_{14}) \\ f_8^*&= \frac{1}{4}(g_{10}+g_{11}+g_{14}+g_{15}) \\ f_9^*&= \frac{1}{4}(g_{11}+g_{12}+g_{15}+g_{16}) \\ \end{aligned}$$

(2) Backward:

$$\begin{aligned} {\widetilde{g}}_6&= \frac{1}{4}(f_1^*+f_2^*+f_4^*+f_5^*) \\ {\widetilde{g}}_7&= \frac{1}{4}(f_2^*+f_3^*+f_5^*+f_6^*) \\ {\widetilde{g}}_{10}&= \frac{1}{4}(f_4^*+f_5^*+f_7^*+f_8^*) \\ {\widetilde{g}}_{11}&= \frac{1}{4}(f_5^*+f_6^*+f_8^*+f_9^*) \\ \end{aligned}$$

(3) Compensation:

$$\begin{aligned} {\hat{g}}_6&= g_6 + \frac{1}{2}(g_6 - {\widetilde{g}}_6) \\ {\hat{g}}_7&= g_7 + \frac{1}{2}(g_7 - {\widetilde{g}}_7) \\ {\hat{g}}_{10}&= g_{10} + \frac{1}{2}(g_{10} - {\widetilde{g}}_{10}) \\ {\hat{g}}_{11}&= g_{11} + \frac{1}{2}(g_{11} - {\widetilde{g}}_{11}) \end{aligned}$$

(4) Forward:

$$\begin{aligned} {f}_5^{new} = \frac{1}{4}({\hat{g}}_6+{\hat{g}}_7+{\hat{g}}_{10}+{\hat{g}}_{11}) \end{aligned}$$

Through a direct calculation, we have

$$\begin{aligned} \begin{aligned} {f}_5^{new} =&- \frac{1}{128}(g_1+g_4+g_{13}+g_{16}) \\&-\frac{3}{128}(g_2+g_3+g_5+g_8+g_9+g_{12}+g_{14}+g_{15}) \\&+ \frac{39}{128}(g_6+g_7+g_{10}+g_{11})~. \end{aligned} \end{aligned}$$
(35)

Formula (35) differs from the cubic least squares formula (34), although both formulas have fourth order of accuracy and use the same surrounding nodes in interpolation.

Finally, the bicubic interpolation at the center (1.5, 1.5) can be written as

$$\begin{aligned} \begin{aligned} P_{bic}(1.5,1.5) =&+\frac{1}{256}(g_1+g_4+g_{13}+g_{16}) \\&-\frac{9}{256}(g_2+g_3+g_5+g_8+g_9+g_{12}+g_{14}+g_{15}) \\&+ \frac{81}{256}(g_6+g_7+g_{10}+g_{11})~, \end{aligned} \end{aligned}$$
(36)

which is also different from formula (35).

1.3 Comparison of BFECC Interpolation at Cell Center and Cubic Least Squares Interpolation in 3D

For the least squares method using 64 nodes, we label the nodes similarly as in the 2D case for \(z=0\):

$$\begin{aligned}&g1(0,0,0), g2(1,0,0), g3(2,0,0), g4(3,0,0) \\&g5(0,1,0), g6(1,1,0), g7(2,1,0), g8(3,1,0) \\&g9(0,2,0), g10(1,2,0), g11(2,2,0), g12(3,2,0) \\&g13(0,3,0),g14(1,3,0), g15(2,3,0), g16(3,3,0) \end{aligned}$$

For \(z=1\), just add 16 to the number label of each node, similarly for \(z=2\) and 3. The node indices in the planes of \(z=1,2,3\) are varied from \(17-32\), \(33-48\), \(49-64\) respectively.

Let a third-degree polynomial in 3D be written as

$$\begin{aligned} P(x,y,z) =&c_1+c_2x+c_3 y+c_4z \\&+c_5x^2+c_6y^2+c_7z^2+c_8xy+c_9yz+c_{10}zx \\&+c_{11}x^3+c_{12}y^3+c_{13}z^3+c_{14}x^2y+c_{15}x^2z \\&+c_{16}y^2x+c_{17}y^2z+c_{18}z^2x+c_{19}z^2y+c_{20}xyz~. \end{aligned}$$

The coefficients \(c1,c2\ldots ,c20\) are calculated by least squares fitting using 64 nodal values. Then we can find its expression at the center point as follows.

$$\begin{aligned} \begin{aligned} P(1.5, 1.5, 1.5) =&-\frac{11}{256}(g_1+g_4+g_{13}+g_{16}+g_{49}+g_{52}+g_{61}+g_{64}) \\&-\frac{1}{256} (g_2+g_3+g_5+g_8+g_9+g_{12}+g_{14}+g_{15}+g_{17}+g_{20} \\&+g_{29}+g_{32}+g_{33}+g_{36}+g_{45}+g_{48}+g_{50}+g_{51}+g_{53}+g_{56}+g_{57}\\&+g_{60}+g_{62}+g_{63})+\frac{9}{256} (g_6+g_7+g_{10}+g_{11}+g_{18}\\&+g_{19}+g_{21}+g_{24}+g_{25}+g_{28}+g_{30}+g_{31}+g_{34}+g_{35}\\&+g_{37}+g_{40}+g_{41}+g_{44}+g_{46}+g_{47}+g_{54}+g_{55}+g_{58}+g_{59})\\&+\frac{19}{256}(g_{22}+g_{23}+g_{26}+g_{27}+g_{38}+g_{39}+g_{42}+g_{43}). \end{aligned} \end{aligned}$$
(37)

For 3D BFECC interpolation at the center point, we can get the expression as follows (the process is very similar to the 2D case in Appendix B and skipped here.)

$$\begin{aligned} \begin{aligned} f_{14}^{new} =&-\frac{1}{1024}(g_1+g_4+g_{13}+g_{16}+g_{49}+g_{52}+g_{61}+g_{64}) \\&-\frac{3}{1024} (g_2+g_3+g_5+g_8+g_9+g_{12}+g_{14}+g_{15}+g_{17}+g_{20}+g_{29}+g_{32} \\&+g_{33}+g_{36}+g_{45}+g_{48}+g_{50}+g_{51}+g_{53}+g_{56}+g_{57}+g_{60}+g_{62}+g_{63})\\&-\frac{9}{1024} (g_6+g_7+g_{10}+g_{11}+g_{18}+g_{19}+g_{21}+g_{24}+g_{25}+g_{28}+g_{30}+g_{31}\\&+g_{34}+g_{35}+g_{37}+g_{40}+g_{41}+g_{44}+g_{46}+g_{47}+g_{54}+g_{55}+g_{58}+g_{59})\\&+\frac{165}{1024}(g_{22}+g_{23}+g_{26}+g_{27}+g_{38}+g_{39}+g_{42}+g_{43})~. \end{aligned} \end{aligned}$$
(38)

Formula (38) is different from formula (37), even though both formulas have fourth order of accuracy and use the same surrounding nodes in interpolation.

Rights and permissions

Springer Nature or its licensor holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Dong, W., Liu, Y. & Tang, H. Accuracy Enhancing Interface Treatment Algorithm: The Back and Forth Error Compensation and Correction Method. J Sci Comput 93, 29 (2022). https://doi.org/10.1007/s10915-022-01988-4

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10915-022-01988-4

Keywords

Mathematics Subject Classification

Navigation