1 Introduction

In this paper, we consider the following reaction–diffusion equation on the sphere and red-blood cell surfaces (Fuselier and Wright 2013):

$$\begin{aligned} \left\{ \begin{array}{l} \dfrac{{\partial u}}{{\partial t}} = {\delta _u}\,{\varDelta _\mathbb {M}}u + {f_u}(u,v,t), \\ \dfrac{{\partial v}}{{\partial t}} = {\delta _v}\,{\varDelta _\mathbb {M}}v + {f_v}(u,v,t),\\ \end{array} \right. \end{aligned}$$
(1.1)

in which \(u,v:\mathbb {M} \rightarrow \mathbb {R}\), \({\delta _u},{\delta _v} \ge 0\), \({f_u},{f_v}\) are (possibly non-linear) scalar functions, and \(\varDelta _\mathbb {M}\) is the Laplace–Beltrami operator defined on the surface \(\mathbb {M} \subset \mathbb {R}^3\) (Fuselier and Wright 2013). Here, we introduce two important reaction–diffusion equations in developmental biology defined on the surfaces.

1.1 Turing model

The mathematical model of Turing pattern formation on the surfaces is of the following form (Fuselier and Wright 2013):

$$\begin{aligned} \left\{ {\begin{array}{l} {\dfrac{{\partial u}}{{\partial t}} = {\delta _u} {\varDelta _\mathbb {M}}u + \alpha u(1 - {\tau _1}{v^2}) + v(1 - {\tau _2}u),}\\ {\dfrac{{\partial v}}{{\partial t}} = {\delta _v} {\varDelta _\mathbb {M}}v + \beta v(1 + \frac{{\alpha {\tau _1}}}{\beta }uv) + u(\gamma + {\tau _2}v),} \end{array}} \right. \end{aligned}$$
(1.2)

where u and v represent concentrations of the chemical substances. In fact, the substances u and v are called the activator with a slow diffusion rate and the inhibitor with a fast diffusion rate, respectively (Gierer and Meinhardt 1972). Moreover, the cubic coupling parameter \(\tau _1\) points the stripes patterns, while the quadratic coupling parameter \(\tau _2\) refers to spot patterns (Fuselier and Wright 2013). As is said in Sugai et al. (2017), the activator increases the concentrations of both the activator and the inhibitor, while the inhibitor represses the concentration of the activator. We can also derive different patterns such as spots and stripes by changing diffusivity rates (Fuselier and Wright 2013; Mosekilde 1996). As mentioned in Fuselier and Wright (2013) and related literature works, the spot pattern formations are more robust than the stripes and take far less time to reach steady state.

The history of primary Turing model comes back to 1952. In that year, Alan Turing in his paper Turing (1952) showed how chemical reactions can create patterns in the nature by reaction–diffusion equation. As is said in Maini et al. (2012), Turing hypothesized that the patterns which we observe during embryonic development arise in response to a spatial pre-pattern in biochemicals which he called morphogens. Until now, Turing mechanism is considered experimentally in different morphological events such as, hair pattern of mammals, feather patterns of birds, regeneration of hydra, and pigment pattern formation in the skin of zebrafish (Kondo et al. 2009; Murray 1993). As is said in Sheth et al. (2012), to achieve a leopard spot pattern, the activator u produces a dark colored fur, while the inhibitor v prevents the dark color formation which gives the background gold color, and the overall result is black spots on a gold background (Sheth et al. 2012). Besides, there are other complex patterns which can be derived via modified reaction–diffusion system (see Fig. 1).

Fig. 1
figure 1

Taken from Kondo and Miura (2010)

Biological patterns created by modified reaction–diffusion mechanisms for types of seashell and fish

Several Turing models have been developed such as the Gierer–Meinhardt model (Gierer and Meinhardt 1972), Gray–Scott model (Gray and Scott 1983), Lengyel–Epstein model (Lengyel and Epstein 1991), Brusselator model (Prigogine and Lefever 1968), Schnakenberg model (Schnakenberg 1979), and Selkov model (Selkov 1968). The solutions of Turing models show the pattern formation in the developing animal embryo through interactions between two diffusible substances (Kondo and Miura 2010). Since the exact solutions for Turing models are not available, finding the numerical solutions will be important. For example, spot pattern on cheetah is simulated by applying numerical method on reaction–diffusion equation in Cooper and Leeuwen (2013) and Varvruska (2015). Besides, patterns on the wings of a butterfly have been simulated in Sekimura et al. (2000) with a numerical method. The other numerical techniques for showing Turing patterns can be found in the literature works.

1.2 Fitzhugh–Nagumo model

The well-known Fitzhugh–Nagumo (FHN) model is formulated as a reaction–diffusion system in the following form (Fuselier and Wright 2013):

$$\begin{aligned} \left\{ \begin{array}{l} \dfrac{{\partial u}}{{\partial t}} = {\delta _u}\,{\varDelta _\mathbb {M}}u + \dfrac{1}{\alpha }u(1 - u)(u - \dfrac{{v + b}}{a}),\\ \dfrac{{\partial v}}{{\partial t}} = {\delta _v}\,{\varDelta _\mathbb {M}}v + (u - v), \end{array} \right. \end{aligned}$$
(1.3)

where u denotes the membrane potential, and v is a recovery variable (Tonnelier 2002). The parameters a, b, and \(\alpha \) govern the reaction Kinetic. In addition, \(\delta _u\) and \(\delta _v\) represent the diffusivities rates (Fuselier and Wright 2013). As is mentioned in Fuselier and Wright (2013), when \(\alpha<<1\), the value of u is 0 or 1 almost everywhere (Fuselier and Wright 2013). The FHN model is often applied as a generic model for excitable media (Nomura and Glass 1996).

The patterns of action potential propagation along the axon of a single neuron or in a network of cortical neurons can be obtained by numerical simulations of FHN model (Alford and Auchmuty 2006). In addition, this model can be applied to simulate the propagation of wave in heart tissue (Cherry and Fenton 2008) (see Fig. 2).

Fig. 2
figure 2

Taken from Cherry and Fenton (2008)

Spiral wave on the surface of a human heart

The history of FHN model returns to 1928 when Van der Pol and Van der Mark introduced a mathematical model for showing the heart’s dynamic (Van der Pol and Van der mark 1928). In 1952, Hodgkin and Huxley presented another mathematical model known as Hodgkin–Huxley for explaining the behavior of nerve cells in a squid giant axon (Hodgkin Huxley 1952). In 1961, Fitzhugh proposed a new model of the electrical activities of nerve membrane by using of simple representative of Hodgkin-Huxley model (Fitzhugh 1961). After that, in 1962, Nagumo et al. (1962) confirmed Fitzhugh’s model and proposed a new mathematical model of the nerve axon. Finally, this model is known as Fitzhugh–Nagumo which interprets qualitative characteristics of electrical impulses along nerve and cardiac fibers (Xu et al. 2014). The other types of FHN model which have been derived from the original one can be found in Izhikevich (2010), Kostova et al. (2004), and Roqoreanu et al. (2000).

1.3 The literature review

In recent years, there are different research works on the numerical solutions of the reaction-di usion equations. For example, Discontinuous Galerkin (DG) method (Epshteyn and Kurganov 2008, and Zhu et al. 2009), various finite difference (FD) techniques (Smiely 2009; Tyson et al. 1999, 2000), and finite volume methods (Chertock and Kurganov 2008; Chiu and Yu 2007). Authors of Shakeri and Dehghan (2011) combined the spectral element method with finite volume method, and obtained a numerical scheme for solving Turing model in two-dimension. Authors of Tatari et al. (2011) applied the moving least-squares (MLS) approximation to solve Turing equation in \(\mathbb {R}^2\). In Ilati and Dehghan (2015), the meshless local weak form has been applied to solve Brusselator model and spike dynamics in the Gierer–Meinhardt system. In addition, they solved Turing-type models via direct meshless local Petrov–Galerkin (DMLPG) method (Ilati and Dehghan 2017). In Guin and Mandal (2014), the finite difference scheme was used to solve predator–prey model. More numerical simulations of the reaction–diffusion equations can be found in Gambino et al. (2013), Guin et al. (2012), and Guin (2015). Also, for solving Brusselator model, there are some methods such as Adomian decomposition method (Adomian 1995), second-order finite difference scheme (Twizell et al. 1999), modified Adomian decomposition method (Wazwaz 2000), dual-reciprocity boundary element method (Ang 2003), differential quadrature method (Mittal and Jiwari 2011), and radial basis functions collocation method (Islam et al. 2010). Recently, the authors of Mohammadi et al. (2014) solved this problem with reproducing kernel Hilbert space technique. In Dehghan and Fakhar-Izadi (2011), pseudospectral method has been applied to find the numerical solution of Nagumo equation in one-dimensional space. Authors of Dehghan and Abbaszadeh (2016) obtained the numerical solution of Turing and FHN models in two-dimensional space with element-free Galerkin (EFG) method which is combined with the moving kringing least-squares technique and radial point interpolation scheme. A high-order kernel method based on radial basis functions (RBFs) is applied to solve reaction–diffusion equations on the surfaces embedded in \(\mathbb {R}^3\) (Fuselier and Wright 2013). In Shankar et al. (2015), the authors introduced a radial basis function (RBF)–finite difference (FD) method and applied it for solving reaction–diffusion equations on the surfaces. Authors of (Lehto et al. 2017) provided a radial basis function (RBF) compact finite difference (FD) scheme for solving reaction–diffusion equations on surfaces. In Peng and Zhang (2016), the method of multiple time scales is employed to derive the amplitude equations which are the cubic Stuart–Landau equation in the supercritical case and the quintic in the subcritical case. In Fua et al. (2016), a new mixed finite-element method is introduced for approximating the steady reaction–diffusion equations. Other numerical methods for finding the numerical solutions of Turing models can be observed in Bergdorf et al. (2010), Bertalmio et al. (2001), Calhoun and Helzel (2009), Gomatam and Amdjadi (1997), MacDonald and Ruuth (2009), Piret (2012), Ruuth and Merriman (2008), and references therein.

1.4 The structure of remainder of this paper

In this paper, we use a direct method based on generalized moving least squares (GMLS) for approximating the spatial variables of Turing and FHN equations on the unit sphere and red-blood cell surfaces. The remainder of the paper is as follows: Sect. 2 gives a brief discussion of the GMLS approximation. The discussion of the continuous surface differential operators is given in the next section. In Sect. 4, we approximate the Laplace–Beltrami operator using the projected gradient of the shape functions. In Sect. 5, the time discretization of the semi-discretized reaction–diffusion equation using the fourth-order Runge–Kutta method is given. In Sect. 6, some numerical simulations are reported for solving Turing and FHN models on the unit sphere and red-blood cell surfaces.

2 Generalized moving least squares approximation

The generalized moving least squares approximation on the spheres has been introduced by Mirzaei (2017). In this section, we briefly review the main idea of this approximation on the two-dimensional unit sphere, i.e., \(\mathbb {S}^2\). For further information, the interested reader can refer to Mirzaei (2017) and the other references such as Fasshauer (2007), Mirzaei (2016), Mirzaei et al. (2012), and Wendland (2005).

Suppose that \(X = \left\{ {{\mathbf {x}_1},{\mathbf {x}_2},\ldots ,{\mathbf {x}_N}} \right\} \) is N scattered points on the unit sphere. In addition, \( \mathbf {P} = \left\{ {{p_1},{p_2}, \ldots ,{p_Q}} \right\} \) is the basis of the space of all spherical harmonics of degree m which is denoted by \(Y ^{2}_{m}\). Besides, we consider u is a scalar real-valued function defined on \(\mathbb {S}^2\). The approximation of u by GMLS can be written as follows (Mirzaei 2016, 2017; Mirzaei et al. 2012):

$$\begin{aligned} u(\mathbf {x}) \approx \widehat{u(\mathbf {x})} = \displaystyle \sum _{j \in I(\mathbf {x})} {{a_j}} (\mathbf {x})u({\mathbf {x}_j}),\quad \mathbf {x} \in \mathbb {S}^2, \end{aligned}$$

where \({a_j}(\mathbf {x})\, j=1,2,\ldots ,|I(\mathbf {x})|\) are the shape functions which are obtained from the minimizing of the weighted discrete-\({\ell _2}\) (Lancaster and Salkauskas 1981, Mirzaei 2017, Salehi and Dehghan 2013). In addition, \(I(\mathbf {x})\,\) denotes the family of indices of points in support \(\mathbf {x} \in \mathbb {S}^2\), and it is defined as follows:

$$\begin{aligned} I({\mathbf {x}}) = \left\{ {j \in \left\{ {1,2,\ldots ,N} \right\} : \hbox {dist}(\mathbf {x},{ \mathbf {x}_j}) \le \delta } \right\} , \end{aligned}$$

in which \(\delta \) is the radius of support domain, and \(\hbox {dist}(\mathbf {x},{ \mathbf {x}_j})\) shows the geodesic distance between \(\mathbf {x}\) and \(\mathbf {x}_{j}\) on \(\mathbb {S}^2\).

Definition 1

The weight function W is defined as follows (Mirzaei 2016, 2017; Mirzaei et al. 2012; Wendland 2005):

$$\begin{aligned} W:\mathbb {S}^2 \times \mathbb {S}^2 \rightarrow \mathbb {R}, \end{aligned}$$

such that

$$\begin{aligned} W({\mathbf {x}},{{\mathbf {x}}_j}) = \left\{ \begin{array}{ll} \phi \left( r \right) ,&{} \quad 0 \le r \le 1,\\ 0,&{} \quad r > 1, \end{array} \right. \end{aligned}$$

where \(\phi \) is a radial function and \(r:=\dfrac{\hbox {dist}(\mathbf {x},{ \mathbf {x}_j})}{\delta }\).

In this paper, we use the Gaussian weight function as follows (Mirzaei 2016, 2017; Mirzaei et al. 2012):

$$\begin{aligned} W(\mathbf {x},\mathbf {x}_{j}) = \left\{ \begin{array}{ll} \dfrac{{\hbox {e}^{ - {\varepsilon ^2}{r^2}} - \hbox {e}^{- {\varepsilon ^2}}}}{{1 - \hbox {e}^{ - {\varepsilon ^2}}}},&{} \quad 0\, \le \,r \le 1,\\ 0,&{} \quad r> 1, \end{array} \right. \end{aligned}$$

where \(\varepsilon \) is a constant (shape) parameter. The approximation of \(D^{\alpha }u(\mathbf {x})\) for multi-index \(\alpha \in \mathbb {N}^{d}_{0}\), where \(\left| \alpha \right| = {\alpha _1} + {\alpha _2} + \cdots + {\alpha _d}\), can be written as follows (Mirzaei 2016, 2017; Mirzaei et al. 2012):

$$\begin{aligned} {D^\alpha }u(\mathbf {x}) \approx \widehat{{D^\alpha } u(\mathbf {x})} = \displaystyle \sum _{j \in I(\mathbf {x})} {{a_{j,\alpha }}(\mathbf {x})u_{j}}, \quad \mathbf {x} \in \mathbb {S}^2. \end{aligned}$$

The vector form of \(\widehat{{D^\alpha }u(\mathbf {x})}\) can be written as follows:

$$\begin{aligned} \widehat{{D^\alpha }u(\mathbf {x})}=[a_{1,\alpha }(\mathbf {x}),a_{2,\alpha }(\mathbf {x}),\ldots , a_{|I(\mathbf {x})|,\alpha }(\mathbf {x})]\mathbf {u}:= {D^\alpha }{p^T(\mathbf {x})}{({P^T}WP)^{ - 1}}{P^T}W \mathbf {u}, \end{aligned}$$

in which

$$\begin{aligned} D^\alpha p^{\mathrm{T}}(\mathbf {x})= & {} {[D^\alpha {p_1}(\mathbf {x}),D^\alpha {p_2}(\mathbf {x}),\ldots ,D^\alpha {p_Q}(\mathbf {x})]}, \\ P= & {} P(\mathbf {x}) = ({P_k}({\mathbf {x}_j})) \in {\mathbb {R}^{\left| {I(\mathbf {x})} \right| \times Q}}, \\ W= & {} W(\mathbf {x}) = diag\{ W(\mathbf {x},{\mathbf {x}_j})\} \in {R^{\left| {I(\mathbf {x})} \right| \times \left| {I(\mathbf {x})} \right| }}, \\ \mathbf {u}= & {} [u_{1},u_{2},\ldots ,u_{|I(\mathbf {x})|}]^{\mathrm{T}} \in {\mathbb {R}^{\left| {I(\mathbf {x})} \right| }}. \end{aligned}$$

3 Continuous surface differential operators

In this section, we present the mathematical formulations of the differential operators which are defined on the surfaces embedded in \(\mathbb {R}^3\). All discussions proposed here are taken from Fuselier and Wright (2013). For more details, the interested reader can refer to Fuselier and Wright (2013) and references therein.

We suppose that \(\mathbb {M}\) is a smooth-embedded surface (sub-manifold) of \(\mathbb {R}^3\) with no boundary. At each point \(\mathbf {x}=(x,y,z)^{\mathrm{T}}\) on \(\mathbb {M}\), we denote the normal vector as \(\mathbf {n} = ({n^x},{n^y},{n^z})^{\mathrm{T}}\), and the tangent vector to \(\mathbb {M}\) at \(\mathbf {x}\) is shown with \({T_\mathbf {x}}\mathbb {M},\) i.e., Fuselier and Wright (2013):

$$\begin{aligned} {\nabla _\mathbb {M}}: = P\,\nabla = (I - \mathbf {n}{\mathbf {n}^T})\,\nabla , \end{aligned}$$
(3.1)

such that P projects vectors in \(\mathbb {R}^3\) to \(T_x\mathbb {M}\). The vector form of \(\nabla _\mathbb {M}\) can be written as follows:

$$\begin{aligned} \nabla _\mathbb {M} = \left[ \begin{array}{l} (1 - {n_x}{n_x})\,\dfrac{\partial }{{\partial x}} - {n_x}{n_y}\dfrac{\partial }{{\partial y}} - {n_x}{n_z}\dfrac{\partial }{{\partial z}}\\ - {n_x}{n_y}\dfrac{\partial }{{\partial x}} + (1 - {n_y}{n_y})\,\dfrac{\partial }{{\partial y}} - {n_y}{n_z}\dfrac{\partial }{{\partial z}}\\ - {n_x}{n_z}\dfrac{\partial }{{\partial x}} - {n_y}{n_z}\dfrac{\partial }{{\partial y}} + (1 - {n_z}{n_z})\,\dfrac{\partial }{{\partial z}}\\ \end{array} \right] := \left[ \begin{array}{l} \eta ^x\\ \eta ^y\\ \eta ^z\\ \end{array} \right] . \end{aligned}$$
(3.2)

Due to the definition \(\nabla _{\mathbb {M}}\), i.e., Eq. (3.2), the Laplace–Beltrami operator can be written as follows:

$$\begin{aligned} {\varDelta _\mathbb {M}}: = {\nabla _\mathbb {M}}.\,{\nabla _\mathbb {M}} = (P\,\nabla ).\,(P\,\nabla ) = {\eta ^x}{\eta ^x} + {\eta ^y}{\eta ^y} + {\eta ^z}{\eta ^z}. \end{aligned}$$
(3.3)

4 The projected gradient of the shape functions

Our goal of this section is to approximate the Laplace–Beltrami operator defined on the sphere and red-blood cell surfaces at given set of points X by GMLS technique. For this purpose, the approximation of the surface differential operators which is based on deriving the projected gradient of the shape functions is introduced. Another approach with details to approximate Laplace–Beltrami operator defined on the spheres by GMLS can be found in Mirzaei (2017).

According to (3.2), at point \(\mathbf {x} \in \mathbb {M}\), we have

$$\begin{aligned} {\nabla _\mathbb {M}}{a_j}(\mathbf {x}) = \left[ \begin{array}{l} (1 - {n_x}{n_x})\,\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial x}} - {n_x}{n_y}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial y}} - {n_x}{n_z}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial z}}\\ - {n_x}{n_y}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial x}} + (1 - {n_y}{n_y})\,\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial y}} - {n_y}{n_z}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial z}}\\ - {n_x}{n_z}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial x}} - {n_y}{n_z}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial y}} + (1 - {n_z}{n_z})\,\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial z}}\\ \end{array} \right] , \end{aligned}$$
(4.1)

