-
Notifications
You must be signed in to change notification settings - Fork 15
/
discretization.tex
executable file
·1464 lines (1395 loc) · 57 KB
/
discretization.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
\chapter{Model Discretization}
\label{discretization_chap}
\section{Temporal Discretization}
The ARW solver uses a time-split integration scheme. Generally
speaking, slow or low-frequency (meteorologically significant) modes are
integrated using a third-order Runge-Kutta (RK3) time integration
scheme, while the high-frequency acoustic modes are integrated over
smaller time steps to maintain numerical stability. The horizontally
propagating acoustic modes (including the external mode present in the
mass-coordinate equations using a constant-pressure upper boundary
condition) and gravity waves are integrated using a forward-backward
time integration scheme, and vertically propagating acoustic modes and
buoyancy oscillations are integrated using a vertically implicit scheme
(using the acoustic time step). The time-split integration for the
flux-form equations is described and analyzed in
\citet{klemp_et_al_2007}. The time-splitting is similar to that first
developed by \citet{klemp78} for leapfrog time integration and analyzed
by \citet{skamarock92}. This time-split approach was extended to the
RK3 scheme as described in \citet{wicker02}. The primary differences
between the earlier implementations described in the references and the
ARW implementation are associated with our use of the mass vertical
coordinate and a flux-form set of equations, as described in
\citet{klemp_et_al_2007}, along with our use of
perturbation variables for the acoustic component of the time-split
integration. The acoustic-mode integration is cast in the form of a
correction to the RK3 integration.
\subsection{Runge-Kutta Time Integration Scheme}
\label{rk3_scheme}
The RK3 scheme, described in \citet{wicker02},
integrates a set of ordinary differential equations using a
predictor-corrector formulation. Defining the prognostic variables in
the ARW solver as $\Phi = (U,V,W,\Theta_m,\phi', \mu_d', Q_m)$ and the
model equations as $\Phi_t = R(\Phi)$, the RK3
integration takes the form of 3 steps to advance a solution
$\Phi(t)$ to $\Phi(t+\Delta t)$:
%
\begin{align}
\Phi^* & = \Phi^t + {\Delta t \over 3} R(\Phi^t)
\label{rk3a}
\\
\Phi^{**} & = \Phi^t + {\Delta t \over 2} R(\Phi^*)
\label{rk3b}
\\
\Phi^{t+\Delta t} & = \Phi^t + {\Delta t} R(\Phi^{**})
\label{rk3c}
\end{align}
%
\noindent
where $\Delta t$ is the time step for the low-frequency modes
(the model time step).
In \eqref{rk3a} -- \eqref{rk3c}, superscripts denote time levels.
This scheme is not a true Runge-Kutta scheme {\it per se} because, while it is
third-order accurate for linear equations, it is only second-order accurate
for nonlinear equations. With respect to the ARW equations, the
time derivatives $\Phi_t$ are the partial time derivatives (the leftmost
terms) in equations \eqref{tm_full}, \eqref{qm_full}, and \eqref{u-mom-pert} -- \eqref{phi_pert}, and
$R(\Phi)$ are the remaining terms in those equations.
\subsection{Acoustic Integration}
\label{acoustic_equations}
The high-frequency but meteorologically insignificant acoustic modes
would severely limit the RK3 time step $\Delta t$ in \eqref{rk3a} --
\eqref{rk3c}. To circumvent this time step limitation we use the
time-split approach described in \citet{wicker02}. Additionally, to increase the
accuracy of the splitting, we integrate
a perturbation form of the governing equations using smaller acoustic
time steps within the RK3 large-time-step sequence.
To form the perturbation
equations for the RK3 time-split acoustic integration, we define small
time step variables that are deviations from the most recent RK3
predictor (denoted by the superscript $t^*$ and representing either
$\Phi^t$, $\Phi^*$, or $\Phi^{**}$ in \eqref{rk3a} -- \eqref{rk3c}):
%
\begin{align}
\hbox{\bf V}'' &= \hbox{\bf V} -\hbox{\bf V}^{t^*}, ~~~~~~
\Omega'' = \Omega - \Omega^{t^*}, ~~~~~~ \Theta_m'' = \Theta_m -
\Theta_m^{t^*}, \notag \\ \phi'' &= \phi' - {\phi'}^{t^*},
~~~~~~ \alpha_d''= \alpha_d' - {\alpha_d'}^{t^*}, ~~~~~~
\mu_d''= \mu_d' - {\mu'}_d^{t^*}. \notag
\end{align}
%
\noindent
The hydrostatic relation (i.e., the vertical coordinate definition) becomes
%
\begin{equation}
\alpha_d'' = -{1\over\mu_d^{t^*}}\Bigl(\partial_\eta \phi'' + \alpha_d^{t^*}\mu_d''
\Bigr).
\label{small-hydro}
\end{equation}
%
\noindent
Additionally, we also
introduce a version of the equation of state that is linearized about $t^*$,
%
\begin{equation} p'' = {c_s^2\over\alpha_d^{t^*}} \biggl({\Theta_m''\over\Theta_m^{t^*}}
-{\alpha_d''\over\alpha_d^{t^*}} - {\mu_d''\over\mu_d^{t^*}}\biggr),
\label{p-linear}
\end{equation}
%
\noindent
where $c_s^2 = \gamma p^{t^*} \alpha_d^{t^*}$ is the
square of the sound speed.
The linearized
state equation \eqref{p-linear} and the vertical coordinate definition
\eqref{small-hydro} are used to cast the vertical pressure gradient in
\eqref{w-mom-pert} in terms of the model's prognostic variables.
By combining \eqref{p-linear} and \eqref{small-hydro}, the vertical
pressure gradient can be expressed as
%
\begin{equation}
\partial_\eta p'' =
\partial_\eta (C \partial_\eta \phi'')
+
\partial_\eta\biggl({c_s^2\over\alpha_d^{t^*}}
{\Theta_m''\over\Theta_m^{t^*}}\biggr),
\label{pz-linear}
\end{equation}
%
\noindent
where $C=c_s^2/\mu_d^{t^*}{\alpha^{t^*}_d}^2$. This linearization about the most
recent large time step should be highly accurate over the time interval of
the several small time steps.
These variables along with \eqref{pz-linear}
are substituted into equations
\eqref{tm_full} and \eqref{u-mom-pert} -- \eqref{hydro-pert} and lead to the
acoustic time-step equations:
%
\begin{align}
\null\hskip-.5in
\partial_t U'' + (m_x/m_y)(\alpha^{t^*}/\alpha^{t^*}_d) \left[\mu_d^{t^*} \left(
\alpha_d^{t^*} \partial_x {p''}^\tau + {\alpha_d''}^\tau \partial_x {\overline p} + \partial_x {\phi''}^\tau \right)
+ \partial_x \phi^{t^*} \left(\partial_\eta {p''} - {\mu''_d} \right)^\tau \right] & = R_U^{t^*}
%% \delta_\tau U'' + \mu^{t^*}\alpha^{t^*} \partial_x {p''}^\tau
%% + (\mu^{t^*} \partial_x \bar p){\alpha''}^\tau
%% + (\alpha/\alpha_d) [\mu^{t^*} \partial_x {\phi''}^\tau
%% + (\partial_x \phi^{t^*})(\partial_\eta p''-\mu'')^\tau]
%% &= {R_U}^{t^*}
\label{u-small-step}
\\
\null\hskip-.5in
\partial_t V'' + (m_y/m_x)(\alpha^{t^*}/\alpha^{t^*}_d) \left[\mu_d^{t^*} \left(
\alpha_d^{t^*} \partial_y {p''}^\tau + {\alpha_d''}^\tau \partial_y {\overline p} + \partial_y {\phi''}^\tau \right)
+ \partial_y \phi^{t^*} \left(\partial_\eta {p''} - {\mu''_d} \right)^\tau \right] & = R_V^{t^*}
%% \delta_\tau V'' + \mu^{t^*}\alpha^{t^*} \partial_y {p''}^\tau
%% + (\mu^{t^*} \partial_y \bar p){\alpha''}^\tau
%% + (\alpha/\alpha_d) [\mu^{t^*} \partial_y {\phi''}^\tau
%% + (\partial_y \phi^{t^*})(\partial_\eta p''-\mu'')^\tau]
%% &= {R_V}^{t^*}
\label{v-small-step}
\\
\delta_\tau \mu_d''
+ m_x m_y[\partial_x U'' + \partial_y V'']^{\tau+\Delta \tau}
+ m_y \partial_\eta {\Omega''^{\tau+\Delta \tau}} &= {R_\mu}^{t^*}
\label{mu-small-step}
\\
\delta_\tau \Theta_m''
+ m_x m_y[ \partial_x (U''\theta_m^{t^*})
+ \partial_y (V''\theta_m^{t^*})]^{\tau+\Delta \tau}
+ m_y \partial_\eta (\Omega''^{\tau+\Delta \tau} \theta_m^{t^*})
&= {R_{\Theta_m}}^{t^*}
\label{theta-small-step}
\\
\delta_\tau W''
- m_y^{-1} g\overline{\left\{(\alpha/\alpha_d)^{t^*} \left[
\partial_\eta (C \partial_\eta \phi'')
+
\partial_\eta\biggl({c_s^2\over\alpha^{t^*}}{\Theta_m''\over\Theta_m^{t^*}}\biggr)
\right]
- \mu_d''\right\}}^\tau
&= {R_W}^{t^*}
\label{w-small-step}
\\
\delta_\tau \phi'' + {1\over\mu_d^{t^*}}
%% [ m_y \Omega''^{\tau+\Delta \tau}\phi_\eta^{t^*} - m_y \overline{g W''}^\tau ]
[ m_y \Omega''^{\tau+\Delta \tau}\delta_\eta \phi^{t^*} - m_y \overline{g W''}^\tau ]
&= {R_\phi}^{t^*}.
\label{geo-small-step}
\end{align}
%
\noindent
The RHS terms in \eqref{u-small-step} -- \eqref{geo-small-step} are
fixed for the acoustic steps that comprise the time integration of each
RK3 sub-step (i.e., \eqref{rk3a} -- \eqref{rk3c}),
and are given by
%
\begin{align}
R_U^{t^*} = & - m_x\left[\partial_x (Uu) + \partial_y (Vu)\right] - \partial_\eta (\Omega u) & \cr
& -(m_x/m_y) (\alpha/\alpha_d) \left[ \mu_d (\partial_x \phi' + \alpha_d \partial_x p' + \alpha'_d \partial_x \overline{p}) +
\partial_x \phi (\partial_\eta p' - \mu'_d)\right]
%%R_U^{t^*} = &
%%- m_x[\partial_x(Uu) + \partial_y(Vu)] - \hphantom{(m_y/m_x)} \partial_\eta (\Omega u)
%%- ({\mu}_d \alpha \partial_x p'
%%- {\mu}_d \alpha' \partial_x \bar{p}) ~~~~~~~~ \notag
%%\\
%%& - (\alpha/\alpha_d) ( {\mu}_d \partial_x \phi'
%% - \partial_\eta p' \partial_x \phi
%% + {\mu}_d' \partial_x \phi ) + F_U
\label{u-rhs}
\\
%
R_V^{t^*} = & - m_y\left[\partial_x (Uv) + \partial_y (Vv)\right] - (m_y/m_x) \partial_\eta (\Omega v) & \cr
& -(m_y/m_x) (\alpha/\alpha_d) \left[ \mu_d (\partial_y \phi' + \alpha_d \partial_y p' + \alpha'_d \partial_y \overline{p}) +
\partial_y \phi (\partial_\eta p' - \mu'_d)\right]
%%R_V^{t^*} = &
%%- m_y[\partial_x (Uv) + \partial_y (Vv)] - (m_y/m_x) \partial_\eta (\Omega v)
%%- ({\mu}_d \alpha \partial_y p'
%%- {\mu}_d \alpha' \partial_y \bar{p}) ~~~~~~~~ \notag
%%\\
%%& - (\alpha/\alpha_d) ( {\mu}_d \partial_y \phi'
%% - \partial_\eta p' \partial_y \phi
%% + {\mu}_d' \partial_y \phi ) + F_V
\label{v-rhs}
\\
%
R_{\mu_d}^{t^*} = &
- m_x m_y[\partial_x U + \partial_y V] - m_y \partial_\eta \Omega
\label{mu-rhs}
\\
R_{\Theta_m}^{t^*} = &
- m_x m_y [\partial_x (U\theta_m) + \partial_y (V\theta_m)] - m_y \partial_\eta
(\Omega \theta_m) + F_{\Theta_m}
\label{theta-rhs}
\\
%
R_W^{t^*} = &
- m_x [\partial_x (Uw) + \partial_y (Vw)] - \partial_\eta
(\Omega w) ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~~~~~~ ~~~ \notag
\\
& + m_y^{-1} g (\alpha/\alpha_d) [\partial_\eta p'
- {\bar{\mu}}_d (q_v + q_c +q_r)]
- m_y^{-1} {\mu}_d'g + F_W
\label{w-rhs}
\\
%
R_\phi^{t^*} = &
- \mu_d^{-1}
%% [m_x m_y (U\phi_x + V\phi_y) + m_y
%% \Omega\phi_\eta - m_y gW ],
[m_x m_y (U\partial_x\phi + V\partial_y\phi) + m_y
\Omega\partial_\eta\phi - m_y gW ],
\label{geo-rhs}
%
\end{align}
%
\noindent
where all variables in \eqref{u-rhs} -- \eqref{geo-rhs} are evaluated at
time $t^*$ (i.e., using $\Phi^t$, $\Phi^*$, or $\Phi^{**}$ for the
appropriate RK3 sub-step in \eqref{rk3a} -- \eqref{rk3c}).
Equations \eqref{u-small-step} -- \eqref{geo-small-step} utilize
the discrete
acoustic time-step operator
%
\begin{equation}
\delta_\tau a = { a^{\tau + \Delta \tau} - a^\tau \over \Delta \tau },
\notag
\end{equation}
%
\noindent
where $\Delta \tau$ is the acoustic time step,
and terms averaged in time over an acoustic time step are slightly forward centered
using an averaging operator
%
\begin{equation}
\overline{a}^\tau = {1 + \beta \over 2}a^{\tau+\Delta \tau} +
{1 - \beta \over 2}a^{\tau},
\label{avg-operator}
\end{equation}
%
\noindent
where $\beta$ is a user-specified parameter (see Section \ref{offcentering}).
The integration over the acoustic time steps proceeds as follows.
Beginning with the small time-step variables at time $\tau$,
\eqref{u-small-step}
and \eqref{v-small-step}
are stepped forward to obtain ${U''}^{\tau+\Delta\tau}$ and
${V''}^{\tau+\Delta\tau}$. Both ${\mu''}^{\tau+\Delta\tau}$ and
${\Omega''}^{\tau+\Delta\tau}$ are then calculated from
\eqref{mu-small-step}.
This is
accomplished by first integrating \eqref{mu-small-step}
vertically from the surface to the
material surface at the top of the domain, which removes the $\partial_\eta
\Omega''$ term. Recalling that $\mu_d=\partial p_d/\partial\eta$ and that $p_d$
for the hybrid vertical coordinate is defined by \eqref{hyb_def}, the vertical
integral of \eqref{mu-small-step} becomes,
%
\begin{equation}
\delta_\tau{p_c}'' = m_x m_y \int_1^0
[\partial_x U'' + \partial_y V'']^{\tau+\Delta \tau}
d\eta,
\label{omega}
\end{equation}
%
where $p_c(x,y)=p_s-p_t$ is the dry hydrostatic pressure difference (mass) in the
vertical column at $(x,y)$.
After computing $\delta_\tau{p_c''}$ from \eqref{omega},
${\Omega''}^{\tau+\Delta\tau}$ is obtained by vertically integrating the
$\partial_\eta \Omega''$ term \eqref{mu-small-step} (with $\delta_\tau\mu=B_\eta\delta _\tau p_c$) using the lower boundary
condition $\Omega''=0$ at the
surface, which yields
%
\begin{equation}
{\Omega''}^{\tau+\Delta\tau} = m_y^{-1}\bigl[1-B(\eta)\bigr]\delta_\tau p_c- m_x\int_1^\eta
[\partial_x U'' + \partial_y V'']^{\tau+\Delta \tau}
d\eta,
\label{omega_int}
\end{equation}
%
and $\mu_d''^{\tau+\Delta\tau}$ is recovered using \eqref{hyb_def}:
%
\begin{equation}
{\mu_d''}^{\tau+\Delta\tau}(x,y,\eta) = B_\eta(\eta){p_c''}^{\tau+\Delta\tau}(x,y)+\bigl[1-B_\eta(\eta)\bigr](p_0-p_t).
\label{mu_from_pc}
\end{equation}
%
From \eqref{mu_from_pc}, it is evident that $\mu$ need not be stored as a three-dimensional array, but can be readily constructed when needed from the two-dimensional $p_c(x,y)$ array together with the one-dimensional $B_\eta(\eta)$ profile.
Knowing ${\Omega''}^{\tau+\Delta\tau}$, \eqref{theta-small-step} can be stepped forward to calculate
${\Theta_m''}^{\tau+\Delta\tau}$. Equations \eqref{w-small-step} and \eqref{geo-small-step}
are combined to form a vertically implicit equation that is solved for
${W''}^{\tau+\Delta\tau}$ subject to the boundary condition
%$W''={\hbox{\bf V}''}\cdot{\nabla}h$
$\Omega = \Omega'' = 0$
at the surface ($z=h(x,y)$) and $p'=0$
along the model top. ${\phi''}^{\tau+\Delta\tau}$ is then
obtained from \eqref{geo-small-step}, and ${p''}^{\tau+\Delta\tau}$ and
${\alpha_d''}^{\tau+\Delta\tau}$ are recovered from \eqref{p-linear}
and \eqref{small-hydro}.
\noindent
\begin{figure} % [h]
\setlength{\fboxrule}{.75pt}
\framebox[\columnwidth]{
\parbox{6.5truein}{
\vskip 5truept
\noindent
{\bf Begin Time Step} \medskip \hfill \break
%
\hphantom{Begin} {\bf Begin RK3 Loop: Steps 1, 2, and 3} \smallskip\hfill \break
%
\hphantom{BeginBegin}
(1) If RK3 step 1, compute and store $F_\Phi$ \hfill
\break
%
\hphantom{BeginBegin If RK3 step 1,}
(i.e., physics tendencies for RK3 step, including
mixing). \smallskip \hfill \break
%
\hphantom{BeginBegin}
%% (2) Compute $R_\Phi^{t^*}$,
(2) Compute $R^{t^*}$,
\eqref{u-rhs}--\eqref{geo-rhs}
\medskip \hfill \break
%
\hphantom{BeginBegini}{\bf Begin Acoustic Step Loop: Steps $1 \to n$},
\hfill \break
%
\hphantom{BeginBeginBegini}
{\it RK3 step 1, $n = 1$, ~~~~$\Delta \tau = \Delta t/3$; \hfill \break
\hphantom{BeginBeginBegini}
RK3 step 2, $n = n_s/2$, $\Delta \tau = \Delta t/n_s$; \hfill \break
\hphantom{BeginBeginBegini}
RK3 step 3, $n = n_s$, ~~\,\,$\Delta \tau = \Delta t/n_s$.}
\medskip \hfill \break
%
\hphantom{BeginBeginBegini}
(3) Advance horizontal momentum, \eqref{u-small-step}
and \eqref{v-small-step} \hfill\break
%
\hphantom{BeginBeginBegini(3) }
Global: Apply polar filter to $U''^{\tau+\Delta \tau}$
and $V''^{\tau+\Delta \tau}$.
\hfill\break
%
\hphantom{BeginBeginBegini}
(4) Advance $\mu_d$ \eqref{mu-small-step} and compute
${\Omega''}^{\tau+\Delta \tau}$ then
advance $\Theta_m$
\eqref{theta-small-step} \hfill\break
\hphantom{BeginBeginBegini(4) }
Global: Apply polar filter to $\mu_d^{\tau+\Delta \tau}$
and $\Theta_m''^{\tau+\Delta \tau}$. \hfill\break
%
\hphantom{BeginBeginBegini}
(5) Advance $W$ and $\phi$ \eqref{w-small-step}
and \eqref{geo-small-step} \hfill\break
\hphantom{BeginBeginBegini(5) }
Global: Apply polar filter to $W''^{\tau+\Delta \tau}$
and $\phi''^{\tau+\Delta \tau}$. \hfill\break
%
\hphantom{BeginBeginBegini}
(6) Diagnose $p''$ and $\alpha''$ using
\eqref{p-linear} and \eqref{small-hydro}
\medskip \hfill \break
%
\hphantom{BeginBegini}{\bf End Acoustic Step Loop}
\medskip
\hfill \break
%
\hphantom{BeginBegin}
(7) Scalar transport: Advance scalars \eqref{qm_full}
\hfill \break \hphantom{BeginBeginBegin} over RK3
substep \eqref{rk3a}, \eqref{rk3b} or \eqref{rk3c} \hfill \break
\hphantom{BeginBeginBegin}
(using mass fluxes $U$, $V$ and $\Omega$ time-averaged over the acoustic steps).
\hfill \break
\hphantom{BeginBeginBegin}
Global: Apply polar filter to scalars. \smallskip\hfill\break
%
\hphantom{BeginBegin}
(8) Using updated prognostic variables, compute $p'$ with \eqref{ideal_gas_law} and $\alpha'$ with
\hfill \break \hphantom{BeginBeginBegin} \eqref{hydro-pert} or \eqref{hypsometric_eqn}
\medskip \hfill \break
%
\hphantom{Begin} {\bf End RK3 Loop}
\medskip \hfill \break
%
\smallskip
\hphantom{Begin}
(9) Compute non-RK3 physics (currently microphysics), advance variables.
\hfill \break
\hphantom{Begin(4) }
Global: Apply polar filter to updated variables. \medskip\hfill\break
%
{\bf End Time Step}
\vskip 5truept
}
}
\caption{Time step integration sequence. Here $n$ represents the number
of acoustic time steps for a given substep of the RK3 integration, and
$n_s$ is the ratio of the RK3 time step to the acoustic time step for the
second and third RK3 substeps.}
\label{time_integration_figure}
\end{figure}
\subsection{Full Time-Split Integration Sequence}
\label{full_time_split_integration}
The time-split RK3 integration technique is summarized in Figure \ref{time_integration_figure}.
It consists of two primary loops--- an outer loop for the
large-time-step Runge-Kutta integration, and an inner loop for the
acoustic mode integration.
In the RK3 scheme, physics can be integrated within the RK3 time
integration (using a time forward step, i.e., step (1) in Fig.
\ref{time_integration_figure}, or the RK3 time integration if higher
temporal accuracy is desired, i.e., in step (2)--- implying a physics
evaluation every RK3 substep) or external to it using additive
timesplitting, i.e., step (9).
Within the acoustic integration, the acoustic time step $\Delta \tau$ is
specified by the user through the choice of $n_s$ (see Section
\ref{acoustic_step_constraint}). Within the first RK3 substep, however,
a single acoustic time step is used to advance the solution regardless of
$n_s$. Within the full RK3-acoustic timesplit integration, this
modified acoustic time step does not impose any additional stability
constraints \citep[see][]{wicker02}.
The major costs in the model arise from the evaluation of the
right hand side terms $R^{t^*}$ in \eqref{u-small-step}
-- \eqref{geo-small-step}.
The efficiency of the RK3 timesplit
scheme arises from the fact that the RK3 time step $\Delta t$ is much
larger than the acoustic time step $\Delta \tau$, hence the most costly
evaluations are only performed in the less-frequent RK3 steps.
\subsection{Diabatic Forcing}
\label{diabatic forcing subsection}
Within the RK3 integration sequence outlined in Fig.
\ref{time_integration_figure}, the RHS term $R_{\Theta_m}^{t^*}$ in the
thermodynamic equation \eqref{theta-small-step} contains contributions
from the diabatic physics tendencies that are computed in step (1) at
the beginning of the first RK3 step. This diabatic forcing is
integrated within the acoustic steps (specifically, in step 4 in the
time integration sequence shown in Fig. \ref{time_integration_figure}).
Additional diabatic contributions
are integrated in an additive-time-split manner in step (9) after the RK3
update is complete. Thus, the diabatic forcing computed in step (9) (the
microphysics in the current release of the ARW) does not appear in
$R_{\Theta_m}^{t^*}$ from \eqref{theta-small-step} in the acoustic
integration. We have discovered that this time splitting can excite
acoustic waves and can give rise to noise in the solutions for some
applications. Note that the non-RK3 physics are integrated in step (9)
because balances produced in the physics are required at the end of the
time step (e.g., the saturation adjustment in the microphysics). So while
moving these non-RK3 physics into step (1) would eliminate the noise,
the balances produced by these physics would be altered.
We have found that the excitation of the acoustic modes can be
circumvented while leaving the non-RK3 physics in step (9) by using the
following procedure that is implemented in the ARW. In step (1) of the
integration procedure (Fig. \ref{time_integration_figure}), an
estimate of the diabatic forcing in the $\Theta_m$ equation arising from the non-RK3
physics in step (9) is included in the diabatic forcing term
$R_{\Theta_m}^{t^*}$ in \eqref{theta-small-step} (which is advanced in step
4). This estimated diabatic forcing is then removed from the updated
$\Theta_m$ after the RK3 integration is complete and before the evaluation
of the non-RK3 physics in step (9). We use the diabatic forcing from
the previous time step as the estimated forcing; hence this procedure
results in few additional computations outside of saving the diabatic
forcing between time steps.
\subsection{Hydrostatic Option}
A hydrostatic option is available in the ARW solver. The time-split RK3
integration technique summarized in Fig. \ref{time_integration_figure}
is retained, including the acoustic
step loop. Steps (5) and (6) in the acoustic-step loop, where
$W$ and $\phi$ are advanced and $p''$ and $\alpha''$ are diagnosed, are
replaced by the following three steps.
(1) Diagnose the pressure from the full hydrostatic equation (including moisture)
%
\begin{equation}
\delta_\eta p_h = {\alpha_d \over \alpha} \mu_d = \bigl(1 + \sum q_m \bigr)\mu_d.
\notag
\end{equation}
%
\noindent
(2) Diagnose $\alpha_d$ using
the equation of state \eqref{ideal_gas_law}
and the prognosed $\theta_m$.
(3) Diagnose
the geopotential using the dry hydrostatic equation \eqref{hydro-pert}.
The vertical velocity
$w$ can be diagnosed from the geopotential equation, but it is not needed
in the solution procedure. The acoustic step loop advances gravity waves,
including the external mode, and the Lamb wave
when the hydrostatic option is used.
\section{Spatial Discretization}
The spatial discretization in the ARW solver uses a C grid staggering for
the variables as shown in Fig. \ref{figure:2}. That is, normal
velocities are staggered one-half grid length from the thermodynamic
variables. The variable indices, $(i,j,k)$
indicate variable locations with
$(x,y,\eta) = (i\Delta x, j\Delta y, k \Delta \eta)$. We will denote
the points where $\theta$ is located as being {\it mass} points, and
likewise we will denote locations where $u$, $v$, and $w$ are defined as
$u$ points, $v$ points, and $w$ points, respectively. Not shown in Fig.
\ref{figure:2} are the moisture
variables $q_i$, and the coordinate metric $\mu$, defined at the
mass points on the discrete grid, and the geopotential $\phi$ that is
defined at the $w$ points. The diagnostic variables used in the model, the
pressure $p$ and inverse density $\alpha$, are computed at mass points.
The grid lengths $\Delta x$ and $\Delta y$ are constants in the model
formulation; changes in the physical grid lengths associated with the
various projections to the sphere are accounted for using the map
factors introduced in Section \ref{spherical_projections}. The vertical
grid length $\Delta \eta$ is not a fixed constant; it is specified in
the initialization. The user is free to specify the $\eta$ values of the
model levels subject to the constraint that $\eta = 1$ at the surface,
$\eta = 0$ at the model top, and $\eta$ decreases monotonically between
the surface and model top. Using these grid and variable definitions,
we can define the spatial discretization for the ARW solver.
%
% Figure 3.something
%
\begin{figure}
\includegraphics *[width=6.5in,bb= 0 0 629.8 325.4]{figures/grids.pdf}
\caption{\label{figure:2}Horizontal and vertical grids of the ARW}
\end{figure}
\subsection{Acoustic Step Equations}
\label{acoustic_discretization}
We begin by defining the column-mass-coupled variables relative to the
uncoupled variables. The vertical velocity is staggered only in $k$, so
it can be coupled directly to the column mass with no averaging or
interpolation. The horizontal velocities are horizontally staggered
relative to the column mass such that the continuous variables are
represented discretely as
%
\begin{equation}
U = {\mu_d u \over m_y} \to
{\overline{\mu_d}^x u \over {\overline m_y}^x} ,
~~~ V = {\mu_d v \over m_x} \to {\overline{\mu_d}^y v \over {\overline m_x}^y} ,
\notag
\end{equation}
%
\noindent
where the discrete operator
$\overline{a}^x $
denotes a linear
interpolation operator. The grid lengths $\Delta x$ and $\Delta y$ are
constant, hence in this case the operator reduces to $\overline{a}^x =
(a_{i+1/2} + a_{i-1/2})/2$.
Using these definitions, we can write the spatially discrete
acoustic step equations \hfill\break
\eqref{u-small-step} -- \eqref{geo-small-step} as
%
\begin{align}
\partial_t U'' + (m_x/m_y)\overline{(\alpha^{t^*}/\alpha^{t^*}_d)}^x \bigg[\overline{\mu_d^{t^*}}^x\bigg(
\overline{\alpha_d^{t^*}}^x \partial_x {p''}^\tau + \overline{{\alpha_d''}^\tau}^x \partial_x {\overline p}
+ \partial_x \overline{{\phi''}^\tau}^\eta \bigg)
\notag &
\\
+ \partial_x \overline{\phi^{t^*}}^\eta \bigg(\partial_\eta \overline{\overline{{p''}}^x}^\eta - \overline{{\mu''_d}}^x \bigg)^\tau \,\bigg] & = R_U^{t^*}
%%\delta_{\tau} U'' + \overline{\mu^{t^*}}^x
%% \overline{\alpha^{t^*}}^x \delta_x {p''}^\tau
%% + (\overline{\mu^{t^*}}^x \delta_x \bar p)\overline{{\alpha''}^\tau}^x
%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%%\notag \\
%% + \overline{(\alpha/\alpha_d)}^x
%% [\overline{\mu^{t^*}}^x \delta_x \overline{{\phi''}^\tau}^\eta
%% + (\delta_x \overline{\phi^{t^*}}^\eta)
%% (\delta_\eta \overline{\overline{p''}^x}^\eta
%% -\overline{\mu''}^x)^\tau] &= R_U^{t^*}
\label{u-discrete}
\\
%
\partial_t V'' + (m_y/m_x)\overline{(\alpha^{t^*}/\alpha^{t^*}_d)}^y \bigg[\overline{\mu_d^{t^*}}^y\bigg(
\overline{\alpha_d^{t^*}}^y \partial_y {p''}^\tau + \overline{{\alpha_d''}^\tau}^y \partial_y {\overline p}
+ \partial_y \overline{{\phi''}^\tau}^\eta \bigg)
\notag &
\\
+ \partial_y \overline{\phi^{t^*}}^\eta \bigg(\partial_\eta \overline{\overline{{p''}}^y}^\eta - \overline{{\mu''_d}}^y \bigg)^\tau \, \bigg] & = R_V^{t^*}
%%\delta_{\tau} V'' + \overline{\mu^{t^*}}^y
%% \overline{\alpha^{t^*}}^y \delta_y {p''}^\tau
%% + (\overline{\mu^{t^*}}^y \delta_y \bar p)\overline{{\alpha''}^\tau}^y
%%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%%\notag \\
%% + \overline{(\alpha/\alpha_d)}^y
%% [\overline{\mu^{t^*}}^y \delta_y \overline{{\phi''}^\tau}^\eta
%% + (\delta_y \overline{\phi^{t^*}}^\eta)
%% (\delta_\eta \overline{\overline{p''}^y}^\eta
%% -\overline{\mu''}^y)^\tau] &= R_V^{t^*}
\label{v-discrete}
\\
\delta_\tau \mu_d''
+ m_x m_y[\delta_x U'' + \delta_y V'']^{\tau+\Delta \tau}
+ m_y {\delta_\eta \Omega''^{\tau+\Delta \tau}} & =
R_\mu^{t^*}
\label{mu-discrete}
\\
\delta_\tau \Theta_m''
+ m_x m_y[ \delta_x (U''\overline{\theta_m^{t^*}}^x)
+ \delta_y (V''\overline{\theta_m^{t^*}}^y)]^{\tau+\Delta \tau}
+ m_y \delta_\eta (\Omega''^{\tau+\Delta \tau} \overline{\theta_m^{t^*}}^\eta)
&= {R_{\Theta_m}}^{t^*}
\label{theta-discrete}
\\
\delta_\tau W''
- m_y^{-1} g\overline{\left\{\overline{(\alpha/\alpha_d)^{t^*}}^\eta
\left[ \delta_\eta (C \delta_\eta \phi'')
+
\delta_\eta\biggl({c_s^2\over\alpha^{t^*}}{\Theta_m''\over\Theta_m^{t^*}}\biggr)
\right]
- \mu_d''\right\}}^\tau
&= {R_W}^{t^*}
\label{w-discrete}
\\
\delta_\tau \phi'' + {1\over\mu_d^{t^*}}
[m_y \Omega''^{\tau+\Delta \tau} \delta_\eta \overline{\phi^{t^*}}^\eta - m_y\overline{g W''}^\tau ]
&= {R_\phi}^{t^*},
\label{geo-discrete}
\end{align}
%
\noindent
where the discrete operator
%
\begin{equation}
\delta_x a = \Delta x^{-1} (a_{i+1/2} -
a_{i-1/2})
\end{equation}
%
\noindent
with the operators $\delta_y$ and $\delta_\eta$ similarily defined.
Additionally,
the operator $\overline{a}^\eta$ is a vertical interpolation operator.
Using the notation given for the vertically stretched grid depicted
in Fig. \ref{figure:2}, it is defined as
%
\begin{equation}
\overline{a}^\eta|_{k+1/2} = {1 \over 2} \biggl(
{\Delta\eta_{k} \over \Delta\eta_{k+1/2}} a_{k+1} +
{\Delta\eta_{k+1} \over \Delta\eta_{k+1/2}} a_{k} \biggr).
\end{equation}
%
\noindent
This operator vertically interpolates variables on mass levels $k$ to the
$w$ levels $(k+{1\over 2})$. It should be noted that the vertical grid
is defined such that vertical interpolation from $w$ levels to mass
levels reduces to
$\overline{a}^\eta_k = (a_{k+1/2}+a_{k-1/2})/2$ (see Fig. \ref{figure:2}).
The RHS terms in the discrete acoustic step equations
for momentum
\eqref{u-discrete}, \eqref{v-discrete} and \eqref{w-discrete}
are discretized as
%
\begin{align}
R_U^{t^*} =
-(m_x/m_y) \overline{(\alpha/\alpha_d)}^x & \left[ \overline{\mu_d}^x (\partial_x \overline{\phi'}^\eta
+ \overline{\alpha_d}^x \partial_x p' + \overline{\alpha'_d}^x \partial_x \overline{p}) +
\partial_x \overline{\phi}^\eta (\partial_\eta \overline{\overline{p'}^x}^\eta - \overline{\mu'_d}^x)\right] & \cr
& + F_{U_{cor}} + \hbox{advection} + \hbox{mixing} + \hbox{physics,}
%%R_U^{t^*} = &- ( \overline{{\mu}_d}^x \overline{\alpha}^x \delta_x p'
%% -\overline{{\mu}_d}^x \overline{\alpha'}^x \delta_x \bar{p})
%%-\overline{(\alpha / \alpha_d)}^x
%%( \overline{{\mu}_d}^x \delta_x \overline{\phi'}^\eta
%% - \delta_\eta \overline{\overline{p'}^x}^\eta \delta_x \overline{\phi}^\eta
%% + \overline{{\mu}_d'}^x \delta_x \overline{\phi}^\eta ) \notag \\
%%& ~~~~~~~~~~~~~~~~~~~~~~~~~ + F_{U_{cor}} + \hbox{advection} +
%%\hbox{mixing} + \hbox{physics},
\label{u-pg-discrete} \\
%
R_V^{t^*} =
-(m_y/m_x) \overline{(\alpha/\alpha_d)}^y & \left[ \overline{\mu_d}^y (\partial_y \overline{\phi'}^\eta
+ \overline{\alpha_d}^y \partial_y p' + \overline{\alpha'_d}^y \partial_y \overline{p}) +
\partial_y \overline{\phi}^\eta (\partial_\eta \overline{\overline{p'}^y}^\eta - \overline{\mu'_d}^y)\right] & \cr
& + F_{V_{cor}} + \hbox{advection} + \hbox{mixing} + \hbox{physics,}
%%R_V^{t^*} = &- ( \overline{{\mu}_d}^y \overline{\alpha}^y \delta_y p'
%% -\overline{{\mu}_d}^y \overline{\alpha'}^y \delta_y \bar{p})
%%-\overline{(\alpha / \alpha_d)}^y
%%( \overline{{\mu}_d}^y \delta_y \overline{\phi'}^\eta
%% - \delta_\eta \overline{\overline{p'}^y}^\eta \delta_y \overline{\phi}^\eta
%% + \overline{{\mu}_d'}^y \delta_y \overline{\phi}^\eta ) \notag \\
%%& ~~~~~~~~~~~~~~~~~~~~~~~~~ + F_{V_{cor}} + \hbox{advection} +
%%\hbox{mixing} + \hbox{physics},
\label{v-pg-discrete} \\
%
R_W^{t^*} = ~ m_y^{-1} g \overline{(\alpha/\alpha_d)}^\eta [\delta_\eta p'
+ & {\bar{\mu}}_d \overline{q_m}^\eta]
- m_y^{-1} {\mu}_d'g & \cr
& + F_{W_{cor}} + \hbox{advection} + \hbox{mixing} + \hbox{buoyancy} + \hbox{physics}.
\label{w-pg-discrete}
\end{align}
\subsection{Coriolis and Curvature Terms}
The terms $F_{U_{cor}}$, $F_{V_{cor}}$, and $F_{W_{cor}}$ in
\eqref{u-pg-discrete} -- \eqref{w-pg-discrete}
represent Coriolis and
curvature effects in the momentum equations and are written in continuous form in
\eqref{u-mom-rhs} -- \eqref{w-mom-rhs}. Using the isotropic map projections
(Lambert conformal, polar stereographic, and Mercator) where $m_x=m_y=m$,
their spatial discretization is
%
\begin{align}
F_{U_{cor}} & = +
\bigl({\overline f}^x +
{\overline{
{\overline u}^x
{\delta_y m}
- {\overline v}^y
\delta_x m}}^x \bigr)
{\overline V}^{xy}
- {\overline e}^x
{\overline W}^{x\eta}\, {\overline{\cos \alpha_r}}^x
- {u {\overline W}^{x\eta} \over r_e},
\label{coriolis-u-regional}
\\
%
F_{V_{cor}} & = -
\bigl({\overline f}^y +
{\overline{
{\overline u}^x
{\delta_y m}
- {\overline v}^y \delta_x m}}^y \bigr)
{\overline U}^{xy}
+ {\overline e}^y
{\overline W}^{y\eta}\, {\overline{\sin \alpha_r}}^y
- {v {\overline W}^{y\eta} \over r_e},
\label{coriolis-v-regional}
\\
%
F_{W_{cor}} & = + e ({\overline U}^{x\eta}
\cos \alpha_r - {\overline V}^{y\eta}
\sin \alpha_r) + \biggl({
{\overline u}^{x\eta} {\overline U}^{x\eta}
+{\overline v}^{y\eta} {\overline V}^{y\eta}
\over r_e}\biggr).
\label{coriolis-w-regional}
\end{align}
%
\noindent
Here the operators $\overline{()}^{xy} = \overline{\overline{()}^{x}}^y
$, and likewise for $\overline{()}^{x\eta}$ and $\overline{()}^{y\eta}$.
For the non-isotropic latitude longitude projection, the Coriolis and
curvature terms are discretized as
%
\begin{align}
F_{U_{cor}} & = {m_x \over m_y} \biggl[\hphantom{-}{\overline f}^x
{\overline V}^{xy}
+ {u\overline{V}^{xy} \over r_e} \tan\psi \biggr]
- {\overline e}^x
{\overline W}^{x\eta}\, {\overline{\cos \alpha_r}}^x
- {u {\overline W}^{x\eta} \over r_e},
\label{coriolis-u-global}
\\
%
F_{V_{cor}} & = {m_y \over m_x} \biggl[ - \overline{f}^y
\overline{U}^{xy}
- {\overline{u}^{xy} \overline{U}^{xy} \over r_e} \tan \psi
+ \overline{e}^y \overline{W}^{y\eta}\overline{\sin \alpha_r}^y
%% + {v\overline{W}^{y\eta} \over r_e}
- {v\overline{W}^{y\eta} \over r_e}
\biggr],
\label{coriolis-v-global}
\\
%
F_{W_{cor}} & = + e ({\overline U}^{x\eta}
\cos \alpha_r - (m_x/m_y) {\overline V}^{y\eta}
\sin \alpha_r) + \biggl({
{\overline u}^{x\eta} {\overline U}^{x\eta}
+(m_x/m_y) {\overline v}^{y\eta} {\overline V}^{y\eta}
\over r_e}\biggr).
\label{coriolis-w-global}
%
\end{align}
\subsection{Advection}
\label{advection}
The advection terms in the ARW solver are in the form of a flux divergence and
are a subset of the RHS terms in equations \eqref{u-rhs} --
\eqref{geo-rhs}:
%
\begin{align}
R_{U_{adv}}^{t^*} = &
- m_x[\partial_x(Uu) + \partial_y(Vu)] + \hphantom{(m_x/m_y)} \partial_\eta (\Omega u)
\\
%
R_{V_{adv}}^{t^*} = &
- m_y[\partial_x (Uv) + \partial_y (Vv)] + (m_x/m_y) \partial_\eta (\Omega v)
\\
%
R_{\mu_{adv}}^{t^*} = &
%% - m_x m_y[U_x + V_y] + m_y \Omega_\eta
- m_x m_y[\partial_x U + \partial_y V] + m_y \partial_\eta\Omega
\\
R_{\Theta_{adv}}^{t^*} = &
- m_x m_y [\partial_x (U\theta_m) + \partial_y (V\theta_m)] - m_y \partial_\eta
(\Omega \theta_m)
\\
%
R_{W_{adv}}^{t^*} = &
- m_x [\partial_x (Uw) + \partial_y (Vw)] + \partial_\eta
(\Omega w)
\\
%
R_{\phi_{adv}}^{t^*} = &
- \mu_d^{-1}
%% [m_x m_y (U\phi_x + V\phi_y) + m_y
%% \Omega\phi_\eta].
[m_x m_y (U\partial_x \phi + V\partial_y \phi) + m_y
\Omega\partial_\eta\phi].
\end{align}
%
\noindent
For the mass conservation equation, the flux divergence is discretized
using a 2nd-order centered approximation:
%
\begin{equation}
R_{\mu_{adv}}^{t^*} =
- m_x m_y [\delta_x U + \delta_y V]^{t^*} + m_y \delta_\eta \Omega^{t^*}.
\end{equation}
%
In the current version of the ARW, the advection of vector quantities
(momentum) and scalars is performed
using the RK3 time integration as outlined in Fig.
\ref{time_integration_figure}. The spatial discretization used in this
approach is outlined in the next section. For many applications it
is desirable to use positive definite or monotonic advection schemes
for scalar transport.
%In the next major release of the ARW we will be
%including a forward-in-time scheme for scalar transport that has
%positive definite and monotonic options. We describe that scheme in
%the section following the description of the RK3 advection.
\subsubsection{RK3 Advection}
\label{rk3-advection}
$\hbox{2}^{nd}$ through $\hbox{6}^{th}$ order accurate spatial
discretizations
of the flux divergence are available in the ARW for momentum,
scalars and geopotential using the RK3 time-integration scheme
(scalar advection option 1, step 7 in the time-split integration sequence
in Fig. \ref{time_integration_figure}).
The discrete operators can be illustrated
by considering the flux divergence equation for
a scalar $q$ in its discrete form:
%
\begin{equation}
R_{q_{adv}}^{t^*} =
- m_x m_y [\delta_x (U \overline{q}^{x_{adv}})
+ \delta_y (V\overline{q}^{y_{adv}})]
- m_y \delta_\eta
(\Omega \overline{q}^{\eta_{adv}}).
\label{flux-divergence}
\end{equation}
%
As in the pressure gradient discretization, the discrete operator
is defined as
%
\begin{equation}
\delta_x (U \overline{q}^{x_{adv}}) = \Delta x^{-1}
\bigl[ (U \overline{q}^{x_{adv}})_{i+1/2} -
(U \overline{q}^{x_{adv}})_{i-1/2} \bigr].
\label{discrete-divergence}
\end{equation}
%
\noindent
The different order advection schemes correspond to different
definitions for the operator $\overline{q}^{x_{adv}}$.
The even order operators
($\hbox{2}^{nd}$, $\hbox{4}^{th}$, and $\hbox{6}^{th}$) are
%
\begin{align}
\hbox{2}^{nd} \hbox{ order:} ~~~~ &
(\overline{q}^{x_{adv}})_{i-1/2} =
{1 \over 2}
(q_{i} + q_{i-1}) \notag \\
%
\hbox{4}^{th} \hbox{ order:} ~~~~ &
(\overline{q}^{x_{adv}})_{i-1/2} =
{7 \over 12} (q_{i} + q_{i-1})
- {1 \over 12} (q_{i+1} + q_{i-2})
\notag \\
\hbox{6}^{th} \hbox{ order:} ~~~~ &
(\overline{q}^{x_{adv}})_{i-1/2} =
{37 \over 60} (q_{i} + q_{i-1})
- {2 \over 15} (q_{i+1} + q_{i-2})
+ {1 \over 60} (q_{i+2} + q_{i-3}),
\notag
\end{align}
%
\noindent
and the odd order operators ($\hbox{3}^{rd}$ and $\hbox{5}^{th}$) are
%
\begin{align}
\hbox{3}^{rd} \hbox{ order:} ~~~~ &
(\overline{q}^{x_{adv}})_{i-1/2} =
(\overline{q}^{x_{adv}})_{i-1/2}^{4^{th}}
\notag
\\
&~~~~~~~~~~~~~~~~~~~~
+ \hbox{sign}(U){1 \over 12} \bigl[
(q_{i+1}-q_{i-2}) - 3(q_i - q_{i-1}) \bigr]
\notag
\\
\hbox{5}^{th} \hbox{ order:} ~~~~ &
(\overline{q}^{x_{adv}})_{i-1/2} =
(\overline{q}^{x_{adv}})_{i-1/2}^{6^{th}}
\notag
\\
&~~~~~~~~~~~~~~~~~~~~
- \hbox{sign}(U){1 \over 60} \bigl[
(q_{i+2}-q_{i-3}) - 5(q_{i+1} - q_{i-2})
+ 10(q_i - q_{i-1})
\bigr].
\notag
\end{align}
The even-order advection operators are spatially centered and thus
contain no implicit diffusion outside of the diffusion inherent in
the RK3 time integration. The odd-order schemes are upwind-biased, and
the spatial discretization is inherently diffusive. The behavior of
the upwind schemes is easily understood by expanding
\eqref{discrete-divergence} using the $5^{th}$ order operator, assuming a
constant mass flux $U$ and
multiplying by the timestep $\Delta t$:
%
\begin{align}
\Delta t \delta_x (U \overline{q}^{x_{adv}}) =
& \, {\Delta t} {\delta (Uq)|}^{6th}
-\left| {U \Delta t \over \Delta x }\right| {1 \over 60}
\left(-q_{i-3}+6q_{i-2}-15q_{i-1}+20q_{i}-15q_{i+1}+6q_{i+2}-q_{i+3}
\right)
\notag
\\
= & \, {\Delta t} {\delta (Uq)|}^{6th} - {Cr \over 60} \Delta x^6 {\partial^6
%% q \over \partial x^6} + \, H.O.T.
q \over \partial x^6} + \, {\rm higher\ order\ terms}
\notag
\end{align}
%
\noindent
Similarly, we can expand \eqref{discrete-divergence} using the $3^{rd}$
order operator:
\begin{align}
\Delta t \delta_x (U \overline{q}^{x_{adv}})
= & \, {\Delta t} {\delta (Uq)|}^{4th} + {Cr \over 12} \Delta x^4 {\partial^4
%% q \over \partial x^4} + \, H.O.T.