Upload
nolan-house
View
25
Download
2
Embed Size (px)
DESCRIPTION
Linear solutions of flow over mountains COSMO General Meeting WG2 'Numerics and Dynamics' 15.09.2008 Michael Baldauf Deutscher Wetterdienst, Offenbach, Germany. Development of a program to calculate a reference solution for convergence tests (task 5) Linear solutions of flow over mountain - PowerPoint PPT Presentation
Citation preview
Deutscher Wetterdienst
1FE 13 – 19.04.23
Linear solutions of flow over mountains
COSMO General MeetingWG2 'Numerics and Dynamics'15.09.2008
Michael BaldaufDeutscher Wetterdienst, Offenbach, Germany
Deutscher Wetterdienst
2FE 13 – 19.04.23
Development of a program to calculate a reference solution for convergence tests (task 5)
Linear solutions of flow over mountain
there exist a huge number of different linear solutions for flow over mountains:Queney (1947, 1948), Smith (1979, 1980), ...
reason: different goals:• to get insight into the physical process:
try to approximate as far as possible to get simple solutions/formulae• to test numerical models:
try to reduce the approximations as far as possible (perhaps by requiring more preconditions) to get an 'analytical' solution which fits best to the PDE-system (better say: a solution which can be calculated with higher numerical confidence, e.g. calculation of integrals or FFT's instead of solving PDE's)
Deutscher Wetterdienst
3FE 13 – 19.04.23
Starting point: compressible Euler equations COSMO-dynamical core
Preconditions:• no friction• only adiabatic processes (in particular no phase changes)• ideal gas law• cp=const., cV=const., R=const.• no Coriolis force• all movements take place on a plane (no earth curvature)
These preconditions can be fulfilled easily by a dynamical core.
Only 2 approximations will be made:1. linearisation 1/Fr = h N / U <<< 1
simulate very flat mountains at high inflow velocities2. the assumption that kz=const (see below; not absolutely necessary)
Deutscher Wetterdienst
4FE 13 – 19.04.23
'tracer'-parameter:1 = 0/1 : hydrostatic / non-hydrostatic approximation2 = 0/1 : incompressible / compressible model3 = 0/1 : shallow / deep convection/atmosphere
Compressible Euler equations (adiabatic, f=0,...)e.g. Smith (1979)
Deutscher Wetterdienst
5FE 13 – 19.04.23
Base state: stationary, hydrostatic, only depends on z
Deutscher Wetterdienst
6FE 13 – 19.04.23
Fouriertransformation: horizontal and temporal
Perturbation equations:
4th 'tracer'-parameter introduced (Pichler, 1997):4=0/1 : small / big Mach-numbers
Deutscher Wetterdienst
7FE 13 – 19.04.23
Def.: Heterogenity (Queney, 1947)
Def: Stability parameter
Def: Mach-number
Def:
Some abbreviations:
Deutscher Wetterdienst
8FE 13 – 19.04.23
Stationary case (=0)From perturbation equations: express u', v', ' and p' by w' equation 2nd order for w'(kx, ky, z):
with coefficient functions:
Deutscher Wetterdienst
9FE 13 – 19.04.23
The whole derivation is in principle similar to many textbooks, but the only (!) approximation up to now is linearisation.
Variable transformation (modified Bretherton (1960)-transformation):
There are two special cases, which can be handled easily separately:1.) =0, kx=0, ky02.) =0, kx=0, ky=0
Deutscher Wetterdienst
10FE 13 – 19.04.23
Boundary conditions:
below: linearisation of the free-slip condition:
above: assume kz=const.
case kz² < 0 : exponentially growing solution seems unphysical choose and omit term ~B
case kz² > 0 : no energy transport downwards (Smith, 1980) choose and omit term ~B
Deutscher Wetterdienst
11FE 13 – 19.04.23
Choice of the base state: N = const. kz ~ const. (= 2nd approx.!)experience: kz=const. is fulfilled rather good
Some features of 'Lin_Mountain':• written in C/C++• Makefile for Linux available• Binary output (with an additional .ctl-File for GrADS)• Use of FFT (Numerical recipes, Press et al.) for
• estimation about the accuracy of the approximation 'kz=const.'
max. height: ~ 35 km
Deutscher Wetterdienst
12FE 13 – 19.04.23
512 nx 2 ny 160 nz 200.0 dx 200.0 dy 100.0 dz 10.0 U_0 293.0 T_00 1.0e5 p_00 0.01 N_BV 1 delta1__0=hydrostat/1=nichthydrostat 1 delta2__0=inkompress/1=kompress 1 delta3__0=flach/1=tief 1 delta4__0=kleine/1=grosse_Machzahl topo.d oro_datei topo_ft.d oro_ft_datei Gaussdamm oro_typ 10000.0 oro_breite 10.0 oro_hoehe gauss_2D Ausgabekennung ./ Ausgabepfad 100 ix_min 400 ix_max 1 ix_step 0 iy_min 0 iy_max 1 iy_step 0 iz_min 159 iz_max 1 FFT
Input-File: (abc.inp)
Deutscher Wetterdienst
13FE 13 – 19.04.23
Example 1: 2D-test case gaussian hill (for the Input-Data: slide before)
w [m/s]
Deutscher Wetterdienst
15FE 13 – 19.04.23
Example 2: 2D-test case from Schaer et al (2002)
w [m/s]
Deutscher Wetterdienst
17FE 13 – 19.04.23
Example 3: 3D Gaussian Hill
w [m/s]
Deutscher Wetterdienst
18FE 13 – 19.04.23
Optimization of horizontal advection:
up to COSMO 4.3: 'advection operators' = a subroutine acting on every single grid point compiler has problems to optimize loops
since COSMO 4.4: advection routines using 'field operations'(and additionally the DFI modifications by Lucio Torrisi)
Efficiency gain for routine COSMO-DE at DWD (IBM):• speedup of the horizontal advection alone: ~ 3 times faster • overall reduction of model run time: ~ 1 Min. / 20 Min. ~ 5%
Furthermore, some inconsistencies using metrical factors could be repaired acrlat(j,1) acrlat(j,2) lent to an error of ~ -0.05% in the term v dw/dy
Deutscher Wetterdienst
19FE 13 – 19.04.23
ngranularity: Each sample hit covers 4 bytes. Time: 16425.58 seconds
called/total parents index %time self descendents called+self name index called/total children
53.46 12371.49 1/1 .__start [2][1] 75.6 53.46 12371.49 1 .lmorg [1] 0.01 9450.25 8514/8514 .organize_dynamics [3] 0.73 2529.11 8514/8514 .organize_physics [6] 72.20 87.39 4256/4256 .initialize_loop [32] 0.01 119.25 8515/8515 .organize_diagnosis [39] 0.01 61.03 4258/8514 .organize_data [38] 0.04 36.55 12770/12770 .organize_assimilation [63] 10.19 0.82 4256/4256 .near_surface [79] 0.02 3.36 4256/4256 .exchange_runge_kutta [98] ...-----------------------------------------------...-----------------------------------------------
0.01 9450.25 8514/8514 .lmorg [1][3] 57.5 0.01 9450.25 8514 .organize_dynamics [3] 262.68 9025.25 4256/4256 .__src_runge_kutta_NMOD_org_runge_kutta [4] 113.02 49.28 4256/4256 .__src_relaxation_NMOD_sardass [31] 0.02 0.00 1/1 .init_dynamics [302] 0.00 0.00 1/1 .__src_relaxation_NMOD_init_relaxation [641] 0.00 0.00 1/1 .input_dynctl [1105]
-----------------------------------------------
262.68 9025.25 4256/4256 .organize_dynamics [3][4] 56.5 262.68 9025.25 4256 .__src_runge_kutta_NMOD_org_runge_kutta [4] 3557.22 113.61 12768/12768 .__fast_waves_rk_NMOD_fast_waves_runge_kutta [5]===> 602.40 1593.07 12768/12768 .__src_advection_rk_NMOD_advection_alt [7] 31.91 985.85 4256/4256 .__src_advection_rk_NMOD_advection_pd [11] 930.86 0.00 12768/12768 .__src_slow_tendencies_rk_NMOD_complete_tendencies_uvwtpp [13]-----------------------------------------------
602.40 1593.07 12768/12768 .__src_runge_kutta_NMOD_org_runge_kutta [4][7] 13.4 602.40 1593.07 12768 .__src_advection_rk_NMOD_advection_alt [7] 1574.75 0.00 18446744061366576640/18446744062714877440 .__numeric_utilities_rk_NMOD_udsdx [8]...
Old version with 'advection operator'(gprof - output)
Deutscher Wetterdienst
20FE 13 – 19.04.23
ngranularity: Each sample hit covers 4 bytes. Time: 15485.44 seconds
called/total parents index %time self descendents called+self name index called/total children
6.6s <spontaneous>[1] 72.9 426.78 10867.61 .lmorg [1] 0.01 8139.09 8514/8514 .organize_dynamics [2] 0.56 2496.58 8514/8514 .organize_physics [5] 0.02 120.22 8515/8515 .organize_diagnosis [42] 0.02 60.68 4258/8514 .organize_data [41] 0.00 38.48 12770/12770 .organize_assimilation [65] 10.45 0.95 4256/4256 .near_surface [81] ...-----------------------------------------------
0.01 8139.09 8514/8514 .lmorg [1][2] 52.6 0.01 8139.09 8514 .organize_dynamics [2] 264.96 7711.97 4256/4256 .__src_runge_kutta_NMOD_org_runge_kutta [3] ...-----------------------------------------------
264.96 7711.97 4256/4256 .organize_dynamics [2][3] 51.5 264.96 7711.97 4256 .__src_runge_kutta_NMOD_org_runge_kutta [3] 3592.24 180.20 12768/12768 .__fast_waves_rk_NMOD_fast_waves_runge_kutta [4] 31.61 1064.15 4256/4256 .__src_advection_rk_NMOD_advection_pd [7] 1041.89 0.00 12768/12768 .__src_slow_tendencies_rk_NMOD_complete_tendencies_uvwtpp [8]===> 286.16 307.05 12768/12768 .__src_advection_rk_NMOD_advection [14] 65.29 394.44 4256/4256 .__hori_diffusion_NMOD_comp_hori_diff [17] ...-----------------------------------------------...-----------------------------------------------
286.16 307.05 12768/12768 .__src_runge_kutta_NMOD_org_runge_kutta [3][14] 3.8 286.16 307.05 12768 .__src_advection_rk_NMOD_advection [14] 0.04 282.22 76608/76608 .__src_advection_rk_NMOD_horiz_adv_driver [24] 0.07 18.80 25536/206951 .__environment_NMOD_exchg_boundaries [35] 5.76 0.00 56179200/1404480000 .__numeric_utilities_rk_NMOD_udsdx [38]
New version with 'field operators'(gprof - output)