for \(j=1,2,\ldots ,|I(\mathbf {x})|\). We again consider the following approximation for the function u defined on the surface \(\mathbb {M}\):

$$\begin{aligned} {u}(\mathbf {x}) = \displaystyle \sum _{j \in I(\mathbf {x})} {{a_j}(\mathbf {x})\,{u_j}},\quad \mathbf {x} \in \mathbb {M}. \end{aligned}$$
(4.2)

Due to (4.2), \({\nabla _\mathbb {M}}u\) at point \(\mathbf {x} \in \mathbb {M}\) can be written as follows:

$$\begin{aligned} {\nabla _\mathbb {M}}u(\mathbf {x}) = \sum _{j \in I(\mathbf {x})} {\nabla _\mathbb {M}}{a_j}(\mathbf {x})\,{u_j}. \end{aligned}$$
(4.3)

According to (4.1) and (4.3), the components of \({\nabla _\mathbb {M}}u(\mathbf {x})\) can be written as follows:

$$\begin{aligned} \eta ^x u({\mathbf {x}}):= & {} \displaystyle \sum _{j \in I(\mathbf {x})} {\eta ^x{a_j} (\mathbf {x})\,{u_j}} = \displaystyle \sum \limits _{j \in I(\mathbf {x})} {\left[ {(1 - {n_x}{n_x})\,\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial x}} - {n_x}{n_y}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial y}} - {n_x}{n_z}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial z}}} \right] \,\,{u_j}} ,\nonumber \\ \eta ^yu({\mathbf {x}}):= & {} \displaystyle \sum _{j \in I(\mathbf {x})} {\eta ^y{a_j}(\mathbf {x})\,{u_j}} = \displaystyle \sum \limits _{j \in I(\mathbf {x})} {\left[ { - {n_x}{n_y}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial x}} + (1 - {n_y}{n_y})\,\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial y}} - {n_y}{n_z}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial z}}} \right] } \,\,{u_{j,}} \nonumber \\ \eta ^zu({\mathbf {x}}):= & {} \displaystyle \sum _{j \in I(\mathbf {x})} {\eta _X^z{a_j}(\mathbf {x})\,{u_j} = \displaystyle \sum _{j \in I(\mathbf {x})} {\left[ { - {n_x}{n_z}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial x}} - {n_y}{n_z}\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial y}} + (1 - {n_z}{n_z})\,\dfrac{{\partial {a_j}(\mathbf {x})}}{{\partial z}}} \right] } } \,\,{u_{j}},\nonumber \\ \end{aligned}$$
(4.4)

