Skip to content

Commit 351b63a

Browse files
authored
Cleanup Diffusion config (#1060)
- Remove `thslp_zdiffu` and `thhgtd_zdiffu` from the Fortran bindings as they are not used - Add `hdiff_w_efdt_ratio` to the Fortran bindings (though for now we don't have any experiment that deviates from the default value)
1 parent 5a0ed7c commit 351b63a

File tree

9 files changed

+19
-50
lines changed

9 files changed

+19
-50
lines changed

model/atmosphere/diffusion/src/icon4py/model/atmosphere/diffusion/diffusion.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,6 @@ def __init__(
152152
smagorinski_scaling_factor: float = 0.015,
153153
n_substeps: int = 5,
154154
zdiffu_t: bool = True,
155-
thslp_zdiffu: float = 0.025,
156-
thhgtd_zdiffu: float = 200.0,
157155
velocity_boundary_diffusion_denom: float = 200.0,
158156
temperature_boundary_diffusion_denom: float = 135.0,
159157
_nudge_max_coeff: float | None = None, # default is set in __init__
@@ -211,11 +209,6 @@ def __init__(
211209
#: Called 'l_zdiffu_t' in mo_nonhydrostatic_nml.f90
212210
self.apply_zdiffusion_t: bool = zdiffu_t
213211

214-
#:slope threshold (temperature diffusion): is used to build up an index list for application of truly horizontal diffusion in mo_vertical_grid.f90
215-
self.thslp_zdiffu = thslp_zdiffu
216-
#: threshold [m] for height difference between adjacent grid points, defaults to 200m (temperature diffusion)
217-
self.thhgtd_zdiffu = thhgtd_zdiffu
218-
219212
# from other namelists:
220213
# from parent namelist mo_nonhydrostatic_nml
221214

@@ -374,9 +367,6 @@ def _determine_smagorinski_factor(self, config: DiffusionConfig):
374367
smagorinski_height = None
375368
case _:
376369
raise NotImplementedError("Only implemented for diffusion type 4 and 5")
377-
smagorinski_factor = None
378-
smagorinski_height = None
379-
pass
380370
return smagorinski_factor, smagorinski_height
381371

382372

model/atmosphere/diffusion/tests/diffusion/integration_tests/test_benchmark_diffusion.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,6 @@ def test_diffusion_benchmark(
6060
hdiff_w_efdt_ratio=15.0,
6161
smagorinski_scaling_factor=0.025,
6262
zdiffu_t=False,
63-
thslp_zdiffu=0.02,
64-
thhgtd_zdiffu=125.0,
6563
velocity_boundary_diffusion_denom=150.0,
6664
max_nudging_coefficient=0.375,
6765
n_substeps=5,

model/driver/src/icon4py/model/driver/icon4py_configuration.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,6 @@ def _mch_ch_r04b09_diffusion_config():
8181
hdiff_w_efdt_ratio=15.0,
8282
smagorinski_scaling_factor=0.025,
8383
zdiffu_t=True,
84-
thslp_zdiffu=0.02,
85-
thhgtd_zdiffu=125.0,
8684
velocity_boundary_diffusion_denom=150.0,
8785
max_nudging_coefficient=0.375,
8886
n_substeps=n_substeps_reduced,

model/testing/src/icon4py/model/testing/definitions.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,8 +279,6 @@ def construct_diffusion_config(
279279
hdiff_w_efdt_ratio=15.0,
280280
smagorinski_scaling_factor=0.025,
281281
zdiffu_t=True,
282-
thslp_zdiffu=0.02,
283-
thhgtd_zdiffu=125.0,
284282
velocity_boundary_diffusion_denom=150.0,
285283
max_nudging_coefficient=0.375,
286284
n_substeps=ndyn_substeps,

tools/src/icon4py/tools/py2fgen/wrappers/diffusion_wrapper.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,9 @@ def diffusion_init(
7878
type_t_diffu: gtx.int32,
7979
type_vn_diffu: gtx.int32,
8080
hdiff_efdt_ratio: gtx.float64,
81+
hdiff_w_efdt_ratio: gtx.float64,
8182
smagorinski_scaling_factor: gtx.float64,
8283
hdiff_temp: bool,
83-
thslp_zdiffu: float,
84-
thhgtd_zdiffu: float,
8584
denom_diffu_v: float,
8685
nudge_max_coeff: float, # note: this is the scaled ICON value, i.e. not the namelist value
8786
itype_sher: gtx.int32,
@@ -111,11 +110,10 @@ def diffusion_init(
111110
type_t_diffu=type_t_diffu,
112111
type_vn_diffu=type_vn_diffu,
113112
hdiff_efdt_ratio=hdiff_efdt_ratio,
113+
hdiff_w_efdt_ratio=hdiff_w_efdt_ratio,
114114
smagorinski_scaling_factor=smagorinski_scaling_factor,
115115
hdiff_temp=hdiff_temp,
116116
n_substeps=ndyn_substeps,
117-
thslp_zdiffu=thslp_zdiffu,
118-
thhgtd_zdiffu=thhgtd_zdiffu,
119117
velocity_boundary_diffusion_denom=denom_diffu_v,
120118
max_nudging_coefficient=nudge_max_coeff,
121119
shear_type=TurbulenceShearForcingType(itype_sher),

tools/tests/tools/py2fgen/wrappers/references/diffusion/diffusion.f90

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -152,10 +152,9 @@ function diffusion_init_wrapper(theta_ref_mc, &
152152
type_t_diffu, &
153153
type_vn_diffu, &
154154
hdiff_efdt_ratio, &
155+
hdiff_w_efdt_ratio, &
155156
smagorinski_scaling_factor, &
156157
hdiff_temp, &
157-
thslp_zdiffu, &
158-
thhgtd_zdiffu, &
159158
denom_diffu_v, &
160159
nudge_max_coeff, &
161160
itype_sher, &
@@ -263,14 +262,12 @@ function diffusion_init_wrapper(theta_ref_mc, &
263262

264263
real(c_double), value, target :: hdiff_efdt_ratio
265264

265+
real(c_double), value, target :: hdiff_w_efdt_ratio
266+
266267
real(c_double), value, target :: smagorinski_scaling_factor
267268

268269
logical(c_int), value, target :: hdiff_temp
269270

270-
real(c_double), value, target :: thslp_zdiffu
271-
272-
real(c_double), value, target :: thhgtd_zdiffu
273-
274271
real(c_double), value, target :: denom_diffu_v
275272

276273
real(c_double), value, target :: nudge_max_coeff
@@ -501,10 +498,9 @@ subroutine diffusion_init(theta_ref_mc, &
501498
type_t_diffu, &
502499
type_vn_diffu, &
503500
hdiff_efdt_ratio, &
501+
hdiff_w_efdt_ratio, &
504502
smagorinski_scaling_factor, &
505503
hdiff_temp, &
506-
thslp_zdiffu, &
507-
thhgtd_zdiffu, &
508504
denom_diffu_v, &
509505
nudge_max_coeff, &
510506
itype_sher, &
@@ -559,14 +555,12 @@ subroutine diffusion_init(theta_ref_mc, &
559555

560556
real(c_double), value, target :: hdiff_efdt_ratio
561557

558+
real(c_double), value, target :: hdiff_w_efdt_ratio
559+
562560
real(c_double), value, target :: smagorinski_scaling_factor
563561

564562
logical(c_int), value, target :: hdiff_temp
565563

566-
real(c_double), value, target :: thslp_zdiffu
567-
568-
real(c_double), value, target :: thhgtd_zdiffu
569-
570564
real(c_double), value, target :: denom_diffu_v
571565

572566
real(c_double), value, target :: nudge_max_coeff
@@ -772,10 +766,9 @@ subroutine diffusion_init(theta_ref_mc, &
772766
type_t_diffu=type_t_diffu, &
773767
type_vn_diffu=type_vn_diffu, &
774768
hdiff_efdt_ratio=hdiff_efdt_ratio, &
769+
hdiff_w_efdt_ratio=hdiff_w_efdt_ratio, &
775770
smagorinski_scaling_factor=smagorinski_scaling_factor, &
776771
hdiff_temp=hdiff_temp, &
777-
thslp_zdiffu=thslp_zdiffu, &
778-
thhgtd_zdiffu=thhgtd_zdiffu, &
779772
denom_diffu_v=denom_diffu_v, &
780773
nudge_max_coeff=nudge_max_coeff, &
781774
itype_sher=itype_sher, &

tools/tests/tools/py2fgen/wrappers/references/diffusion/diffusion.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ extern int diffusion_init_wrapper(
2222
int zd_intcoef_size_0, int zd_intcoef_size_1, double *zd_diffcoef,
2323
int zd_diffcoef_size_0, int ndyn_substeps, int diffusion_type, int hdiff_w,
2424
int hdiff_vn, int hdiff_smag_w, int zdiffu_t, int type_t_diffu,
25-
int type_vn_diffu, double hdiff_efdt_ratio,
26-
double smagorinski_scaling_factor, int hdiff_temp, double thslp_zdiffu,
27-
double thhgtd_zdiffu, double denom_diffu_v, double nudge_max_coeff,
28-
int itype_sher, int ltkeshs, int backend, int on_gpu);
25+
int type_vn_diffu, double hdiff_efdt_ratio, double hdiff_w_efdt_ratio,
26+
double smagorinski_scaling_factor, int hdiff_temp, double denom_diffu_v,
27+
double nudge_max_coeff, int itype_sher, int ltkeshs, int backend,
28+
int on_gpu);

tools/tests/tools/py2fgen/wrappers/references/diffusion/diffusion.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -391,10 +391,9 @@ def diffusion_init_wrapper(
391391
type_t_diffu,
392392
type_vn_diffu,
393393
hdiff_efdt_ratio,
394+
hdiff_w_efdt_ratio,
394395
smagorinski_scaling_factor,
395396
hdiff_temp,
396-
thslp_zdiffu,
397-
thhgtd_zdiffu,
398397
denom_diffu_v,
399398
nudge_max_coeff,
400399
itype_sher,
@@ -577,10 +576,9 @@ def diffusion_init_wrapper(
577576
type_t_diffu=type_t_diffu,
578577
type_vn_diffu=type_vn_diffu,
579578
hdiff_efdt_ratio=hdiff_efdt_ratio,
579+
hdiff_w_efdt_ratio=hdiff_w_efdt_ratio,
580580
smagorinski_scaling_factor=smagorinski_scaling_factor,
581581
hdiff_temp=hdiff_temp,
582-
thslp_zdiffu=thslp_zdiffu,
583-
thhgtd_zdiffu=thhgtd_zdiffu,
584582
denom_diffu_v=denom_diffu_v,
585583
nudge_max_coeff=nudge_max_coeff,
586584
itype_sher=itype_sher,

tools/tests/tools/py2fgen/wrappers/test_diffusion_wrapper.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,9 @@ def test_diffusion_wrapper_granule_inputs(
5858
type_t_diffu = diffusion.TemperatureDiscretizationType.HETEROGENEOUS
5959
type_vn_diffu = diffusion.SmagorinskyStencilType.DIAMOND_VERTICES
6060
hdiff_efdt_ratio = 24.0
61+
hdiff_w_efdt_ratio = 15.0
6162
smagorinski_scaling_factor = 0.025
6263
zdiffu_t = True
63-
thslp_zdiffu = 0.02
64-
thhgtd_zdiffu = 125.0
6564
denom_diffu_v = 150.0
6665
max_nudging_coefficient = 0.375
6766
itype_sher = (
@@ -174,10 +173,9 @@ def test_diffusion_wrapper_granule_inputs(
174173
type_t_diffu=type_t_diffu,
175174
type_vn_diffu=type_vn_diffu,
176175
hdiff_efdt_ratio=hdiff_efdt_ratio,
176+
hdiff_w_efdt_ratio=hdiff_w_efdt_ratio,
177177
smagorinski_scaling_factor=smagorinski_scaling_factor,
178178
hdiff_temp=hdiff_temp,
179-
thslp_zdiffu=thslp_zdiffu,
180-
thhgtd_zdiffu=thhgtd_zdiffu,
181179
denom_diffu_v=denom_diffu_v,
182180
nudge_max_coeff=max_nudging_coefficient,
183181
itype_sher=itype_sher.value,
@@ -289,10 +287,9 @@ def test_diffusion_wrapper_single_step(
289287
type_t_diffu = diffusion.TemperatureDiscretizationType.HETEROGENEOUS
290288
type_vn_diffu = diffusion.SmagorinskyStencilType.DIAMOND_VERTICES
291289
hdiff_efdt_ratio = 24.0
290+
hdiff_w_efdt_ratio = 15.0
292291
smagorinski_scaling_factor = 0.025
293292
zdiffu_t = True
294-
thslp_zdiffu = 0.02
295-
thhgtd_zdiffu = 125.0
296293
denom_diffu_v = 150.0
297294
max_nudging_coefficient = 0.375
298295
itype_sher = (
@@ -373,10 +370,9 @@ def test_diffusion_wrapper_single_step(
373370
type_t_diffu=type_t_diffu,
374371
type_vn_diffu=type_vn_diffu,
375372
hdiff_efdt_ratio=hdiff_efdt_ratio,
373+
hdiff_w_efdt_ratio=hdiff_w_efdt_ratio,
376374
smagorinski_scaling_factor=smagorinski_scaling_factor,
377375
hdiff_temp=hdiff_temp,
378-
thslp_zdiffu=thslp_zdiffu,
379-
thhgtd_zdiffu=thhgtd_zdiffu,
380376
denom_diffu_v=denom_diffu_v,
381377
nudge_max_coeff=max_nudging_coefficient,
382378
itype_sher=itype_sher.value,

0 commit comments

Comments
 (0)