Skip to main content
Log in

An Efficient Jet Marcher for Computing the Quasipotential for 2D SDEs

Enhancing Accuracy and Efficiency of Quasipotential Solvers

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


We present a new algorithm, the efficient jet marching method (EJM), for computing the quasipotential and its gradient for two-dimensional SDEs. The quasipotential is a potential-like function for nongradient SDEs that gives asymptotic estimates for the invariant probability measure, expected escape times from basins of attractors, and maximum likelihood escape paths. The quasipotential is a solution to an optimal control problem with an anisotropic cost function which can be solved for numerically via Dijkstra-like label-setting methods. Previous Dijkstra-like quasipotential solvers have displayed in general 1st order accuracy in the mesh spacing. However, by utilizing higher order interpolations of the quasipotential as well as more accurate approximations of the minimum action paths, EJM achieves second-order accuracy for the quasipotential and nearly second-order for its gradient. Moreover, by using targeted search neighborhoods for the fastest characteristics following the ideas of Mirebeau, EJM also enjoys a reduction in computation time. This highly accurate solver enables us to compute the prefactor for the WKB approximation for the invariant probability measure and the Bouchet–Reygner sharp estimate for the expected escape time for the Maier–Stein SDE. Our codes are available on GitHub.

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

Access this article

Subscribe and save

Springer+ Basic
EUR 32.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or Ebook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20

Similar content being viewed by others

Data Availability