where \(\mathbf {x} \in \mathbb {M}\). Applying the collocation technique on Eq. (4.4) with \(X=\{\mathbf {x}_{1},\mathbf {x}_{2},\ldots , \mathbf {x}_{N}\}\) yields

$$\begin{aligned} \eta _X^{{x}}u({\mathbf {x}_i})= & {} \sum _{j \in I({\mathbf {x}_i})} {\eta _X^\mathbf {x}{a_j}(\mathbf {x}_{i})\,{u_j}} \nonumber \\= & {} \sum \limits _{j \in I({\mathbf {x}_i})} {\left[ {(1 - {n_x}_{i}{n_x}_{i})\,\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial x}} - {n_x}_{i}{n_y}_{i}\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial y}} - {n_x}_{i}{n_z}_{i}\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial z}}} \right] \,{u_j}},\nonumber \\ \end{aligned}$$
(4.5)

for \(i=1,2,\ldots ,N\). \(\eta _X^{{y}}u({\mathbf {x}_i})\) and \(\eta _X^{{z}}u({\mathbf {x}_i})\) will be obtained in a similar way. We now define

$$\begin{aligned} B_X^x:= & {} \left[ (1 - {n_{{x_i}}}{n_{{x_i}}})\,\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial x}} - {n_{{x_i}}}{n_{{y_i}}} \dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial y}} - {n_{{x_i}}}{n_{{z_i}}}\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial z}}\right] _{1\le i,j \le N},\nonumber \\ B_X^y:= & {} \left[ - {n_{{x_i}}}{n_{{y_i}}}\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial x}} + (1 - {n_{{y_i}}}{n_{{y_i}}})\,\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial y}} - {n_{{y_i}}}{n_{{z_i}}}\dfrac{{\partial {a_j}({x_i})}}{{\partial z}}\right] _{1 \le i,j \le N},\nonumber \\ B_X^z:= & {} \left[ - {n_{{x_i}}}{n_{{z_i}}}\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial x}} - {n_{{y_i}}}{n_{{z_i}}}\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial y}} + (1 - {n_{{z_i}}}{n_{{z_i}}})\,\dfrac{{\partial {a_j}({\mathbf {x}_i})}}{{\partial z}}\right] _{1 \le i,j \le N}. \end{aligned}$$
(4.6)

