Skip to content

Commit f0383b1

Browse files
authored
Merge pull request #15002 from rmcdermo/master
Manuals: remove MINMOD and MP5 limiter references
2 parents b3e95cb + 9b7ca57 commit f0383b1

File tree

5 files changed

+23
-136
lines changed

5 files changed

+23
-136
lines changed

Manuals/FDS_Technical_Reference_Guide/Mass_Chapter.tex

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,12 @@ \subsection{Flux Limiters}
9898
\hline
9999
Central Difference & 1 \\
100100
Godunov & 0 \\
101-
MINMOD & $\max(0,\min(1,r))$ \\
102101
Superbee \cite{Roe:1986} (LES default) & $\max(0,\min(2r,1),\min(r,2))$ \\
103102
CHARM \cite{Zhou:1995} (DNS default) & $s(3s+1)/(s+1)^2$; $s=1/r$ \\
104-
MP5 \cite{Suresh:1997} & see below
105103
\end{tabular}
106104
\end{center}
107105
\end{table}
108-
\noindent For the Central Difference, Godunov, MINMOD, and Superbee limiters, the scalar face value is found from
106+
\noindent For the Central Difference, Godunov, and Superbee limiters, the scalar face value is found from
109107
\begin{equation}
110108
\label{eqn_flux_limiter}
111109
\overline{\phi}^{\rm FL}_{i+1/2} = \left\{ \begin{array}{lcll} \phi_i &+& B(r) \,\frac{1}{2} \,\delta \phi_{\rm loc} & \mbox{if} \quad u_i>0 \vspace{0.2 cm}\\
@@ -117,35 +115,30 @@ \subsection{Flux Limiters}
117115
\overline{\phi}^{\rm FL}_{i+1/2} = \left\{ \begin{array}{lcll} \phi_i &+& B(r) \,\frac{1}{2} \,\delta \phi_{\rm up} & \mbox{if} \quad u_i>0 \vspace{0.2 cm}\\
118116
\phi_{i+1} &-& B(r) \,\frac{1}{2} \,\delta \phi_{\rm up} & \mbox{if} \quad u_i<0 \end{array} \right.
119117
\end{equation}
120-
The MP5 scheme of Suresh and Huynh \cite{Suresh:1997} is based on the keen observation that three points cannot distinguish between extrema and discontinuities. The functional form of the limiter is not as simple as the three-point schemes described above, so we refer the reader to the original paper or the FDS source code for details. But the basic idea behind the method is to use a five-point stencil, three upwind and two downwind, to reconstruct the cell face value, considering both accuracy and monotonicity-preserving constraints. An additional benefit of the MP5 scheme is that it was designed specifically with strong stability-preserving (SSP) Runge-Kutta time discretizations in mind. The predictor-corrector scheme used by FDS is similar to the second-order SSP scheme described in \cite{Gottlieb:2001}.
121118

122119

123120
\subsubsection{Notes on Implementation}
124121

125122
In practice, we set $r=0$ initially and only compute $r$ if the denominator is not zero. Note that for $\delta \phi_{loc}=0$, it does not matter which limiter is used: all the limiters yield the same scalar face value. For CHARM, we set both $r=0$ and $B=0$ initially and only compute $B$ if $r>0$ (this requires data variations to have the same sign). Otherwise, CHARM reduces to Godunov's scheme.
126123

127-
The Central Difference, Godunov, and MINMOD limiters are included for completeness, debugging, and educational purposes. These schemes have little utility for typical FDS applications.
124+
The Central Difference and Godunov limiters are included for completeness, debugging, and educational purposes. These schemes have little utility for typical FDS applications.
128125

129-
\subsubsection{Dealing with Variable Molecular Weights}
126+
% \subsubsection{Dealing with Variable Molecular Weights}
130127

131-
Maintaining isothermal flow requires
132-
\begin{equation}
133-
T = \frac{\overline{W} \bar{p}}{\rho R} = \frac{\bar{p}}{R \rho \sum_\alpha \frac{Z_\alpha}{W_\alpha}} = \frac{\bar{p}}{R \sum_\alpha \frac{\rho Z_\alpha}{W_\alpha}}
134-
\end{equation}
135-
to be constant and uniform at all cells and faces. Therefore, with $\bar{p}$ and $R$ constant and uniform, we must maintain
136-
\begin{equation}
137-
\label{eq:rho_mw}
138-
\sum_\alpha \frac{(\rho Z_\alpha)}{W_\alpha} = \frac{\rho}{\overline{W}}
139-
\end{equation}
128+
%% leave this here for a moment as a reminder to write up the constant limiter coefficient method we are now using.
140129

141-
The above condition is automatically satisfied in the cases of using Godunov or Central differencing or in the case of binary flow (two species). However, if we apply a second-order flux limiter, such as Superbee or CHARM, independently to each species in a multi-component (three or more species) flow with variable molecular weights, then this condition is easily violated.
130+
% Maintaining isothermal flow requires
131+
% \begin{equation}
132+
% T = \frac{\overline{W} \bar{p}}{\rho R} = \frac{\bar{p}}{R \rho \sum_\alpha \frac{Z_\alpha}{W_\alpha}} = \frac{\bar{p}}{R \sum_\alpha \frac{\rho Z_\alpha}{W_\alpha}}
133+
% \end{equation}
134+
% to be constant and uniform at all cells and faces. Therefore, with $\bar{p}$ and $R$ constant and uniform, we must maintain
135+
% \begin{equation}
136+
% \label{eq:rho_mw}
137+
% \sum_\alpha \frac{(\rho Z_\alpha)}{W_\alpha} = \frac{\rho}{\overline{W}}
138+
% \end{equation}
139+
140+
% The above condition is automatically satisfied in the cases of using Godunov or Central differencing or in the case of binary flow (two species). However, if we apply a second-order flux limiter, such as Superbee or CHARM, independently to each species in a multi-component (three or more species) flow with variable molecular weights, then this condition is easily violated.
142141

143-
To handle this situation, in LES mode, FDS will apply a correction to the most abundant species locally. We first compute the flux-limited face values of the mass density over the mixture-average molecular weight. Then we compute flux-limited face values of the species densities. Finally, the error in Eq.~(\ref{eq:rho_mw}) is absorbed into the most abundant species locally,
144-
\begin{equation}
145-
\label{eq:rhoZ_cor}
146-
\overline{\rho Z_\alpha}^{\rm COR} = W_\alpha \left( \overline{\left\{\frac{\rho}{\overline{W}}\right\}}^{\rm FL} - \sum_{\beta \ne \alpha} \frac{\overline{\{\rho Z_\beta\}}^{\rm FL}}{W_\beta} \right)
147-
\end{equation}
148-
where $\alpha$ is the most abundant species on the face.
149142

150143
\subsection{Time Splitting for Mass Source Terms}
151144
\label{sec_time_splitting}

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9123,7 +9123,7 @@ \subsection{Heat Transfer Constraint}
91239123
\section{Flux Limiters}
91249124
\label{info:flux_limiters}
91259125

9126-
FDS employs \emph{total variation diminishing} (TVD) schemes for scalar transport. The default for VLES (FDS default \ct{SIMULATION_MODE}) is Superbee \cite{Roe:1986}, so chosen because this scheme does the best job preserving the scalar variance in highly turbulent flows with coarse grid resolution. The default scheme for DNS and LES is CHARM \cite{Zhou:1995} because the gradient steepening used in Superbee forces a stair step pattern at high resolution, while CHARM is convergent. A few other schemes (including Godunov and central differencing) are included for completeness; more details can be found in the Tech Guide \cite{FDS_Tech_Guide}. Table \ref{tab:flux_limiters} below shows the character strings which may be used to invoke the various limiter schemes.
9126+
FDS employs \emph{total variation diminishing} (TVD) schemes for scalar transport. The default for VLES (FDS default \ct{SIMULATION_MODE}) is Superbee \cite{Roe:1986}, so chosen because this scheme does the best job preserving the scalar variance in highly turbulent flows with coarse grid resolution. The default scheme for DNS and LES is CHARM \cite{Zhou:1995} because the gradient steepening used in Superbee forces a stair step pattern at high resolution, while CHARM is convergent. Godunov and central differencing are included for completeness; more details can be found in the Tech Guide \cite{FDS_Tech_Guide}. Table \ref{tab:flux_limiters} below shows the character strings which may be used to invoke the various limiter schemes.
91279127

91289128
\begin{lstlisting}
91299129
&MISC FLUX_LIMITER='GODUNOV' / ! invoke Godunov (first-order upwind scheme)
@@ -9140,9 +9140,7 @@ \section{Flux Limiters}
91409140
Central differencing & \ct{'CENTRAL'} \\
91419141
Godunov & \ct{'GODUNOV'} \\
91429142
Superbee (VLES, SVLES default) & \ct{'SUPERBEE'} \\
9143-
MINMOD & \ct{'MINMOD'} \\
91449143
CHARM (DNS, LES default) & \ct{'CHARM'} \\
9145-
MP5 & \ct{'MP5'} \\ \hline
91469144
\end{tabular}
91479145
\end{table}
91489146

Manuals/FDS_Verification_Guide/FDS_Verification_Guide.tex

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -893,16 +893,15 @@ \subsection{Solid Body Rotation Velocity Field (\texorpdfstring{\ct{soborot}}{so
893893
\label{fig_soborot_square_wave}
894894
\end{figure}
895895

896-
For the cosine wave initial condition the derivatives of the scalar field are continuous. Therefore, we see ${\cal O}(\delta x^2)$ convergence of the CHARM and MP5 schemes, as shown in Fig.~\ref{fig_soborot_cos_wave}. Superbee shows smaller error at coarse resolution, but the gradient steepening degenerates its accuracy at higher resolutions---hence CHARM is selected for LES and DNS.
896+
For the cosine wave initial condition the derivatives of the scalar field are continuous. Therefore, we see ${\cal O}(\delta x^2)$ convergence of the CHARM scheme, as shown in Fig.~\ref{fig_soborot_cos_wave}. Superbee shows smaller error at coarse resolution, but the gradient steepening degenerates its accuracy at higher resolutions---hence CHARM is selected for LES and DNS.
897897

898898
\begin{figure}[ht]
899899
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
900900
\includegraphics[height=2.2in]{SCRIPT_FIGURES/soborot_superbee_cos_wave} &
901901
\includegraphics[height=2.2in]{SCRIPT_FIGURES/soborot_charm_cos_wave} \\
902-
\includegraphics[height=2.2in]{SCRIPT_FIGURES/soborot_mp5_cos_wave} &
903-
\includegraphics[height=2.2in]{SCRIPT_FIGURES/soborot_cos_wave_error}
902+
\includegraphics[height=2.2in]{SCRIPT_FIGURES/soborot_cos_wave_error} &
904903
\end{tabular*}
905-
\caption[Solid body rotation cosine wave convergence]{Solid body rotation cosine wave solution convergence. Scalar fields along upper-left diagonal for Superbee (upper-left), CHARM (upper-right), and MP5 (lower-left). (Lower-right) L2 Error.}
904+
\caption[Solid body rotation cosine wave convergence]{Solid body rotation cosine wave solution convergence. Scalar fields along upper-left diagonal for Superbee (upper-left) and CHARM (upper-right). (Lower-left) L2 Error.}
906905
\label{fig_soborot_cos_wave}
907906
\end{figure}
908907

Utilities/Matlab/scripts/compression_wave.m

Lines changed: 3 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -61,23 +61,6 @@
6161
skip_case = 1;
6262
end
6363

64-
if ~exist([data_dir,'compression_wave_FL5_16_devc.csv'])
65-
display(['Error: File ' [data_dir,'compression_wave_FL0_16_devc.csv'] ' does not exist. Skipping case.'])
66-
skip_case = 1;
67-
end
68-
if ~exist([data_dir,'compression_wave_FL5_32_devc.csv'])
69-
display(['Error: File ' [data_dir,'compression_wave_FL0_32_devc.csv'] ' does not exist. Skipping case.'])
70-
skip_case = 1;
71-
end
72-
if ~exist([data_dir,'compression_wave_FL5_64_devc.csv'])
73-
display(['Error: File ' [data_dir,'compression_wave_FL0_64_devc.csv'] ' does not exist. Skipping case.'])
74-
skip_case = 1;
75-
end
76-
if ~exist([data_dir,'compression_wave_FL5_128_devc.csv'])
77-
display(['Error: File ' [data_dir,'compression_wave_FL0_128_devc.csv'] ' does not exist. Skipping case.'])
78-
skip_case = 1;
79-
end
80-
8164
if skip_case
8265
return
8366
end
@@ -113,16 +96,6 @@
11396
t_FL4_64 = M_FL4_64(:,1); rho_fds_FL4_64 = M_FL4_64(:,3);
11497
t_FL4_128 = M_FL4_128(:,1); rho_fds_FL4_128 = M_FL4_128(:,3);
11598

116-
% MP5 limiter, FL=5
117-
M_FL5_16 = csvread([data_dir,'compression_wave_FL5_16_devc.csv'],2,0);
118-
M_FL5_32 = csvread([data_dir,'compression_wave_FL5_32_devc.csv'],2,0);
119-
M_FL5_64 = csvread([data_dir,'compression_wave_FL5_64_devc.csv'],2,0);
120-
M_FL5_128 = csvread([data_dir,'compression_wave_FL5_128_devc.csv'],2,0);
121-
t_FL5_16 = M_FL5_16(:,1); rho_fds_FL5_16 = M_FL5_16(:,3);
122-
t_FL5_32 = M_FL5_32(:,1); rho_fds_FL5_32 = M_FL5_32(:,3);
123-
t_FL5_64 = M_FL5_64(:,1); rho_fds_FL5_64 = M_FL5_64(:,3);
124-
t_FL5_128 = M_FL5_128(:,1); rho_fds_FL5_128 = M_FL5_128(:,3);
125-
12699
% analytical solution
127100

128101
a = 2;
@@ -147,11 +120,6 @@
147120
rho_FL4_64 = compression_wave_soln(rho_fds_FL4_64(1),x-L/128,y-L/128,a,c,t_FL4_64); error_FL4_64 = norm(rho_fds_FL4_64-rho_FL4_64)/length(t_FL4_64);
148121
rho_FL4_128 = compression_wave_soln(rho_fds_FL4_128(1),x-L/256,y-L/256,a,c,t_FL4_128); error_FL4_128 = norm(rho_fds_FL4_128-rho_FL4_128)/length(t_FL4_128);
149122

150-
rho_FL5_16 = compression_wave_soln(rho_fds_FL5_16(1),x-L/32,y-L/32,a,c,t_FL5_16); error_FL5_16 = norm(rho_fds_FL5_16-rho_FL5_16)/length(t_FL5_16);
151-
rho_FL5_32 = compression_wave_soln(rho_fds_FL5_32(1),x-L/64,y-L/64,a,c,t_FL5_32); error_FL5_32 = norm(rho_fds_FL5_32-rho_FL5_32)/length(t_FL5_32);
152-
rho_FL5_64 = compression_wave_soln(rho_fds_FL5_64(1),x-L/128,y-L/128,a,c,t_FL5_64); error_FL5_64 = norm(rho_fds_FL5_64-rho_FL5_64)/length(t_FL5_64);
153-
rho_FL5_128 = compression_wave_soln(rho_fds_FL5_128(1),x-L/256,y-L/256,a,c,t_FL5_128); error_FL5_128 = norm(rho_fds_FL5_128-rho_FL5_128)/length(t_FL5_128);
154-
155123
figure
156124
plot_style
157125
set(gca,'Units',Plot_Units)
@@ -197,20 +165,18 @@
197165
e_FL0 = [error_FL0_16 error_FL0_32 error_FL0_64 error_FL0_128];
198166
e_FL2 = [error_FL2_16 error_FL2_32 error_FL2_64 error_FL2_128];
199167
e_FL4 = [error_FL4_16 error_FL4_32 error_FL4_64 error_FL4_128];
200-
e_FL5 = [error_FL5_16 error_FL5_32 error_FL5_64 error_FL5_128];
201168
H(1)=loglog(h,e_FL0,'b*-','LineWidth',Line_Width); hold on
202169
H(2)=loglog(h,e_FL2,'ro-','LineWidth',Line_Width); hold on
203170
H(3)=loglog(h,e_FL4,'g^-','LineWidth',Line_Width); hold on
204-
H(4)=loglog(h,e_FL5,'c>-','LineWidth',Line_Width); hold on
205-
H(5)=loglog(h,.1*h,'k--','LineWidth',Line_Width);
206-
H(6)=loglog(h,.1*h.^2,'k-','LineWidth',Line_Width);
171+
H(4)=loglog(h,.1*h,'k--','LineWidth',Line_Width);
172+
H(5)=loglog(h,.1*h.^2,'k-','LineWidth',Line_Width);
207173

208174
xlabel('Grid Spacing (m)','FontSize',Title_Font_Size,'Interpreter',Font_Interpreter,'FontName',Font_Name)
209175
ylabel('L2 Error (kg/m³)','FontSize',Title_Font_Size,'Interpreter',Font_Interpreter,'FontName',Font_Name)
210176
axis([1e-2 1e0 1e-4 1e-1])
211177
set(gca,'FontName',Font_Name)
212178
set(gca,'FontSize',Title_Font_Size)
213-
legend_handle=legend(H(1:6),'Central','Superbee','CHARM','MP5','{\it O}({\it\deltax})','{\it O}({\it\deltax^2})','Location','NorthWest');
179+
legend_handle=legend(H(1:5),'Central','Superbee','CHARM','{\it O}({\it\deltax})','{\it O}({\it\deltax^2})','Location','NorthWest');
214180
set(legend_handle,'Interpreter',Font_Interpreter);
215181
set(legend_handle,'Fontsize',Key_Font_Size);
216182
set(legend_handle,'Box','on');

Utilities/Matlab/scripts/soborot_mass_transport.m

Lines changed: 1 addition & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@
2323
'soborot_godunov_square_wave_16', ...
2424
'soborot_godunov_square_wave_32', ...
2525
'soborot_godunov_square_wave_64', ...
26-
'soborot_mp5_cos_wave_128', ...
27-
'soborot_mp5_cos_wave_16', ...
28-
'soborot_mp5_cos_wave_32', ...
29-
'soborot_mp5_cos_wave_64', ...
3026
'soborot_superbee_cos_wave_128', ...
3127
'soborot_superbee_cos_wave_16', ...
3228
'soborot_superbee_cos_wave_32', ...
@@ -423,62 +419,6 @@
423419
set(gcf,'Position',[0 0 Paper_Width Paper_Height]);
424420
print(gcf,'-dpdf',[plot_dir,'soborot_superbee_cos_wave']);
425421

426-
% FLUX_LIMITER='MP5'
427-
428-
M = importdata([data_dir,'soborot_mp5_cos_wave_16_devc.csv'],',',2);
429-
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
430-
col_end = find(strcmp(M.colheaders,'"Y_TRACER-16"'));
431-
Y_mp5_16 = M.data(end,col_start:col_end);
432-
433-
M = importdata([data_dir,'soborot_mp5_cos_wave_32_devc.csv'],',',2);
434-
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
435-
col_end = find(strcmp(M.colheaders,'"Y_TRACER-32"'));
436-
Y_mp5_32 = M.data(end,col_start:col_end);
437-
438-
M = importdata([data_dir,'soborot_mp5_cos_wave_64_devc.csv'],',',2);
439-
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
440-
col_end = find(strcmp(M.colheaders,'"Y_TRACER-64"'));
441-
Y_mp5_64 = M.data(end,col_start:col_end);
442-
443-
M = importdata([data_dir,'soborot_mp5_cos_wave_128_devc.csv'],',',2);
444-
col_start = find(strcmp(M.colheaders,'"Y_TRACER-1"'));
445-
col_end = find(strcmp(M.colheaders,'"Y_TRACER-128"'));
446-
Y_mp5_128 = M.data(end,col_start:col_end);
447-
448-
figure
449-
set(gca,'Units',Plot_Units)
450-
set(gca,'Position',[Plot_X Plot_Y Plot_Width Plot_Height])
451-
Y_exact = zeros(1,length(r_exact));
452-
i_range = find(r_exact>0.25 & r_exact<0.75);
453-
Y_exact(i_range) = 0.5*(1. + cos(4.*pi*r_exact(i_range))); % see PERIODIC_TEST==13 in wall.f90
454-
H(1)=plot(r_exact,Y_exact,'k-'); hold on
455-
H(2)=plot(r_16,Y_mp5_16,'bo-');
456-
H(3)=plot(r_32,Y_mp5_32,'m*-');
457-
H(4)=plot(r_64,Y_mp5_64,'r^-');
458-
H(5)=plot(r_128,Y_mp5_128,'gsq-');
459-
460-
xlabel('Radial Position (m)','Interpreter',Font_Interpreter,'FontSize',Label_Font_Size)
461-
ylabel('Scalar Mass Fraction','Interpreter',Font_Interpreter,'FontSize',Label_Font_Size)
462-
axis([0 1 0 1.2])
463-
text(.05,1.1,'MP5','FontName',Font_Name,'FontSize',Label_Font_Size)
464-
465-
set(gca,'FontName',Font_Name)
466-
set(gca,'FontSize',Label_Font_Size)
467-
468-
lh=legend(H,'Exact','{\itn}=16','{\itn}=32','{\itn}=64','{\itn}=128');
469-
set(lh,'FontName',Font_Name,'FontSize',Key_Font_Size)
470-
legend boxoff
471-
472-
Git_Filename = [data_dir,'soborot_mp5_cos_wave_16_git.txt'];
473-
addverstr(gca,Git_Filename,'linear')
474-
475-
set(gcf,'Visible',Figure_Visibility);
476-
set(gcf,'Units',Paper_Units);
477-
set(gcf,'PaperUnits',Paper_Units);
478-
set(gcf,'PaperSize',[Paper_Width Paper_Height]);
479-
set(gcf,'Position',[0 0 Paper_Width Paper_Height]);
480-
print(gcf,'-dpdf',[plot_dir,'soborot_mp5_cos_wave']);
481-
482422
% plot error
483423

484424
Y_exact_16 = interp1(r_exact,Y_exact,r_16);
@@ -496,11 +436,6 @@
496436
e_superbee_64 = norm(Y_superbee_64-Y_exact_64,1)/length(r_64);
497437
e_superbee_128 = norm(Y_superbee_128-Y_exact_128,1)/length(r_128);
498438

499-
e_mp5_16 = norm(Y_mp5_16-Y_exact_16,1)/length(r_16);
500-
e_mp5_32 = norm(Y_mp5_32-Y_exact_32,1)/length(r_32);
501-
e_mp5_64 = norm(Y_mp5_64-Y_exact_64,1)/length(r_64);
502-
e_mp5_128 = norm(Y_mp5_128-Y_exact_128,1)/length(r_128);
503-
504439
dx = L./[16 32 64 128];
505440

506441
figure
@@ -510,7 +445,6 @@
510445
H(2)=loglog(dx,dx.^2,'k--');
511446
H(3)=loglog(dx,[e_charm_16 e_charm_32 e_charm_64 e_charm_128],'ko-');
512447
H(4)=loglog(dx,[e_superbee_16 e_superbee_32 e_superbee_64 e_superbee_128],'k*-');
513-
H(5)=loglog(dx,[e_mp5_16 e_mp5_32 e_mp5_64 e_mp5_128],'ksq-');
514448

515449
% trap cosine wave error
516450
if e_charm_128>2.9e-04
@@ -519,9 +453,6 @@
519453
if e_superbee_128>6.4e-04
520454
display(['Error: soborot_charm_square_wave_128 out of tolerance'])
521455
end
522-
if e_mp5_128>7.9e-05
523-
display(['Error: soborot_superbee_square_wave_128 out of tolerance'])
524-
end
525456

526457
axis([min(dx) .1 min(dx.^2) max(dx)])
527458
xlabel('Grid Spacing (m)','Interpreter',Font_Interpreter,'FontSize',Label_Font_Size)
@@ -531,7 +462,7 @@
531462
set(gca,'FontName',Font_Name)
532463
set(gca,'FontSize',Label_Font_Size)
533464

534-
lh=legend(H,'{\itO}(\delta{\itx})','{\itO}(\delta{\itx}^2)','CHARM','Superbee','MP5');
465+
lh=legend(H,'{\itO}(\delta{\itx})','{\itO}(\delta{\itx}^2)','CHARM','Superbee');
535466
set(lh,'Location','Southeast')
536467
set(lh,'FontName',Font_Name,'FontSize',Key_Font_Size)
537468
legend boxoff

0 commit comments

Comments
 (0)