The datasets generated during and/or analyzed during the current study are available in the GitHub repository, The manuscript has associated data available on GitHub [23].


  1. The maximum of the numerical solution for C is about \(8\cdot 10^3\).

  2. There is an error in Eq (10) in [6]: the integrand of the integral should be divided by \(\Vert b + A^{-1} \nabla U\Vert \).


  1. Beri, S., Mannella, R., Luchinsky, D.G., Silchenko, A.N., McClintock, P.V.E.: Solution of the boundary value problem for optimal escape in continuous stochastic systems and maps. Phys. Rev. E 72, 036131 (2005)

    Article  MathSciNet  Google Scholar 

  2. Bouchet, F., Reygner, J.: Generalisation of the Eyring–Kramers transition rate formula to irreversible diffusion processes. Ann. Henri Poincaré 17, 3499–3532 (2015)

    Article  MathSciNet  Google Scholar 

  3. Cameron, M.K.: Finding the quasipotential for nongradient SDEs. Physica D 241, 1532–1550 (2012)

    Article  MathSciNet  Google Scholar 

  4. Cameron, M.K.: Construction of the quasi-potential for linear SDEs using false quasi-potentials and a geometric recursion (2017). ArXiv:1801.00327

  5. Cameron, M.K., Yang, S.: Computing the quasipotential for highly dissipative and chaotic sdes. An application to stochastic Lorenz’63. Commun. Appl. Math. Comput. Sci. 14(2), 207–246 (2019)

    Article  MathSciNet  Google Scholar 

  6. Dahiya, D., Cameron, M.K.: Finding the quasipotential for nongradient SDEs. Physica D 382–383, 33–45 (2018)

    Article  Google Scholar 

  7. Dahiya, D., Cameron, M.K.: Ordered line integral methods for computing the quasipotential. J. Sci. Comput. 75(3), 1351–1384 (2018)

    Article  MathSciNet  Google Scholar 

  8. Dijkstra, E.W.: A note on two problems in connexion with graphs. Numer. Math. 1, 269–271 (1959)

    Article  MathSciNet  Google Scholar 

  9. Farin, G.E.: Triangular Bernstein–Bézier patches. Comput. Aided Geometric Des. 3, 83–127 (1986)

    Article  Google Scholar 

  10. Freidlin, M.I., Wentzell, A.D.: Random Perturbations of Dynamical Systems, 3rd edn. Springer, New York (2012)

    Book  Google Scholar 

  11. Heymann, M., Vanden-Eijnden, E.: The geometric minimum action method: a least action principle on the space of curves. Commun. Pure Appl. Math. 61, 1052–1117 (2008)

    Article  MathSciNet  Google Scholar 

  12. Heymann, M., Vanden-Eijnden, E.: Pathways of maximum likelihood for rare events in nonequilibrium systems: application to nucleation in the presence of shear. Phys. Rev. Lett. 100, 140601 (2008)

    Article  Google Scholar 

  13. Kikuchi, L., Singh, R., Cates, M.E., Adhikari, R.: Ritz method for transition paths and quasipotentials of rare diffusive events. Phys. Rev. Res. 2, 033208 (2020)

    Article  Google Scholar 

  14. Lin, L., Yu, H., Zhou, X.: Quasi-potential calculation and minimum action method for limit cycle. J. Nonlinear Sci. 29(3), 961–991 (2019)

    Article  MathSciNet  Google Scholar 

  15. Maier, R.S., Stein, D.L.: Escape problem for irreversible systems. Phys. Rev. E Stat. Phys. Plasmas Fluids Relat. Interdiscip. Top. 48(2), 931–938 (1993)

    Google Scholar 

  16. Maier, R.S., Stein, D.L.: A scaling theory of bifurcations in the symmetric weak-noise escape problem. J. Stat. Phys. 83, 291–357 (1996)

    Article  MathSciNet  Google Scholar 

  17. Metzner, P., Schütte, C., Vanden-Eijnden, E.: Transition path theory for Markov jump processes. Multiscale Model. Simul. 7, 1192–1219 (2009)

    Article  MathSciNet  Google Scholar 

  18. Mirebeau, J.M.: Anisotropic fast-marching on cartesian grids using lattice basis reduction. SIAM J. Numer. Anal. 52, 1573–1599 (2014)

    Article  MathSciNet  Google Scholar 

  19. Mirebeau, J.M.: Efficient fast marching with Finsler metrics. Numer. Math. 126, 515–557 (2014)

    Article  MathSciNet  Google Scholar 

  20. Mirebeau, J.M., Portegies, J.M.: Hamiltonian fast marching: a numerical solver for anisotropic and non-holonomic eikonal PDEs. Image Process. Line 9, 47–93 (2019)

    Article  MathSciNet  Google Scholar 

  21. Nave, J.C., Rosales, R.R., Seibold, B.: A gradient-augmented level set method with an optimally local, coherent advection scheme. J. Comput. Phys. 229, 3802–3827 (2010)

    Article  MathSciNet  Google Scholar 

  22. Nolting, B.C., Abbott, K.C.: Balls, cups, and quasi-potentials: quantifying stability in stochastic systems. Ecology 97(4), 850–864 (2016)

    Article  Google Scholar 

  23. Paskal, N.: Github repository: efficient jet marcher. (2021)

  24. Poppe, G., Schaefer, T.: Computation of minimum action paths of the stochastic nonlinear Schrödinger equation with dissipation. J. Phys. A Math. Theor. 51(33), 335102 (2018)

    Article  Google Scholar 

  25. Potter, S.F., Cameron, M.K.: Jet marching methods for solving the Eikonal equation. SIAM J. Sci. Comput. 43(6), A4121–A4146 (2021)

    Article  MathSciNet  Google Scholar 

  26. Sethian, J.A.: A fast marching level set method for monotonically advancing fronts. Proc. Natl. Acad. Sci. U.S.A. 93(4), 1591–1595 (1996)

    Article  MathSciNet  Google Scholar 

  27. Sethian, J.A.: Level Set Methods and Fast Marching Methods Evolving Interfaces in Computational Geometry. Computer Vision, and Materials Science, Fluid Mechanics, Cambridge University Press, Cambridge (1999)

    MATH  Google Scholar 

  28. Sethian, J.A., Vladimirsky, A.: Ordered upwind methods for static Hamilton–Jacobi equations. Proc. Natl. Acad. Sci. U.S.A. 98(20), 11069–11074 (2001)

    Article  MathSciNet  Google Scholar 

  29. Sethian, J.A., Vladimirsky, A.: Ordered upwind methods for static Hamilton–Jacobi–Bellman equations: theory and algorithms. SIAM J. Numer. Anal. 41(1), 325–363 (2003)

    Article  MathSciNet  Google Scholar 

  30. Talkner, P.: Mean first passage time and the lifetime of a metastable state. Zeitschrift für Physik B Condensed Matter 68, 201–207 (1987)

    Article  MathSciNet  Google Scholar 

  31. Tao, M.: Hyperbolic periodic orbits in nongradient systems and small-noise-induced metastable transitions. Physica D 363, 1–17 (2016)

    Article  MathSciNet  Google Scholar 

  32. Weinen, E., Ren, W., Vanden-Eijnden, E.: Minimum action method for the study of rare events. Commun. Pure Appl. Math. 57(5), 637–656 (2004)

    Article  MathSciNet  Google Scholar 

  33. Weinen, E., Vanden-Eijnden, E.: Towards a theory of transition paths. J. Stat. Phys. 123(3), 503–523 (2006)

    Article  MathSciNet  Google Scholar 

  34. Weinen, E., Vanden-Eijnden, E.: Transition-path theory and path-finding algorithms for the study of rare events. Ann. Rev. Phys. Chem. 61, 391–420 (2010)

    Article  Google Scholar 

  35. Yang, S., Potter, S.F., Cameron, M.K.: Computing the quasipotential for nongradient SDEs in 3d. J. Comput. Phys. 379, 325–350 (2019)

    Article  MathSciNet  Google Scholar 

  36. Zhou, X., Ren, W., Weinan, E.: Adaptive minimum action method for the study of rare events. J. Chem. Phys. 128(10), 104111 (2008)

    Article  Google Scholar 