According to (4.6), the discrete version of the approximation of Laplace–Beltrami operator can be written as follows:

$$\begin{aligned} {\varDelta _\mathbb {M}}|_{X} = {\nabla _\mathbb {M}}.{\nabla _\mathbb {M}}|_{X} \approx L_{X}:= B_X^xB_X^x + B_X^yB_X^y + B_X^zB_X^z. \end{aligned}$$
(4.7)

5 Time discretization

Applying GMLS approximation on Eq. (1.1) gives the following semi-discretized equation:

$$\begin{aligned} \dfrac{{d{\mathbf {u}_X}}}{{dt}} = \delta L{\mathbf {u}_X} + F({\mathbf {u}_X},t)=:R({\mathbf {u}_X},L,t), \end{aligned}$$
(5.1)

where \(\mathbf {u}_{X}\) is the vector of approximation solution at points X due to the spatial discretization. Also, L is a matrix as follows:

$$\begin{aligned} L = \left[ {\begin{array}{ll} L_X&{} \quad zeros(N,N)\\ zeros(N,N)&{} \quad L_X \end{array}} \right] _{2N \times 2N}, \end{aligned}$$

and

$$\begin{aligned} F({\mathbf {u}_X},t)=[f_{u}(u_{X},v_{X},t),f_{v}(u_{X},v_{X},t)]^{\mathrm{T}}. \end{aligned}$$

