Author Notes
The Allen–Cahn (AC) equation describes how phase separation occurs in binary alloy systems and the dynamics of interfaces between different phases. In the present study, we incorporated the function of high order polynomial potentials in the standard AC equation and present the stability condition for the numerical scheme that is used to solve the AC problem in three-dimensional space. We used a fully explicit Euler scheme for temporal derivatives and a second-order finite difference approach for spatial discretization. However, the explicit scheme is known for its speed and accuracy due to the use of small time steps, but it is subject to a temporal step size limitation. Here, we derived and validated a time step condition that satisfies the discrete maximum principle and assures the stability of the scheme. Several experiments are carried out under the constrained time step to ensure the accuracy of the explicit method, the stability of the scheme, and the discrete maximum principle.
I. INTRODUCTION
Generally, the AC equation is used for phase separation in materials, solidification processes, and phase transitions between liquid and vapor states. In order to minimize interfacial energy, the evolution of a scalar order parameter is modeled by the AC equation. Various applications of the AC equation include 3D volume reconstruction from slice data, image segmentation,20 shape transformation,5,11 topology optimization,25–27 triply periodic surface reconstruction,17,19 crystal growth,18 and various other problems involving interfacial evolution. The AC equations are typically difficult to solve analytically due to their complexity, so numerical methods are essential for approximating solutions. Lee13 proposed a gradient-decent-like scheme, constructing linearly implicit methods for the AC equation. Ayub et al.2 compared and analyzed operator splitting schemes for solving the AC equation. Zhang et al.29 presented third-order accurate maximum principle preserving schemes for the AC equation. Zhang et al.31 applied high-order strong stability-preserving implicit–explicit Runge–Kutta schemes to numerically solve the space-fractional AC equation, which ensures the preservation of the maximum principle and energy stability. Zhang et al.32 proposed a high-order maximum principle-preserving scheme by employing the Runge–Kutta method for temporal integration and the finite difference method (FDM) for spatial discretization; the study developed a numerical approach. Numerical experiments demonstrated key properties such as the preservation of the maximum principle and energy dissipation. Moreover, a conservative AC equation model and computational methods have been developed. Kwakkel et al.10 redefined the energy functional for the AC equation to prevent mass loss. Xu et al.28 developed modified high-order lattice Boltzmann models for the conservative AC equation. Xia et al.22 presented temporally second-order, unconditionally stable direct schemes for solving the AC and conservative AC equations on the curved surface, which is carried out using a surface mesh made up of piecewise triangular elements and a dual-surface polygonal tessellation.23,24
Higher-order polynomial potential energy allows for the adjustment of the sharpness and propagation speed of phase interfaces,8 enabling the modeling of more complex phase transition dynamics. Compared to traditional fourth-order polynomials, it forms more distinct interfaces and effectively suppresses noise, making it advantageous in applications such as image processing and pattern formation. Furthermore, it can accurately represent intricate interactions, including multi-equilibrium states, making it widely applicable in material science and biological modeling. To solve high-order AC equations, several numerical studies have been conducted. For example, Lee et al.12 employed an interpolation method to address the nonlinear double-well potential term and then applied a second-order operator splitting method to separate the diffusion equation, collectively solving these with Crank–Nicolson and multigrid methods. In addition, Lee et al.16 used effective time step conditions and reformulated the semi-implicit scheme to get a solution of slow dynamics due to high-order polynomial free energy in the AC equation. As we observed in the literature, various numerical methods are applied to solve the high-order AC equation.
Even for unconditionally stable methods, sufficiently small time step sizes are required from the perspective of accuracy. In this context, while the fully explicit scheme has a time step constraint, it remains one of the fastest and most accurate methods for solving the AC equation. In addition, it can effectively be applied in boundary problems in irregular domains and adaptive domains. In particular, high-order potential enables the investigation of complex 3D interfacial problems. Therefore, stability analysis of the explicit method for the high-order AC equation is a crucial topic of study. More recently, Choi et al.3 employed a fully explicit finite difference scheme to solve a two-dimensional (2D) high-order AC model, successfully ensuring the preservation of the maximum principle. However, examination of the stability condition of the 3D AC model using a fully explicit scheme with a high-order polynomial potential has not yet been explored. Consequently, this paper aims to investigate the stability conditions of the 3D high-order AC equation.
II. NUMERICAL METHOD
Next, for the fully explicit FDM approach for the 3D high-order AC equation, we shall prove a theorem to meet the maximum principle.
Our goal is to identify the criteria for Δt to ensure that LB ≥ −1 and UB ≤ 1, which concludes ‖ψn+1‖∞ ≤ 1.
LB ≥ −1
Next, it is necessary to determine the condition of Δt that ensures
UB ≤ 1
Hence, ensure that .□
In the field of numerical analysis, demonstrating the stability of numerical schemes is often a challenging task, especially when directly proving the boundedness of numerical solutions. In such cases, energy stability has been commonly used as an alternative to establish the stability of the numerical method.7, However, the proposed time step constraint in this study ensures the maximum bounded principle for the numerical solution in the explicit method, thereby directly proving the stability of the numerical solution without the need for additional energy stability analysis. Nevertheless, it is worth noting that if the proposed time step constraint is satisfied, energy stability may still be demonstrated by applying the approach outlined in the references for one-dimensional space4 and higher-dimensional spaces.21
III. COMPUTATIONAL EXPERIMENTS
We conduct numerical experiments to verify the maximum principle, analyze mean curvature flow, and examine how the parameter α impacts the equation’s dynamic behavior.
A. Convergence test
The space-dependent error and its rate of convergence.
. | . | h = 1/32 . | . | h = 1/64 . | . | h = 1/128 . | . | h = 1/256 . |
---|---|---|---|---|---|---|---|---|
α = 4 | Error rate | 9.9495 × 10−3 | 1.958 | 2.5614 × 10−3 | 1.994 | 0.6432 × 10−3 | 1.998 | 0.1610 × 10−3 |
α = 6 | Error rate | 9.9849 × 10−3 | 1.974 | 2.5408 × 10−3 | 1.994 | 0.6379 × 10−3 | 1.998 | 0.1596 × 10−3 |
α = 8 | Error rate | 9.9914 × 10−3 | 1.976 | 2.5404 × 10−3 | 1.994 | 0.6378 × 10−3 | 1.998 | 0.1596 × 10−3 |
α = 10 | Error rate | 9.9918 × 10−3 | 1.976 | 2.5404 × 10−3 | 1.994 | 0.6378 × 10−3 | 1.998 | 0.1596 × 10−3 |
α = 12 | Error rate | 9.9918 × 10−3 | 1.976 | 2.5404 × 10−3 | 1.994 | 0.6378 × 10−3 | 1.998 | 0.1596 × 10−3 |
. | . | h = 1/32 . | . | h = 1/64 . | . | h = 1/128 . | . | h = 1/256 . |
---|---|---|---|---|---|---|---|---|
α = 4 | Error rate | 9.9495 × 10−3 | 1.958 | 2.5614 × 10−3 | 1.994 | 0.6432 × 10−3 | 1.998 | 0.1610 × 10−3 |
α = 6 | Error rate | 9.9849 × 10−3 | 1.974 | 2.5408 × 10−3 | 1.994 | 0.6379 × 10−3 | 1.998 | 0.1596 × 10−3 |
α = 8 | Error rate | 9.9914 × 10−3 | 1.976 | 2.5404 × 10−3 | 1.994 | 0.6378 × 10−3 | 1.998 | 0.1596 × 10−3 |
α = 10 | Error rate | 9.9918 × 10−3 | 1.976 | 2.5404 × 10−3 | 1.994 | 0.6378 × 10−3 | 1.998 | 0.1596 × 10−3 |
α = 12 | Error rate | 9.9918 × 10−3 | 1.976 | 2.5404 × 10−3 | 1.994 | 0.6378 × 10−3 | 1.998 | 0.1596 × 10−3 |
Subsequently, we evaluated the temporal accuracy of the method for Δtmax = 10−4 using the same initial condition as specified in (17), with a perturbation value of 0.4 and the following parameters: Nx = Ny = Nz = 27, Δt = Δtmax/2n for n = 0, 1, 2, 3, 4, ɛ = h/10, and T = 100Δtmax, including α = 4, 6, 8, 10, 12. Here for reference value we used Δt = Δtmax. Table II presents time-dependent error and the corresponding convergence rate. In addition, the graphical representation of spatial and temporal error is present in Fig. 1.
Time-dependent error and its rate of convergence.
. | . | Δt = Δtmax/2 . | . | Δt = Δtmax/4 . | . | Δt = Δtmax/8 . | . | Δt = Δtmax/16 . |
---|---|---|---|---|---|---|---|---|
α = 4 | Error rate | 7.3140 × 10−4 | 1 | 3.6570 × 10−4 | 1 | 1.8285 × 10−4 | 1 | 0.9143 × 10−4 |
α = 6 | Error rate | 8.3219 × 10−4 | 1 | 4.1609 × 10−4 | 1 | 2.0804 × 10−4 | 1 | 1.0402 × 10−4 |
α = 8 | Error rate | 8.3673 × 10−4 | 1 | 4.1837 × 10−4 | 1 | 2.0918 × 10−4 | 1 | 1.0459 × 10−4 |
α = 10 | Error rate | 8.3679 × 10−4 | 1 | 4.1840 × 10−4 | 1 | 2.0920 × 10−4 | 1 | 1.0460 × 10−4 |
α = 12 | Error rate | 8.3679 × 10−4 | 1 | 4.1840 × 10−4 | 1 | 2.0920 × 10−4 | 1 | 1.0460 × 10−4 |
. | . | Δt = Δtmax/2 . | . | Δt = Δtmax/4 . | . | Δt = Δtmax/8 . | . | Δt = Δtmax/16 . |
---|---|---|---|---|---|---|---|---|
α = 4 | Error rate | 7.3140 × 10−4 | 1 | 3.6570 × 10−4 | 1 | 1.8285 × 10−4 | 1 | 0.9143 × 10−4 |
α = 6 | Error rate | 8.3219 × 10−4 | 1 | 4.1609 × 10−4 | 1 | 2.0804 × 10−4 | 1 | 1.0402 × 10−4 |
α = 8 | Error rate | 8.3673 × 10−4 | 1 | 4.1837 × 10−4 | 1 | 2.0918 × 10−4 | 1 | 1.0459 × 10−4 |
α = 10 | Error rate | 8.3679 × 10−4 | 1 | 4.1840 × 10−4 | 1 | 2.0920 × 10−4 | 1 | 1.0460 × 10−4 |
α = 12 | Error rate | 8.3679 × 10−4 | 1 | 4.1840 × 10−4 | 1 | 2.0920 × 10−4 | 1 | 1.0460 × 10−4 |
Therefore, it was concluded that the scheme demonstrates a second-order spatial error rate and a first-order temporal error rate.
B. Maximum principle
Temporal evolutions of the maximum and minimum values of ψn for the time steps Δt = Δtmax and Δt = 1.18Δtmax.
Temporal evolutions of the maximum and minimum values of ψn for the time steps Δt = Δtmax and Δt = 1.18Δtmax.
C. Energy dissipation
Snapshots of the zero-level isosurface of the computational solutions with temporal evolution of discrete energy functional.
Snapshots of the zero-level isosurface of the computational solutions with temporal evolution of discrete energy functional.
D. Mean curvature flow
Comparison between analytical and numerical radius with the temporal progression of the computational results illustrated as an isosurface when Δt = h2ɛ2/(2h2 + 6ɛ2).
Comparison between analytical and numerical radius with the temporal progression of the computational results illustrated as an isosurface when Δt = h2ɛ2/(2h2 + 6ɛ2).
IV. CONCLUSIONS
We analyzed the stability and accuracy of an explicit computational method for solving the high-order AC equation in three-dimensional space, essential for modeling complex phase dynamics in alloy systems. By incorporating high-order polynomial potentials, we addressed the requirements for capturing stable and metastable phases, anisotropy, and intricate interface behaviors. Using an explicit Euler scheme for time discretization and a second-order FDM for spatial discretization, we derived a critical time step condition that ensures the discrete maximum principle and stabilizes the scheme. Our experiments validated that, under this constrained time step, the explicit scheme maintains stability, accuracy, andadherence to the discrete maximum principle. This work provides a reliable approach to capturing complex phase dynamics in the AC models, contributing to improved numerical simulations in multi-phase material systems.
ACKNOWLEDGMENTS
The corresponding author (J. S Kim) was supported by Korea University Grant. Jyoti was supported by the Brain Pool program funded by the Ministry of Science and ICT through the National Research Foundation of Korea (Grant No. 2022H1D3A2A02081237). We appreciate the reviewers for their insightful comments and constructive suggestions, which have greatly improved the quality of our paper.
AUTHOR DECLARATIONS
Conflict of Interest
The authors have no conflicts to disclose.
Author Contributions
Seokjun Ham: Conceptualization (equal); Formal analysis (equal); Investigation (equal); Methodology (equal); Software (equal); Validation (equal); Writing – original draft (equal); Writing – review & editing (equal). Jyoti: Formal analysis (equal); Investigation (equal); Methodology (equal); Visualization (equal); Writing – original draft (equal); Writing – review & editing (equal). Jaeyong Choi: Formal analysis (equal); Investigation (equal); Validation (equal); Writing – original draft (equal); Writing – review & editing (equal). Yunjae Nam: Software (equal); Visualization (equal); Writing – original draft (equal); Writing – review & editing (equal). Junseok Kim: Conceptualization (equal); Formal analysis (equal); Funding acquisition (equal); Investigation (equal); Methodology (equal); Project administration (equal); Supervision (equal); Validation (equal); Writing – original draft (equal); Writing – review & editing (equal).
DATA AVAILABILITY
The data that support the findings of this study are available within the article.
APPENDIX: MATLAB SOURCE CODE
The MATLAB code is provided as follows:
% Motion by mean curvature in 3D space |
clear; clear all; close all; clc; |
Nx = 128; xl = -1; xr = 1; yl = -1; yr = 1; zl = -1; zr = 1; h = (xr-xl)/Nx; |
x = linspace(xl-0.5*h,xr+0.5*h,Nx+2); y = linspace(yl-0.5*h,yr+0.5*h,Nx+2); |
z = linspace(zl-0.5*h,zr+0.5*h,Nx+2);[xx, yy, zz] = ndgrid(x, y, z); |
psi =zeros(Nx+2,Nx+2,Nx+2); |
alpha = 3; m=3.8; ep=(m*h)/(2*sqrt(2)*atanh(0.9)); ep2=alpha*ep^2; |
dt= (h^2*ep^2)/(2*h^2+6*ep^2); |
for i=1:Nx+2 |
for j=1:Nx+2 |
for k=1:Nx+2 |
psi(i,j,k) = (tanh((0.7-sqrt((x(i)).^2+(y(j)).^2+(z(k))^2))/(sqrt(2)*ep))); |
end |
end |
end |
figure (1); clf; grid on; box on; hold on; |
set(gca,′FontSize′,18) |
fv=isosurface(x,y,z,permute(psi,[2 1 3]),0); c=fv.vertices; is=patch(fv); |
camlight headlight; is.FaceColor=′[0 1 1]′; is.FaceAlpha=1; |
is.EdgeColor=′none′; |
axis image; box on; view(3); axis([xl xr yl yr zl zr]) |
text(′String′,′$x$′,′Position′,[0.877 -0.778 -1.436], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$y$′,′Position′,[-1.057 0.842 -1.249], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$z$′,′Position′,[-0.688 1.711 0.326], ... |
′interpreter′,′latex′,′fontsize′,20) |
print(′3D_sphere_initial.eps′,′-depsc′) |
radi(1)= mean(sqrt(c(:,1).^2+c(:,2).^2+c(:,3).^2)); |
ii=2:Nx+1; jj=2:Nx+1; kk=2:Nx+1; T = 0.1; Nt=round(T/dt); |
for iter = 1:Nt |
psi(1,:,:)=psi(2,:,:); psi(end,:,:)=psi(end-1,:,:); |
psi(:,1,:)=psi(:,2,:); psi(:,end,:)=psi(:,end-1,:); |
psi(:,:,1)=psi(:,:,2); psi(:,:,end)=psi(:,:,end-1); |
psi(ii,jj,kk) = psi(ii,jj,kk) ... |
+dt*(psi(ii,jj,kk).^(2*alpha-1).*(1-psi(ii,jj,kk).^(2*alpha))/ep2 ... |
+(psi(ii+1,jj,kk)+psi(ii-1,jj,kk)+psi(ii,jj+1,kk)+psi(ii,jj-1,kk) ... |
+psi(ii,jj,kk+1)+psi(ii,jj,kk-1)-6*psi(ii,jj,kk))/h^2); |
fv=isosurface(x,y,z,psi,0); c=fv.vertices; |
radi(iter+1)= mean(sqrt(c(:,1).^2+c(:,2).^2+c(:,3).^2)); |
if abs(iter*dt-0.08)<0.7*dt |
figure (2); clf; hold on; box on; grid on; |
set(gca,′FontSize′,18) |
fv=isosurface(x,y,z,permute(psi,[2 1 3]),0); c=fv.vertices; |
is=patch(fv); camlight headlight; is.FaceColor=′[0 1 1]′; is.FaceAlpha=1; |
is.EdgeColor=′none′;axis image; box on; view(3); axis([xl xr yl yr zl zr]) |
text(′String′,′$x$′,′Position′,[0.877 -0.778 -1.436], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$y$′,′Position′,[-1.057 0.842 -1.249], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$z$′,′Position′,[-0.688 1.711 0.326], ... |
′interpreter′,′latex′,′fontsize′,20) |
print(′3D_sphere_initial.eps′,′-depsc′) |
pause(0.05) |
print(′3D_sphere_1.eps′,′-depsc′) |
end |
end |
figure (3); clf; hold on; box on; grid on; |
set(gca,′FontSize′,18);fv=isosurface(x,y,z,permute(psi,[2 1 3]),0);c=fv.vertices; |
is=patch(fv); camlight headlight; is.FaceColor=′[0 1 1]′; is.FaceAlpha=1; |
is.EdgeColor=′none′;axis image; box on; view(3); axis([xl xr yl yr zl zr]); |
text(′String′,′$x$′,′Position′,[0.877 -0.778 -1.436], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$y$′,′Position′,[-1.057 0.842 -1.249], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$z$′,′Position′,[-0.688 1.711 0.326], ... |
′interpreter′,′latex′,′fontsize′,20) |
print(′3D_sphere_initial.eps′,′-depsc′) |
pause(0.05);print(′3D_sphere_2.eps′,′-depsc′) |
figure (4); clf; hold on; box on; |
set(gca,′FontSize′,18); set(gcf,′Position′,[397.3680981595091 548.7300613496932 ... |
770.9447852760734 342.1840490797546]); tt = linspace(0,Nt*dt,Nt+1); |
plot(tt,sqrt(0.7^2-4*(tt)),′k-′,′LineWidth′,1.2) |
plot(tt,radi,′ko′,′MarkerIndices′,1:185:Nt,′MarkerSize′,8,′LineWidth′,1.2) |
axis([0 0.1 0.3 0.7]);text(′String′,′$t$′,′Position′,[0.0929 0.264], ... |
′interpreter′,′latex′,′fontsize′,20); |
text(′String′,′$R(t)$′,′Position′,[-0.009 0.653], ... |
′interpreter′,′latex′,′fontsize′,20); |
legend(′Analytic result′,′Numerical result′);print(′meancurv_3d.eps′,′-depsc′) |
% Motion by mean curvature in 3D space |
clear; clear all; close all; clc; |
Nx = 128; xl = -1; xr = 1; yl = -1; yr = 1; zl = -1; zr = 1; h = (xr-xl)/Nx; |
x = linspace(xl-0.5*h,xr+0.5*h,Nx+2); y = linspace(yl-0.5*h,yr+0.5*h,Nx+2); |
z = linspace(zl-0.5*h,zr+0.5*h,Nx+2);[xx, yy, zz] = ndgrid(x, y, z); |
psi =zeros(Nx+2,Nx+2,Nx+2); |
alpha = 3; m=3.8; ep=(m*h)/(2*sqrt(2)*atanh(0.9)); ep2=alpha*ep^2; |
dt= (h^2*ep^2)/(2*h^2+6*ep^2); |
for i=1:Nx+2 |
for j=1:Nx+2 |
for k=1:Nx+2 |
psi(i,j,k) = (tanh((0.7-sqrt((x(i)).^2+(y(j)).^2+(z(k))^2))/(sqrt(2)*ep))); |
end |
end |
end |
figure (1); clf; grid on; box on; hold on; |
set(gca,′FontSize′,18) |
fv=isosurface(x,y,z,permute(psi,[2 1 3]),0); c=fv.vertices; is=patch(fv); |
camlight headlight; is.FaceColor=′[0 1 1]′; is.FaceAlpha=1; |
is.EdgeColor=′none′; |
axis image; box on; view(3); axis([xl xr yl yr zl zr]) |
text(′String′,′$x$′,′Position′,[0.877 -0.778 -1.436], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$y$′,′Position′,[-1.057 0.842 -1.249], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$z$′,′Position′,[-0.688 1.711 0.326], ... |
′interpreter′,′latex′,′fontsize′,20) |
print(′3D_sphere_initial.eps′,′-depsc′) |
radi(1)= mean(sqrt(c(:,1).^2+c(:,2).^2+c(:,3).^2)); |
ii=2:Nx+1; jj=2:Nx+1; kk=2:Nx+1; T = 0.1; Nt=round(T/dt); |
for iter = 1:Nt |
psi(1,:,:)=psi(2,:,:); psi(end,:,:)=psi(end-1,:,:); |
psi(:,1,:)=psi(:,2,:); psi(:,end,:)=psi(:,end-1,:); |
psi(:,:,1)=psi(:,:,2); psi(:,:,end)=psi(:,:,end-1); |
psi(ii,jj,kk) = psi(ii,jj,kk) ... |
+dt*(psi(ii,jj,kk).^(2*alpha-1).*(1-psi(ii,jj,kk).^(2*alpha))/ep2 ... |
+(psi(ii+1,jj,kk)+psi(ii-1,jj,kk)+psi(ii,jj+1,kk)+psi(ii,jj-1,kk) ... |
+psi(ii,jj,kk+1)+psi(ii,jj,kk-1)-6*psi(ii,jj,kk))/h^2); |
fv=isosurface(x,y,z,psi,0); c=fv.vertices; |
radi(iter+1)= mean(sqrt(c(:,1).^2+c(:,2).^2+c(:,3).^2)); |
if abs(iter*dt-0.08)<0.7*dt |
figure (2); clf; hold on; box on; grid on; |
set(gca,′FontSize′,18) |
fv=isosurface(x,y,z,permute(psi,[2 1 3]),0); c=fv.vertices; |
is=patch(fv); camlight headlight; is.FaceColor=′[0 1 1]′; is.FaceAlpha=1; |
is.EdgeColor=′none′;axis image; box on; view(3); axis([xl xr yl yr zl zr]) |
text(′String′,′$x$′,′Position′,[0.877 -0.778 -1.436], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$y$′,′Position′,[-1.057 0.842 -1.249], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$z$′,′Position′,[-0.688 1.711 0.326], ... |
′interpreter′,′latex′,′fontsize′,20) |
print(′3D_sphere_initial.eps′,′-depsc′) |
pause(0.05) |
print(′3D_sphere_1.eps′,′-depsc′) |
end |
end |
figure (3); clf; hold on; box on; grid on; |
set(gca,′FontSize′,18);fv=isosurface(x,y,z,permute(psi,[2 1 3]),0);c=fv.vertices; |
is=patch(fv); camlight headlight; is.FaceColor=′[0 1 1]′; is.FaceAlpha=1; |
is.EdgeColor=′none′;axis image; box on; view(3); axis([xl xr yl yr zl zr]); |
text(′String′,′$x$′,′Position′,[0.877 -0.778 -1.436], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$y$′,′Position′,[-1.057 0.842 -1.249], ... |
′interpreter′,′latex′,′fontsize′,20) |
text(′String′,′$z$′,′Position′,[-0.688 1.711 0.326], ... |
′interpreter′,′latex′,′fontsize′,20) |
print(′3D_sphere_initial.eps′,′-depsc′) |
pause(0.05);print(′3D_sphere_2.eps′,′-depsc′) |
figure (4); clf; hold on; box on; |
set(gca,′FontSize′,18); set(gcf,′Position′,[397.3680981595091 548.7300613496932 ... |
770.9447852760734 342.1840490797546]); tt = linspace(0,Nt*dt,Nt+1); |
plot(tt,sqrt(0.7^2-4*(tt)),′k-′,′LineWidth′,1.2) |
plot(tt,radi,′ko′,′MarkerIndices′,1:185:Nt,′MarkerSize′,8,′LineWidth′,1.2) |
axis([0 0.1 0.3 0.7]);text(′String′,′$t$′,′Position′,[0.0929 0.264], ... |
′interpreter′,′latex′,′fontsize′,20); |
text(′String′,′$R(t)$′,′Position′,[-0.009 0.653], ... |
′interpreter′,′latex′,′fontsize′,20); |
legend(′Analytic result′,′Numerical result′);print(′meancurv_3d.eps′,′-depsc′) |