Download references


This work was partially supported by NSF CAREER Grant DMS-1554907 (MC) and AFOSR MURI grant FA9550-20-1-0397 (MC). We are grateful to the anonymous reviewer for helping us to improve this manuscript.


this work was partially supported by NSF CAREER grant DMS-1554907 and AFOSR MURI grant FA9550-20-1-0397.

Author information

Authors and Affiliations


Corresponding author

Correspondence to Maria Cameron.

Ethics declarations

Conflict of interest

The authors declared that they have no conflict of interest.

Code Availability

Our codes are available on GitHub [23].

Additional information

Publisher's Note

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

This work was partially supported by NSF CAREER Grant DMS-1554907 and AFOSR MURI Grant FA9550-20-1-0397.


Appendix: Solving Minimization Problems Arising in Update Procedures

Fig. 21
figure 21

An illustration for solving the triangle update optimization problem (26)

The minimization problems (25) and (26) for one-point update and triangle update are solved using Newton’s method. In order to implement it, one needs to calculate the gradient and the Hessian of the objective function. First, we will redefine the objective function for triangle update in a way more amenable for taking derivatives. For each update, we introduce a local Euclidean coordinate system with the origin at the point \(x_{\lambda }\) and axes directed along

$$\begin{aligned} \hat{e}_y:=\frac{y-x_{\lambda }}{h_{\lambda }}\quad \mathrm{and}\quad \hat{e}_w:=R\hat{e}_y, \end{aligned}$$

where \(h_{\lambda }: = \Vert y-x_{\lambda }\Vert \) and \(R=\left[ \begin{array}{rr}0&{}-1\\ 1&{}0\end{array}\right] \) is the 90 degree counter clockwise rotation matrix (Fig. 21). The cubic curve \(\tilde{\varphi }_{\alpha ,\beta ,\lambda }\) approximating the MAP segment arriving at y from \(x_{\lambda }\) is represented as a graph of a cubic polynomial in this coordinate system. Let \(a_0:=\tan \alpha \) and \(a_1:=\tan \beta \). Then

$$\begin{aligned} \tilde{\varphi }_{\alpha ,\beta ,\lambda }(r) = \left[ \begin{array}{c}r\\ q(r)\end{array}\right] ,\quad \mathrm{where}\quad q(r) = a_0r-\frac{a_0}{h_{\lambda }}r^2+ \frac{a_0+a_1}{h_{\lambda }^2} r^2(r-h_{\lambda }),\quad r\in [0,h_{\lambda }]. \end{aligned}$$

Note that the cubic polynomial q(r) satisfies \(q(0)=q(h_{\lambda }) = 0\), \(q'(0) = a_0\), \(q'(h_{\lambda })=a_1\), and the cubic curve \(\tilde{\varphi }_{\alpha ,\beta ,\lambda }\) is parametrized by the arclength of its chord. Then the velocity vector for \(\tilde{\varphi }_{\alpha ,\beta ,\lambda }\) is