We now discretize Eq. (5.1) due to the time variable using the fourth-order Runge–Kutta method Quarteroni et al. (2007). We suppose that \(t \in [0,T]\) where T is the final time. By dividing the time interval [0, T] into M sub-intervals, such that \(T=M\varDelta t\) where \(\varDelta t\) is the time step and by defining \(t_n:=n\varDelta t\), the Runge–Kutta method for Eq. (5.1) can be written as follows:

$$\begin{aligned} {k_1}= & {} \varDelta t R\left( {{\mathbf {U}}_X^n,{L},{t_n}} \right) ,\\ {k_2}= & {} \varDelta t R\left( {{\mathbf {U}}_X^n + \frac{{{k_1}}}{2},{L},{t_n} + \frac{{\varDelta t}}{2}} \right) ,\\ {k_3}= & {} \varDelta t R\left( {{\mathbf {U}}_X^n + \frac{{{k_2}}}{2},{L},{t_n} + \frac{{\varDelta t}}{2}} \right) ,\\ {k_4}= & {} \varDelta t R\left( {{\mathbf {U}}_X^n + {k_3},{L},{t_n} + \varDelta t} \right) ,\\ {\mathbf {U}}_X^{n + 1}= & {} {\mathbf {U}}_X^n + \frac{1}{6}\left( {{k_1} + 2({k_2} + {k_3}) + {k_4}} \right) ,\quad n = 0,1,\ldots ,M - 1, \end{aligned}$$

