Abstract
Full Text
UDC 518.61
MATHEMATICS
B. M. BUDAK, N. L. GOL’DMAN, A. B. USPENSKII
DIFFERENCE SCHEMES WITH FRONT STRAIGHTENING FOR SOLVING MULTI-FRONT PROBLEMS OF STEFAN TYPE
(Presented by Academician A. A. Dorodnitsyn, 17 VII 1965)
We consider the application of difference schemes with front straightening in the one-dimensional case for a single parabolic equation. The transition to the multidimensional case and to a system of equations causes no essential difficulties.
§ 1. Problems with a constant number of phase fronts.
As the main domain of variation of the independent variables \((x,t)\), we take the domain
\[ D:\{\tilde y(t) \leq x \leq \widetilde y(t),\ t>0\}, \tag{1} \]
where \(x=\tilde y(t)\) and \(x=\widetilde y(t)\)—the left and right boundaries of the domain—may be either prescribed curves or unknown phase fronts. Let there be \(N\) phase fronts inside the domain \(D\), \(x=y_i(t)\), \(i=1,2,\ldots,N\), where
\[ \tilde y(t)=y_0(t)<y_1(t)<\cdots<y_N(t)<y_{N+1}(t)=\widetilde y(t),\quad t\geq 0. \tag{2} \]
Assume first that the boundary curves \(x=\tilde y(t)\) and \(x=\widetilde y(t)\) are prescribed. Then the Stefan-type problem can be formulated as follows. It is required to find the functions \(u_0(x,t), u_1(x,t),\ldots,u_N(x,t)\) and the functions \(x=y_1(t),\ldots,x=y_N(t)\), satisfying the conditions
\[ a(x,t,u_i)\frac{\partial u_i}{\partial t} = \frac{\partial}{\partial x} \left( k(x,t,u_i)\frac{\partial u_i}{\partial x} \right) \]
\[ \text{for } y_i(t)<x<y_{i+1}(t),\ t>0,\ i=0,1,\ldots,N; \tag{3} \]
\[ \mu_{\mathrm I} k(x,t,u_0)\,\partial u_0/\partial x\big|_{x=\tilde y(t)} = -\tilde q(t,u_0)\big|_{x=\tilde y(t)},\quad t>0; \tag{4} \]
\[ \mu_{\mathrm{II}} k(x,t,u_N)\partial u_N/\partial x\big|_{x=\widetilde y(t)} = -\widetilde q(t,u_N)\big|_{x=\widetilde y(t)},\quad t>0; \tag{5} \]
\[ u_{i-1}(y_i(t),t)=u_i(y_i(t),t)=\psi_i(y_i(t),t),\quad t\geq 0,\quad i=1,2,\ldots,N; \tag{6} \]
\[ \gamma_i(y_i(t),t,\psi_i(y_i(t),t))\,dy_i/dt = k(x,t,u_i)\partial u_i/\partial x\big|_{x=y_i(t)+0} - \]
\[ {}-k(x,t,u_{i-1})\partial u_{i-1}/\partial x\big|_{x=y_i(t)-0} + \Phi_i(y_i(t),t,\psi_i(y_i(t),t)), \]
\[ t>0,\quad i=1,2,\ldots,N; \tag{7} \]
\[ y_i(0)=l_i,\quad i=0,1,\ldots,N,N+1; \tag{8} \]
\[ u_i(x,0)=\varphi(x),\quad l_i\leq x\leq l_{i+1},\ i=0,1,\ldots,N. \tag{9} \]
The parameters \(\mu_{\mathrm I}\) and \(\mu_{\mathrm{II}}\) may take the values 0 or 1, and the functions \(\tilde q(t,u_0)\) and \(\widetilde q(t,u_N)\) may vanish or be nonzero; accordingly, conditions (4) and (5) may be boundary conditions of the 1st, 2nd, or 3rd kind, or nonlinear conditions of radiation type.
If the left boundary of the domain \(D\), \(x=\tilde y(t)=y_0(t)\), is a phase front, then the boundary condition (4) is replaced by the conditions
\[ k(x,t,u_0)\,\partial u_0/\partial x\big|_{x=\tilde y(t)} = -q(t,u_0)\big|_{x=\tilde y(t)} +\gamma_0(y_0(t),t,\psi_0(y_0(t),t))\,dy_0/dt+ \]
\[ +\Phi_0(y_0(t),t,\psi_0(y_0(t),t)),\qquad t>0; \tag{4'} \]
\[ u_0\big|_{x=\tilde y(t)=y_0(t)}=\psi_0(y_0(t),t),\qquad t>0. \tag{4''} \]
We proceed similarly in the case when the right boundary of the domain \(D\), \(x=\tilde{\tilde y}(t)=y_{N+1}(t)\), is a phase front.
Let us make a change of independent variables \(x\) and \(t\), leading to straightening of the fronts and of the external boundaries of the domain. Namely, in each domain
\[ D_i:\ \{y_i(t)\le x\le y_{i+1}(t),\ t>0\},\qquad i=0,1,\ldots,N, \tag{10} \]
we pass, respectively, to new independent variables
\[ \zeta_i=(x-y_i(t))/(y_{i+1}(t)-y_i(t)),\qquad t=t,\quad i=0,1,\ldots,N^*. \tag{11} \]
Here the domain \(D_i\) is transformed into the domain
\[ D_i^*:\ \{0\le \zeta_i\le 1,\ t\ge 0\},\qquad i=0,1,\ldots,N, \tag{10*} \]
bounded by the straight lines \(\zeta_i=0\) and \(\zeta_i=1\) for \(t\ge0\) and by the segment of the abscissa axis \(0\le\zeta_i\le1,\ t=0\); the front \(x=y_i(t)\), which is the common boundary of the domains \(D_{i-1}\) and \(D_i\), is expressed in the domain \(D_{i-1}^*\) by the equation \(\zeta_{i-1}^*=1\), and in the domain \(D_i^*\) by the equation \(\zeta_i^*=0\). The expression of any function \(f(x,t)\) in the coordinates \((\zeta_i,t)\) will be denoted by \(\bar f(\zeta_i,t)\):
\[ f(x,t)=f(y_i(t)+\zeta_i[y_{i+1}(t)-y_i(t)])=\bar f(\zeta_i,t). \tag{12} \]
It is not difficult to write problem (3)—(9) in the coordinates \((\zeta,t)\) (cf. \((1)\)). We shall, however, immediately write difference schemes for solving problem (3)—(9) in these coordinates. For this purpose, in each of the domains \(D_i^*\) we introduce a difference grid by dividing the segment \(0\le\zeta_i\le1\) into \(M_i\) equal parts of length \(h_i=1/M_i\), and denoting the division points by
\[ \zeta_{ip}=(p-p_i)h_i,\qquad h_i=1/M_i,\qquad p_i\le p\le p_i=p_i+M_i, \]
\[ p_0=0,\quad i=0,1,\ldots,N, \tag{13} \]
and by dividing the half-axis \(t\ge0\) by the division points
\[ t_j=j\tau,\qquad j=0,1,\ldots,\quad \tau=\mathrm{const}. \tag{14} \]
As a result, in each \(D_i^*\) a grid \(\Sigma_{ih\tau}\) of nodes \((\zeta_{ip},t_j)\) is determined.
We shall solve problem (3)—(9) on the grid
\[ \Sigma=\bigcup_{i=0}^{N}\Sigma_{ih\tau} \]
in the coordinates \((\zeta,t)\) by means of an implicit difference scheme. If the coefficients of the difference equations are computed on the same time level as the unknown quantities, nonlinear difference equations are obtained, which can be solved by combining the sweep method with iterations; such a scheme we shall call iterative. If, however, the coefficients of the difference equations are computed on the preceding time level, then the implicit difference equations become linear; for their solution the sweep method is sufficient; such a scheme we shall call non-iterative.
The iterative scheme for determining the quantities on the \(j\)-th time level has the form
\[ \bar a_{ipj}^{(s)}\tau^{-1}\left[\bar u_{ipj}^{(s+1)}-\bar u_{ip\,j-1}\right] = \left[y_{i+1\,j}^{(s+1)}-y_{ij}^{(s+1)}\right]^{-2} \delta_\zeta\left(\bar k_{ipj}^{(s)}\delta_\zeta\bar u_{ipj}^{(s+1)}\right)+ \]
\[ +\left\{y_{ij}^{\prime(s+1)}+(p-p_{i-1})\left[y_{i+1\,j}^{\prime(s+1)}-y_{ij}^{\prime(s+1)}\right]\right\}\times \]
\[ \times \left[y_{i+1\,j}^{(s+1)}-y_{ij}^{(s+1)}\right]^{-1}(2h_i)^{-1} \left[\bar u_{i\,p+1\,j}^{(s)}-\bar u_{i\,p-1\,j}^{(s)}\right], \tag{3i} \]
\[ p=p_i,p_i+1,\ldots,p_{i+1},\quad i=0,1,\ldots,N,\quad j>0; \]
\[ \text{* A similar change in combination with the method of integral relations was used by A. A. Dorodnitsyn.} \]
\[ \mu_{\mathrm{I}}\bar{k}_{00j}^{(s)}[y_{1j}^{(s+1)}-y_{0j}]^{-1}\delta_\zeta \bar{u}_{00j}^{(s+1)} = -\tilde{q}(t_j,\bar{u}_{00j}^{(s)}),\quad j>0; \tag{4_i} \]
\[ \mu_{\mathrm{II}}\bar{k}_{N p_N j}^{(s)}[y_{N+1\,j}-y_{Nj}^{(s+1)}]^{-1}\delta_\zeta \bar{u}_{N p_N j}^{(s+1)} = -\tilde{q}(t_j,\bar{u}_{N p_N j}^{(s)}),\quad j>0; \tag{5_i} \]
\[ \bar{u}_{i p_i j}^{(s+1)}=\bar{u}_{i+1\,p_i j}^{(s+1)} =\psi_i(y_{ij}^{(s+1)},t_j),\quad i=1,2,\ldots,N,\ j>0; \tag{6_i} \]
\[
\gamma_i(y_{ij}^{(s)},t_j,\psi_i(y_{ij}^{(s)},t_j))\,y_{ij}^{\prime(s+1)}
=
[y_{i+1\,j}^{(s)}-y_{ij}^{(s)}]^{-1}\bar{k}_{i+1\,p_i j}^{(s)}\delta_\zeta \bar{u}_{i+1\,p_i j}^{(s)}
\]
\[
{}-
[y_{ij}^{(s)}-y_{i-1\,j}^{(s)}]^{-1}\bar{k}_{i p_i j}^{(s)}\delta_{\bar{\zeta}}\bar{u}_{i p_i j}^{(s)}
+\Phi_{ij}^{(s)};
\tag{7_i}
\]
\[ i=1,2,\ldots,N; \]
\[
y_{i0}=l_i,\quad i=0,1,\ldots,N+1;\qquad
y_{ij}^{(s+1)}=y_{i\,j-1}+\tau y_{ij}^{\prime(s+1)},
\]
\[
i=1,\ldots,N,\ j>0;
\tag{8_i}
\]
\[ \bar{u}_{i0}=\bar{\varphi}(\xi_{ip}),\quad p_i\le p\le p_{i+1},\ i=0,1,\ldots,N,\ p_{-1}=0, \tag{9_i} \]
where
\[ a_{ipj}^{(s)}=\bar{a}(\xi_{ip},t_j,\bar{u}_{ipj}^{(s)}),\qquad \Phi_{ij}^{(s)}=\Phi_i(y_{ij}^{(s)},t_j,\psi_i(y_{ij}^{(s)},t_j)), \quad i=1,\ldots,N,\ j>0; \]
\[ \bar{k}_{ipj}^{(s)} =\frac12\left[\bar{k}(\xi_{i\,p-1},t_j,\bar{u}_{i\,p-1\,j}^{(s)}) +\bar{k}(\xi_{ip},t_j,\bar{u}_{ipj}^{(s)})\right], \]
\[ \delta_\zeta f_{ipj}^{(s)}=\frac1{h_i}\,[\bar{f}_{i\,p+1\,j}^{(s)}-\bar{f}_{ipj}^{(s)}], \qquad \delta_{\bar{\zeta}}=\frac1{h_i}\,[\bar{f}_{ipj}^{(s)}-\bar{f}_{i\,p-1\,j}^{(s)}]. \]
All quantities on the \((j-1)\)-st time layer are regarded as known. In the iteration, first the quantities \(y_{ij}^{\prime(s+1)}\) are found from formulas \((7_i)\), then the quantities \(y_{ij}^{(s+1)}\) from formulas \((8_i)\), after which the coefficients and free terms of equations \((3_i)\), \((4_i)\), \((5_i)\) are computed and, by sweeping, the values \(\bar{u}_{ipj}^{(s+1)}\) are found on each segment \(p_i\le p\le p_{i+1}\), \(i=0,1,\ldots,N\), \(p_0=0\).
If the left boundary of the domain \(D\) (or the right one, or both of these boundaries) is a phase front, then the difference approximations of the corresponding conditions \((4')\) and \((4'')\) on the left boundary (or of analogous conditions on the right boundary) are written analogously to \((7_i)\).
The iteration for finding the quantities on the \(j\)-th time layer is continued until two successive approximations coincide with a prescribed degree of accuracy \(\varepsilon\).
A noniterative scheme is obtained from \((3_i)\)—\((9_i)\) if the quantities at the preceding iteration are replaced by the quantities on the preceding time layer, omitting the indices \(s\) and \(s+1\).
§ 2. Problems with a varying number of phase fronts. Let us first consider the case when a new front arises. Suppose, for example, for definiteness, that the fronts \(x=y_2(t),\ldots,x=y_N(t)\) already exist and that the boundaries of the domain \(x=y_0(t)\) and \(x=y_{N+1}(t)\) are not phase fronts. Suppose further that at the moment \(t=0\) a new front \(x=y_1(t)\), \(t>0\), splits off from the left boundary of the layer and then moves into the interior of the domain \(D\). Put \(\zeta_0=(x-y_0(t))/(y_2(t)-y_0(t))\) and divide the interval \(0\le \zeta_0\le 1\) into \(\bar{M}_1\) equal parts of length \(\bar{h}_1=1/\bar{M}_1\). After the new front \(x=y_1(t)\) has advanced into \(D\) by some number \(M_0\), \(1<M_0<\bar{M}_1\), of steps, one may, introducing the substitution
\[ \zeta_0=(x-y_0(t))/(y_1(t)-y_0(t)),\quad 0\le \zeta_0\le 1; \]
\[ \zeta_1=(x-y_1(t))/(y_2(t)-y_i(t)),\quad 0\le \zeta_1\le 1, \tag{15} \]
and dividing the intervals \(0\le \zeta_0\le 1\) and \(0\le \zeta_1\le 1\) into \(M_0\) and \(M_1=\bar{M}_1-M_0\) parts respectively, carry out the computations according to the scheme described in § 1. The computation of the initial stage, when the new front has not yet passed \(M_0\) steps into \(D\), can be carried out by catching this front at a mesh node, finding the steps \(\tau_j\) along the \(t\)-axis
iteration. Namely, in the part of the layer enclosed between the left boundary \(x=y_0(t)\) and the front \(x=y_2(t)\), we carry out the computation by the formulas:
\[ \mu_1 \bar{k}_{00j}^{(s)}[y_{2j}^{(s)}-y_{0j}]^{-1}\delta_\zeta \bar{u}_{00j}^{(s+1)} = -\tilde{q}(t_j,\bar{u}_{00j}^{(s)}); \tag{16} \]
\[ \check{a}_{0pj}^{(s)}[\tau_j^{(s)}]^{-1} [\bar{u}_{0pj}^{(s+1)}-\bar{u}_{0p\,j-1}] = [y_{2j}^{(s)}-y_{0j}]^{-2} \delta_\zeta\bigl(\check{k}_{0pj}^{(s)}\delta_\zeta\bar{u}_{0pj}^{(s+1)}\bigr) + \]
\[ {}+[y_{2j}^{(s)}-y_{0j}]^{-1} \bigl[y'_{0j}+\bar{\zeta}_{0p}(y_{2j}^{\prime(s+1)}-y'_{0j})\bigr] (2\bar{h}_1)^{-1} [\bar{u}_{0\,p+1\,j}^{(s+1)}-\bar{u}_{0\,p-1\,j}^{(s+1)}], \]
\[ p=p_0,\ldots,j-1,\quad p_0=0; \tag{17} \]
\[ \check{\check{a}}_{0pj}^{(s)}[\tau_j^{(s)}]^{-1} [\bar{u}_{0pj}^{(s+1)}-\bar{u}_{0p\,j-1}] = [y_{2j}^{(s)}-y_{0j}]^{-2} \delta_\zeta\bigl(\check{\check{k}}_{0pj}^{(s)}\delta_\zeta\bar{u}_{0pj}^{(s+1)}\bigr) + \]
\[ {}+[y_{2j}^{(s)}-y_{0j}]^{-1} \bigl[y'_{0j}+\bar{\zeta}_{0p}(y_{2j}^{\prime(s+1)}-y'_{0j})\bigr] [\bar{u}_{0\,p+1\,j}^{(s+1)}-\bar{u}_{0\,p-1\,j}^{(s+1)}](2h_1)^{-1}, \]
\[ p=j+1,\ldots,M_1-1; \tag{18} \]
\[ \tau_j^{(s+1)}=p_j\gamma_{11j}^{(s)}h_1(y_{2j}^{(s)}-y_{0j}) +(1+p_jA_j^{(s)})\tau_j^{(s)}, \tag{19} \]
where
\[ A_j^{(s)}= [\check{k}_{0jj}^{(s)}\delta_\zeta\bar{u}_{0jj}^{(s)} -\check{k}_{0jj}^{(s)}\delta_\zeta\bar{u}_{0jj}^{(s)}](y_{2j}^{(s)}-y_{0j})^{-1} -\Phi_{1j}^{(s)}, \]
and the parameter \(p_j\) is chosen so that
\[ |1+p_jA_j^{(s)}|<1. \]
\[ \tilde{q}_j^{(s)}=\tilde{q}(t_j,\bar{u}_{00j}^{(s)}),\qquad \tilde{\tilde{q}}{}_j^{(s)}=\tilde{\tilde{q}}(t_j,\bar{u}_{Np_Nj}^{(s)}),\qquad y_{1j}^{(s)}=y_{0j}+j(y_{2j}^{(s)}-y_{0j})\bar{h}_1, \]
\[ \gamma_{1j}^{(s)}=\gamma_1(y_{1j}^{(s)},t_j,\psi_1(y_{1j}^{(s)},t_j)); \]
\(\check{a}_{0pj}^{(s)},\check{k}_{0pj}^{(s)}\) are the values to the left of \(x=y_1(t)\); \(\check{\check{a}}_{0pj}^{(s)},\check{\check{k}}_{0pj}^{(s)}\) are the values to the right of this front. The iteration for each fixed \(j\) is carried out until two successive approximations coincide with the prescribed accuracy \(\varepsilon\).
Let us now consider the case when one of the fronts disappears: for example, the front \(x=y_N(t)\), moving monotonically from left to right, “falls into” the right boundary \(x=y_{N+1}(t)\) of the domain \(D\) at some time \(t=t^*\). In this case the interval \(0\le \zeta_N\le 1\) will be divided into \(2^m\) equal parts, where \(m\) is some natural number. When the distance between the front \(x=y_N(t)\) and the boundary \(x=y_{N+1}(t)\) is reduced by half, the mesh of nodes on the interval \(0\le \zeta_N\le 1\) must be thinned by a factor of two, and so on. When three nodes remain on the interval \(0\le \zeta_N\le 1\), we continue the front \(x=y_N(t)\) until it meets the boundary \(x=y_{N+1}(t)\), extrapolating in time.
§ 3. Convergence and error estimate. Let \(\bar{u}(\zeta_{ip},t_j)\) and \(y_i(t_j)\) be the values of the exact solution of the original differential problem (3), (9) at the mesh nodes, and let \(\bar{u}_{ipj}\) and \(y_{ij}\) be the values at the same nodes of the exact solution of the corresponding non-iterative difference problem. Then the following holds.
Theorem. If \(\partial \bar{a}_i/\partial \bar{u}\), \(\partial \bar{k}_i/\partial \zeta_i\), \(\partial \gamma_i/\partial \zeta_i\), \(\partial\Phi_i/\partial t\), \(\partial \bar{u}_i/\partial t\), \(\partial^2\bar{u}_i/\partial \zeta_i\partial t\), \(\partial^2\bar{u}_i/\partial \zeta_i^2\), \(\partial^3\bar{u}_i/\partial \zeta_i^3\), \(dy_i/dt\), \(d^2y_i/dt^2\) exist and are bounded, then as \(h\to0\) and \(\tau\to0\) the estimates
\[ |\bar{u}_{ipj}-\bar{u}(\zeta_{ip},t_j)|=O(h)+O(\tau),\qquad |y_{ij}-y_i(t_j)|=O(h)+O(\tau). \tag{20} \]
hold.
It follows from the estimates (20) that the non-iterative scheme converges as \(h\to0\) and \(\tau\to0\); practical computations show that the iterative scheme, for the same mesh steps \(h\) and \(\tau\), gives more accurate results.
Moscow State University
named after M. V. Lomonosov
Received
12 VII 1965
CITED LITERATURE
- B. M. Budak, F. P. Vasil’ev, A. B. Uspenskii, Collection of the Computing Center of Moscow State University, issue IV. Numerical Methods in Gas Dynamics, 1965, p. 139.