$$\begin{aligned} \dot{\tilde{\varphi }}_{\alpha ,\beta ,\lambda }(r) = \left[ \begin{array}{c}1\\ q'(r)\end{array}\right] ,\quad \mathrm{where}\quad q'(r) = a_0-\frac{2a_0}{h_{\lambda }}r+ \frac{a_0+a_1}{h_{\lambda }^2} (3r^2-2h_{\lambda }r). \end{aligned}$$

Therefore, the geometric action along \(\tilde{\varphi }_{\alpha ,\beta ,\lambda }\) is

$$\begin{aligned} \int _0^{h_{\lambda }}\Vert b(\tilde{\varphi }_{\alpha ,\beta ,\lambda })\Vert \Vert \dot{\tilde{\varphi }}_{\alpha ,\beta ,\lambda }\Vert - \langle b(\tilde{\varphi }_{\alpha ,\beta ,\lambda }),\dot{\tilde{\varphi }}_{\alpha ,\beta ,\lambda }\rangle dr, \end{aligned}$$

where \(\langle \cdot ,\cdot \rangle \) denotes the dot product, and the integrand can be detailed as

$$\begin{aligned} \Vert b(x_{\lambda } + r\hat{e}_y+q(r) \hat{e}_w)\Vert \sqrt{1 +[q'(r)]^2} - \langle b(x_{\lambda } + r\hat{e}_y+q(r) \hat{e}_w),\hat{e}_y + q'(r) \hat{e}_w\rangle . \end{aligned}$$

To apply Simpson’s rule, we need to evaluate (A-5) at the endpoints \(r=0\) and \(r=h_{\lambda }\), and at the midpoint

$$\begin{aligned} \bar{x}_{\lambda } = x_{\lambda } + \frac{h_{\lambda }}{2}\hat{e}_y+q\left( \frac{h_{\lambda }}{2}\right) \hat{e}_w = \frac{y+x_{\lambda }}{2} + \frac{h_{\lambda }}{8}(a_0-a_1). \end{aligned}$$

We show how one can write the dot product in (A-5) in a compact manner:

$$\begin{aligned}&\langle b(\tilde{\varphi }_{\alpha ,\beta ,\lambda }(r) ),\hat{e}_y + q'(r) \hat{e}_w\rangle = \langle b(\tilde{\varphi }_{\alpha ,\beta ,\lambda }(r) ),\hat{e}_y + q'(r) R\hat{e}_y\rangle \\&\quad =\langle b(\tilde{\varphi }_{\alpha ,\beta ,\lambda }(r) ),(I + Rq'(r))\hat{e}_y\rangle = \langle \hat{e}_y,(I + Rq'(r))^\top b(\tilde{\varphi }_{\alpha ,\beta ,\lambda }(r) )\rangle . \end{aligned}$$

We denote the matrix \(I + Rq'(r)\) by \(R_{q'(r)}\): \(R_{q'(r)} = \left[ \begin{array}{cc}1&{}-q'(r) \\ q'(r) &{} 1\end{array}\right] \). Observing that \(R_{q'(r)}^\top \equiv R_{-q'(r)}\) and , we write out the objective function for triangle update:

$$\begin{aligned} G(a_0,a_1,\lambda ) =&p(\lambda ) +\frac{h_{\lambda }}{6}\left( \Vert b(x_{\lambda })\Vert \sqrt{1+a_0^2} + 4\Vert b(\bar{x}_{\lambda })\Vert \sqrt{1+\frac{(a_0+a_1)^2}{16}} +\Vert b(y)\Vert \sqrt{1+a_1^2}\right) \nonumber \\&-\frac{1}{6}\left\langle y-x_{\lambda },\left( R_{-a_0}b(x_{\lambda }) + 4R_{\frac{a_0+a_1}{4}}b(\bar{x}_{\lambda }) +R_{-a_1}b(y)\right) \right\rangle . \end{aligned}$$

Here, the polynomial \(p(\lambda )\) is the Hermite interpolant for U along the segment [xz] given by

$$\begin{aligned} p(\lambda ) = u_0p_0(\lambda ) + u_1p_0(1-\lambda )+u_0'p_1(\lambda ) - u_1'p_1(1-\lambda ), \end{aligned}$$

where \(u_0=U(x)\), \(u_1=U(z)\), \(u_0' = (z-x)\cdot \nabla U(x)\), \(u_0' = (z-x)\cdot \nabla U(z)\), \(p_0(\lambda ) = 1-3\lambda ^2+2\lambda ^3\), and \(p_1(\lambda ) = \lambda (1-\lambda )^2\).

The objective function for one-point update is obtained in a similar manner:

$$\begin{aligned} G_1(a_0,a_1)&=U(x) +\frac{h}{6}\left( \Vert b(x)\Vert \sqrt{1+a_0^2} + 4\Vert b(\bar{x})\Vert \sqrt{1+\frac{(a_0+a_1)^2}{16}} +\Vert b(y)\Vert \sqrt{1+a_1^2}\right) \nonumber \\&\quad -\frac{1}{6}\left\langle y-x,\left( R_{-a_0}b(x) + 4R_{\frac{a_0+a_1}{4}}b(\bar{x}) +R_{-a_1}b(y)\right) \right\rangle . \end{aligned}$$

We conduct minimization with respect to the slopes \(a_0\) and \(a_1\) rather than with respect to the angles \(\alpha \) and \(\beta \). Now, as we have the objective functions (A-6) and (A-8), it is straightforward to calculate their first and second derivatives.

Below we will write out the derivatives for \(G(a_0,a_1,\lambda )\). The derivatives for \(G_1(a_0,a_1)\) are readily obtained from them. We use the following shorthands:

$$\begin{aligned}&\delta := z-x,\\&q_{\lambda } := \frac{d\bar{x}_{\lambda }}{d\lambda } = \frac{1}{2}( \delta - \frac{a_0-a_1}{4} R \delta ),\\&h_\lambda ' = \frac{d h_{\lambda }}{d\lambda } = - \frac{\langle {y}-x_{\lambda },\delta \rangle }{h_{\lambda }}, \\&h_\lambda '' = \frac{d^2 h_{\lambda }}{d\lambda ^2} = \frac{|\delta |^2}{h_{\lambda }} - \frac{|\langle {y} - x_{\lambda }, \delta \rangle |^2}{h_{\lambda }^3}, \\&\hat{w}_{\lambda } := R (y - x_\lambda ) \end{aligned}$$

Also, we will use the following notation for the derivatives of b: Db is the Jacobian matrix for b: \((Db)_{ij} = \tfrac{\partial b_i}{\partial x_j}\), \(i,j = 1,2\), and \(D^2b\) is the second derivative tensor: \((D^2b)_{ijk} = \tfrac{\partial ^2 b_i}{\partial x_j\partial x_k}\), and \((u D^2 b v)_i = u_j(D^2b)_{ijk}v_k\).


$$\begin{aligned} \frac{\partial G}{\partial a_0} =&\frac{h_\lambda }{6} \Big [ \frac{a_0}{\sqrt{1+a_0^2}}|b(x_{\lambda })| + \frac{1}{4} \frac{a_0+a_1}{\sqrt{1+\frac{(a_0+a_1)^2}{16}}}|b(\bar{x}_{\lambda })| \\&+ \frac{h_{\lambda }}{2} \sqrt{1+\frac{(a_0+a_1)^2}{16}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) \hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \\&+ \langle \hat{w}_{\lambda },b(\bar{x}_{\lambda })-b(x_{\lambda }) \rangle - \frac{1}{2} \langle R_{(a_0+a_1)/4} Db(\bar{x}_{\lambda })\hat{w}_{\lambda },{y}-x_{\lambda } \rangle \Big ];\\ \frac{\partial G}{\partial a_1} =&\frac{h_\lambda }{6} \Big [ \frac{a_1}{\sqrt{1+a_1^2}}|b({y})| + \frac{1}{4} \frac{a_0+a_1}{\sqrt{1+\frac{(a_0+a_1)^2}{16}}}|b(\bar{x}_{\lambda })| \\&- \frac{h_{\lambda }}{2} \sqrt{1+\frac{(a_0+a_1)^2}{16}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) \hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \\&+ \langle \hat{w}_{\lambda },b(\bar{x}_{\lambda })-b({y}) \rangle + \frac{1}{2} \langle R_{(a_0+a_1)/4} Db(\bar{x}_{\lambda })\hat{w}_{\lambda },{y}-x_{\lambda } \rangle \Big ];\\ \frac{\partial G}{\partial \lambda } =&p'(\lambda ) + \frac{h_\lambda '}{6} \Big [ \sqrt{1+a_0^2} |b(x_{\lambda })| +4 \sqrt{1+\frac{(a_0+a_1)^2}{16}} |b(\bar{x}_{\lambda })| + \sqrt{1+a_1^2} |b({y})|\Big ] \\&+ \frac{h_\lambda }{6} \Big [\sqrt{1+a_0^2} \frac{\langle b(x_{\lambda }),Db(x_{\lambda })\delta \rangle }{|b(x_{\lambda })|} + 4 \sqrt{1+\frac{(a_0+a_1)^2}{16}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) q_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|}\Big ] \\&+ \frac{1}{6} \langle \delta , R_{-a_0}b(x_{\lambda }) + 4R_{(a_0+a_1)/4} b(\bar{x}_{\lambda }) + R_{-a_1}b({y}) \rangle \\&- \frac{1}{6} \langle {y} - x_{\lambda }, R_{-a_0} Db(x_{\lambda })\delta + 4 R_{(a_0+a_1)/4} Db(\bar{x}_{\lambda }) q_{\lambda } \rangle , \end{aligned}$$


$$\begin{aligned} \frac{\partial ^2G}{\partial a_0 \partial a_1} =&- \frac{h_\lambda ^2}{16}\sqrt{1+\frac{(a_0+a_1)^2}{16}} \frac{1}{|b(\bar{x}_{\lambda })|} \Big [ |Db(\bar{x}_{\lambda }) \hat{w}_{\lambda }|^2 + \langle b(\bar{x}_{\lambda }),\hat{w}_{\lambda } D^2b(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle \\&- \frac{|\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle |^2}{|b(\bar{x}_{\lambda })|^2} \Big ] \\&+ \frac{1}{4}|b(\bar{x}_{\lambda })| \Big (1 + \frac{(a_0+a_1)^2}{16}\Big )^{-3/2} + \frac{h_\lambda }{16}\langle {y} - x_{\lambda }, R_{(a_0+a_1)/4} \hat{w}_{\lambda } D^2b(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle ,\\ \frac{\partial ^2 G}{\partial a_0 \partial \lambda } =&\frac{h_{\lambda }'}{6} \Big [ \frac{a_0}{\sqrt{1+a_0^2}} |b(x_{\lambda })| + \frac{1}{4}\frac{a_0+a_1}{\sqrt{1+\frac{(a_0+a_1)^2}{16}}}|b(\bar{x}_{\lambda })| \\&+ \frac{h_{\lambda }}{2} \sqrt{1+\frac{(a_0+a_1)^2}{16}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \Big ] \\&+ \frac{h_{\lambda }}{6} \Big [ \frac{a_0}{\sqrt{1+a_0^2}} \frac{\langle b(x_{\lambda }),Db(x_{\lambda })\delta \rangle }{|b(x_{\lambda })|} + \frac{1}{4}\frac{a_0+a_1}{\sqrt{1+\frac{(a_0+a_1)^2}{16}}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) q_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \Big ] \\&+ \frac{h_{\lambda }^2}{12}\sqrt{1+\frac{(a_0+a_1)^2}{16}} \Big [ \frac{\langle Db(\bar{x}_{\lambda })\hat{w}_{\lambda },Db(\bar{x}_{\lambda })q_{\lambda } + \langle b(\bar{x}_{\lambda }), \hat{w}_{\lambda } D^2b(\bar{x}_{\lambda }) q_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \\&- \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) R \delta \rangle }{h_{\lambda } |b(\bar{x}_{\lambda })|} - \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda })q_{\lambda } \rangle \langle b(\bar{x}_{\lambda },Db(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|^3} \Big ] \\&+ \frac{1}{6} \langle \delta , -R b(x_{\lambda }) +R b(\bar{x}_{\lambda }) + \frac{h_{\lambda }}{2} R_{(a_0+a_1)/4} Db(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle \\&-\frac{1}{6} \langle {y} - x_{\lambda }, -RDb(x_{\lambda }) \delta + R Db(\bar{x}_{\lambda })q_{\lambda } + \frac{h_{\lambda }}{2} R_{(a_0+a_1)/4}\hat{w}_{\lambda } D^2b(\bar{x}_{\lambda })q_{\lambda }\\&-\frac{1}{2}R_{(a_0+a_1)/4} Db(\bar{x}_{\lambda })R\delta \rangle ,\\ \frac{\partial ^2 G}{\partial a_1 \partial \lambda } =&\frac{h_{\lambda }'}{6} \Big [ \frac{1}{4}\frac{a_0+a_1}{\sqrt{1+\frac{(a_0+a_1)^2}{16}}}|b(\bar{x}_{\lambda })| - \frac{h_{\lambda }}{2} \sqrt{1+\frac{(a_0+a_1)^2}{16}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \\&+ \frac{a_1}{\sqrt{1+a_1^2}} |b({y})|\Big ] + \frac{h_{\lambda }}{6} \Big [ \frac{1}{4}\frac{a_0+a_1}{\sqrt{1+\frac{(a_0+a_1)^2}{16}}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) q_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \Big ] \\&+ \frac{h_{\lambda }^2}{12}\sqrt{1+\frac{(a_0+a_1)^2}{16}} \Big [ -\frac{\langle Db(\bar{x}_{\lambda })\hat{w}_{\lambda },Db(\bar{x}_{\lambda })q_{\lambda } + \langle b(\bar{x}_{\lambda }), \hat{w}_{\lambda } D^2b(\bar{x}_{\lambda }) q_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \\&+ \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) R \delta \rangle }{h_{\lambda } |b(\bar{x}_{\lambda })|} + \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda })q_{\lambda } \rangle \langle b(\bar{x}_{\lambda },Db(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|^3} \Big ] \\&+ \frac{1}{6} \langle \delta , -R b({y}) +R b(\bar{x}_{\lambda }) - \frac{h_{\lambda }}{2} R_{(a_0+a_1)/4} Db(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle \\&-\frac{1}{6} \langle {y} - x_{\lambda }, + R Db(\bar{x}_{\lambda })q_{\lambda } - \frac{h_{\lambda }}{2} R_{(a_0+a_1)/4}\hat{w}_{\lambda } D^2b(\bar{x}_{\lambda })q_{\lambda } +\frac{1}{2}R_{(a_0+a_1)/4} Db(\bar{x}_{\lambda })R\delta \rangle ,\\ \frac{\partial ^2 G }{\partial a_0^2} =&\frac{h_{\lambda }}{6} \Big [ (1+a_0^2)^{-3/2}|b(x_{\lambda })| + \frac{1}{4} \Big (1+\frac{(a_0+a_1)^2}{16} \Big )^{-3/2}|b(\bar{x}_{\lambda })| \Big ] \\&+ \frac{h_{\lambda }^2}{96} \frac{a_0+a_1}{\sqrt{1+\frac{(a_0+a_1)^2}{16}}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) \hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \\&+ \frac{h_{\lambda }^3}{96}\sqrt{1+\frac{(a_0+a_1)^2}{16}} \Big [ \frac{ |Db(\bar{x}_{\lambda })\hat{w}_{\lambda }|^2 + \langle b(\bar{x}_{\lambda }),\hat{w}_{\lambda } D^2b(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} - \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda })\hat{w}_{\lambda }\rangle ^2}{|b(\bar{x}_{\lambda })|^3} \Big ] \\&+\frac{h_{\lambda }^2}{24} \langle \hat{w}_{\lambda }, Db(\bar{x}_{\lambda })\hat{w}_{\lambda }\rangle - \frac{h_{\lambda }^2}{96}\langle R_{(a_0+a_1)/4}\hat{w}_{\lambda } Db(\bar{x}_{\lambda })\hat{w}_{\lambda },{y} - x_{\lambda } \rangle ,\\ \frac{\partial ^2 G }{\partial a_1^2} =&\frac{h_{\lambda }}{6} \Big [ (1+a_1^2)^{-3/2}|b({y})| + \frac{1}{4} \Big (1+\frac{(a_0+a_1)^2}{16} \Big )^{-3/2}|b(\bar{x}_{\lambda })| \Big ] \\&- \frac{h_{\lambda }^2}{96} \frac{a_0+a_1}{\sqrt{1+\frac{(a_0+a_1)^2}{16}}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) \hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \\&+ \frac{h_{\lambda }^3}{96}\sqrt{1+\frac{(a_0+a_1)^2}{16}} \Big [ \frac{ |Db(\bar{x}_{\lambda })\hat{w}_{\lambda }|^2 + \langle b(\bar{x}_{\lambda }),\hat{w}_{\lambda } D^2b(\bar{x}_{\lambda })\hat{w}_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} - \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda })\hat{w}_{\lambda }\rangle ^2}{|b(\bar{x}_{\lambda })|^3} \Big ] \\&-\frac{h_{\lambda }^2}{24} \langle \hat{w}_{\lambda }, Db(\bar{x}_{\lambda })\hat{w}_{\lambda }\rangle - \frac{h_{\lambda }^2}{96}\langle R_{(a_0+a_1)/4}\hat{w}_{\lambda } Db(\bar{x}_{\lambda })\hat{w}_{\lambda },{y} - x_{\lambda } \rangle ,\\ \frac{\partial ^2G }{\partial \lambda ^2} =&p''(\lambda ) + \frac{h_\lambda ''}{6} \Big [ \sqrt{1+a_0^2} |b(x_{\lambda })| +4 \sqrt{1+\frac{(a_0+a_1)^2}{16}} |b(\bar{x}_{\lambda })| + \sqrt{1+a_1^2} |b({y})|\Big ] \\&+ \frac{h_{\lambda }'}{3} \Big [\sqrt{1+a_0^2} \frac{\langle b(x_{\lambda }),Db(x_{\lambda })\delta \rangle }{|b(x_{\lambda })|} + 4 \sqrt{1+\frac{(a_0+a_1)^2}{16}} \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda }) q_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} \Big ] \\&+ \frac{h_{\lambda }}{6} \sqrt{1+a_0^2} \Big [ \frac{ |Db(x_{\lambda })\delta |^2 + \langle b(x_{\lambda }), \delta D^2b(x_{\lambda })\delta \rangle }{|b(x_{\lambda })|} - \frac{ \langle b(x_{\lambda }),Db(x_{\lambda })\delta \rangle ^2}{|b(x_{\lambda })|^3} \Big ] \\&+ \frac{2h_{\lambda }}{3} \sqrt{1+\frac{(a_0+a_1)^2}{16}} \Big [ \frac{ |Db(\bar{x}_{\lambda })q_{\lambda }|^2 + \langle b(\bar{x}_{\lambda }),q_{\lambda } Db(\bar{x}_{\lambda }) q_{\lambda } \rangle }{|b(\bar{x}_{\lambda })|} - \frac{\langle b(\bar{x}_{\lambda }),Db(\bar{x}_{\lambda })q_{\lambda }\rangle ^2}{|b(\bar{x}_{\lambda })|^3} \Big ] \\&+ \frac{1}{3} \langle \delta , R_{-a_0} Db(x_{\lambda })\delta + 4R_{(a_0+a_1)/4} Db(\bar{x}_{\lambda })q_{\lambda } \rangle \\&-\frac{1}{6} \langle {y} - x_{\lambda },R_{-a_0} \delta D^2b(x_{\lambda }) \delta + 4 R_{(a_0+a_1)/4} q_{\lambda } D^2b(\bar{x}_{\lambda })q_{\lambda } \rangle . \end{aligned}$$

Appendix: Estimating Transition Rate Using the Transition Path Theory

The transition path theory [33] is a mathematical framework for quantifying transitions between metastable states in stochastic systems. The generator of the stochastic process governed by SDE (1) is given by

$$\begin{aligned} \mathcal {L}: = b(x)\cdot \nabla + \frac{{\epsilon }}{2} \Delta . \end{aligned}$$

After discretizing the generator to an \(N\times N\) mesh, it can be viewed as a generator matrix of a Markov jump process on this mesh, where jumps are enabled only between nearest neighbors. Denoting the discretized generator by L, we easily obtain its adjoint \(L^*\) by transposing it. The eigenvector of \(L^*\) corresponding to its zero eigenvalue is normalized so that the sum of its entries is one and it provides the invariant probability distribution \(\mu \) on the mesh. The computational domain for finding \(\mu \) was set to \(D = [-2,0]\times [-1,1]\), and \(N=1025\). The homogeneous Neumann boundary conditions were used at \(\partial D\) which correspond to reflecting boundary condition. The symmetry of the Maier-Stein drift field with respect to the y-axis and the extremely low probability of reaching the other parts of \(\partial D\) justify this choice.

The transition process between given regions A and B is described by the vector field called the reactive current. The sets A and B are usually picked as neighborhoods of attractors of \(\dot{x}=b(x)\). For the Maier-Stein SDE, We chose A and B to be balls of radius 0.3 surrounding \({\mathcal O}_-\) and \({\mathcal O}_+\). The reactive current for SDE (1) is given by [34]

$$\begin{aligned} J_R = q_+q_-J + \frac{\mu \epsilon }{2}\left( q_-\nabla q_+ - q_+\nabla q_-\right) , \end{aligned}$$

where \(J = \mu b-\tfrac{{\epsilon }}{2}\nabla \mu \) is the probability current, and \(q_+\) and \(q_-\) are the forward and backward committor functions. The forward committor \(q_+(x)\) is the probability that the process starting at x first hits B rather than A. The backward committor is the probability that the process arriving at x last exited from A rather than from B. The forward and backward committors are the solutions to the following boundary-value problems:

$$\begin{aligned} {\left\{ \begin{array}{ll}\mathcal {L}q_+=0,&{}x\in {\mathbb R}^n\backslash (A\cup B),\\ q_+ = 0, &{} x\in \partial A,\\ q_+ = 1,&{} x\in \partial B;\end{array}\right. }\qquad {\left\{ \begin{array}{ll}\mathcal {L^\dagger }q_-=0,&{}x\in {\mathbb R}^n\backslash (A\cup B),\\ q_- = 1, &{} x\in \partial A,\\ q_- = 0,&{} x\in \partial B.\end{array}\right. } \end{aligned}$$

The operator \(\mathcal {L}^\dagger \) is the generator for the time-reversed process. It is easier to find its discrete counterpart using the formula: \(L^\dagger = M^{-1}L^\top M\), where \(M = \mathsf{diag}\{\mu \}\) is the diagonal matrix with the invariant distribution \(\mu \) along its diagonal [17]. To compute the reactive current, we used the computational domain \([-1.5,1.5]\times [-0.75,0.75]\backslash (A\cup B)\) with homogeneous Neumann boundary conditions at the outer boundary. The box \([-1.5,1.5]\times [-0.75,0.75]\) was discretized to \(N\times N\) mesh with \(N=1025\).

The reaction rate, i.e., the mean number of transitions from A to B per unit time is equal to the average flux of the reactive current through any surface S dividing A and B:

$$\begin{aligned} \nu _{AB} = \int _S J_R\cdot \hat{n}d\sigma , \end{aligned}$$

where \(\hat{n}\) is the unit normal to the surface S pointing towards B and \(d\sigma \) is the surface element. For the Maier-Stein SDE, we chose the y-axis as the dividing surface.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Paskal, N., Cameron, M. An Efficient Jet Marcher for Computing the Quasipotential for 2D SDEs. J Sci Comput 91, 30 (2022).

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • DOI:


Mathematics Subject Classification