in which \({\mathbf {U}}_X^{n + 1}\) represents the vector of approximation solution due to the time and spatial discretizations at \(t_{n+1}\).

Fig. 3
figure 3

Turing stripe pattern with the initial condition on the unit sphere surface for u at \(t=2000, 3000\), and \(t=5000\) in Test problem 1

Fig. 4
figure 4

Turing stripe pattern on red-blood cell surface for u (left panel) and v (right panel) at \(t=1520\) in Test problem 1

Fig. 5
figure 5

Turing spot pattern on the unit sphere surface for u (left panel) and v (right panel) at \(t=400\) in Test problem 2

6 Numerical simulations

In this section, we have reported some numerical results on the unit sphere and red-blood cell surfaces using the proposed method for solving Turing and FHN models. The surface of the unit sphere is formulated as follows (Fuselier and Wright 2013):

$$\begin{aligned} \mathbb {M} = \{ (x,y,z) \in {\mathbb {R}^3}: {x^2} + {y^2} + {z^2} = 1\}. \end{aligned}$$
(6.1)

As mentioned in St Clair (2006), the sphere has a more smooth, constant curvature throughout the surface. This gives the patterns to distribute evenly in comparison to the other surfaces.

The surface of red-blood cell is a mathematical model for human red-blood cells in static equilibrium conditions, and in the spherical coordinate, it is defined as follows (Fuselier and Wright 2013):

$$\begin{aligned} \mathbb {M}= & {} \{ (x,y,z) \in {\mathbb {R}^3}: x = {r_0}\cos \lambda \,\cos \theta ,\, y = {r_0}\sin \lambda \cos \theta ,\, \nonumber \\ z= & {} \frac{1}{2}\sin \theta ({c_0} + {c_2}{\cos ^2}\theta + {c_4}{\cos ^4}\theta )\}, \end{aligned}$$
(6.2)

in which \( - \pi /2 \le \theta \le \pi /2\), \(- \pi \le \lambda \le \pi \), \({r_0} = 3.91/3.39\), \({c_0} = 0.81/3.39\), \({c_2} = 7.83/3.39\), \({c_4} = - 4.39/3.39\).

To show the convergence of the presented method due to the time discretization, the numerical order of convergence is calculated by the following formula:

$$\begin{aligned} \dfrac{{\log \left( \frac{{{e_1}}}{{{e_2}}} \right) }}{{\log \left( \frac{{\varDelta {t_1}}}{{\varDelta {t_2}}} \right) }}, \end{aligned}$$

in which \(e_{1}\) and \(e_{2}\) denote the numerical errors due to \(L_{\infty }-\)norm for time steps \(\varDelta t_{1}\) and \(\varDelta t_{2}\), respectively. Since the exact solution of this problem is not available, to show the order of convergence with respect to time discretization, we compute \({e} = {\left\| {u _{\varDelta t_1}^T - u _{\varDelta t_2}^T} \right\| _{L_{\infty }} },\) where \(u _{(.)}^T\) denotes the approximation solution at the final time T with respect to \(\varDelta t\). Here, the number of points is considered \(N=9989\), the radius of support domain is fixed \(\delta =c/\sqrt{N}\), where c is a constant parameter, and \(\varepsilon =4\) is chosen as shape parameter for the Gaussian weight function. All simulations presented here are carried out in MATLAB environment.

6.1 Turing patterns on the unit sphere and red-blood cell surfaces

6.1.1 Test problem 1 (stripe pattern formations)

In this example, the presented method is applied to simulate Turing patterns on the unit sphere and red-blood cell surfaces. The initial conditions of u and v are considered as random values between \(-0.5\) and 0.5 in a thin strip around the “equator” of each surface and \(u=v=0\) elsewhere (Fuselier and Wright 2013). To obtain stripe patterns on both surfaces, we set \(\delta _v=0.0021\), \(\delta _u=0.516\delta _v \), \(\tau _1=3.5\), \(\tau _2=0\), \(\alpha =0.899\), \(\beta =-0.91\), and \(\gamma =-\alpha \) (Fuselier and Wright 2013). Figure 3 shows the numerical solutions of u with the initial condition at different time levels \(t=2000, 3000\) and \(t=5000\) on the unit sphere using \(\delta =20/\sqrt{N}\) and \(\varDelta t=0.1\). This figure demonstrates stripe pattern as is observed in the literature works. Moreover, the numerical solutions of u and v on red-blood cell surface are displayed in Fig. 4 at \(t=1520\) using \(\varDelta t=0.05\).

Fig. 6
figure 6

Turing spot pattern on red-blood cell surface for u (left panel) and v (right panel) at \(t=400\) in Test problem 2

6.1.2 Test problem 2 (spot pattern formations)

This test demonstrates the spot patterns on the unit sphere and red-blood cell surfaces with the presented method. Similar to the previous test, the initial conditions of u and v are considered as random values between \(-0.5\) and 0.5 in a thin strip around the ”equator” of each surface and \(u=v=0\) elsewhere (Fuselier and Wright 2013). To simulate spot patterns on both surfaces, the parameters are chosen as follows: \(\delta _v=0.0045\), \(\delta _u=0.516\delta _v \), \(\tau _1=0.02\), \(\tau _2=0.2\), \(\alpha =0.899\), \(\beta =-0.91\), \(\gamma =-\alpha \) (Fuselier and Wright 2013), and \(t=400\) with \(\delta =30/\sqrt{N}\) and \(\varDelta t=0.05\). The numerical simulations of u and v at steady state are shown in Fig. 5 on the unit sphere. In addition, the numerical solution of u on red-blood cell is shown at time levels \(t=400\) in Fig. 6. In Table 1, the numerical \(L_{\infty }\) error with the order of convergence of the proposed time discretization is given by different time steps. In Table 2, we have compared the proposed approximation with RBFs’ interpolation (Fuselier and Wright 2013) due to CPU time which is needed to reach the steady-state solution. Here, we have used \(N=6561\) points generated on the unit sphere and red-blood cell surfaces (Fuselier and Wright 2013) and \(\varDelta t=0.05\).

Table 1 The \(L_{\infty }\) error with the order of convergence of time discretization
Table 2 CPU time required for spot patterns on the considered surfaces
Fig. 7
figure 7

Spiral wave pattern with the initial condition for u on the unit sphere surface, \(u=0\) (blue color) and \(u=1\) (red color) at \(t=42.24, 42.80,43,76\) and \(t=44.80\) in Test problem 3

Fig. 8
figure 8

Spiral wave pattern with the initial condition for u on red-blood cell surface, \(u=0\) (blue color) and \(u=1\) (red color) at \(t=42.24, 42.80,43,76\) and \(t=44.80\) in Test problem 3

6.2 Spiral waves on the unit sphere and red-blood cell surfaces

6.2.1 Test problem 3 (Spiral waves)

In this test, we have obtained the numerical solution of FHN model on the unit sphere and red-blood cell surfaces via the presented method. The initial conditions of u and v are considered as follows (Fuselier and Wright 2013):

$$\begin{aligned} u(x,y,z,0)= & {} \dfrac{1}{2}\left[ {1 + \tanh (2x + y)} \right] ,\\ v(x,y,z,0)= & {} \dfrac{1}{2}\left[ {1 - \tanh (3z)} \right] . \end{aligned}$$

To show spiral wave patterns on both surfaces, \(\delta _v=0\), \(\delta _u=2.5 (2\pi /50)^2\), \(\alpha =0.02\), \(a=0.75\), \(b=0.02\) are considered as the parameters of the model. The numerical solutions of u with the initial condition at different time levels \(t=42.24, 42.80,43,76\) and \(t=44.80\) are drawn in Fig. 7 using \(\delta =30/\sqrt{N}\) and \(\varDelta t=0.02\). Moreover, in Fig. 8, spiral wave pattern is simulated on red-blood cell surface using the proposed approach. As can be seen here and observations reported in Fuselier and Wright (2013), during the simulation time, these spiral waves remain intact, but they are meandering around the surfaces.

7 Conclusion

In this paper, we have successfully applied a numerical meshless method based on generalized moving least squares for solving reaction–diffusion systems on the sphere and red-blood cell surfaces which show animal coat patterns such as spot and stripe, and spiral wave patterns in excitable media. We have used the projected gradient to construct discrete approximations to the Laplace–Beltrami operator. An explicit time discretization based upon fourth-order Runge–Kutta method is used to approximate the time variable. Some numerical simulations are given for Turing and Fitzhugh–Nagumo (FHN) equations on the considered surfaces which are embedded in \(\mathbb {R}^3\).