Skip to content

Commit de722d6

Browse files
modefiy source/solifluction.py to consider firts draft of type hint
modify test/model_test.py to neat code script for tests test_momentum_ux test_second_derivatives_in_y and test_mass_conservation_2D_vof The reminde test should be neated
1 parent 7b565f4 commit de722d6

2 files changed

Lines changed: 113 additions & 1452 deletions

File tree

source/solifluction.py

Lines changed: 39 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -2,65 +2,64 @@
22
import os
33
import os.path
44
import sys
5+
from typing import Any
56

67
import docopt
78
import lue.framework as lfr
89
import numpy as np
910
from osgeo import gdal
1011

12+
from source.derivatives_discretization import second_derivatives_in_y
13+
from source.heat_transfer import compute_temperature_1D_in_y
1114
from source.io_data_process import (
1215
convert_numpy_to_lue,
1316
create_zero_numpy_array,
1417
default_boundary_type,
1518
read_run_setup,
1619
)
1720
from source.layer import Layer
21+
from source.momentum import momentum_ux
1822
from source.vof import h_mesh_assign
1923

20-
from source.derivatives_discretization import second_derivatives_in_y
21-
from source.heat_transfer import compute_temperature_1D_in_y
2224
# from source.boundary_condition import boundary_set
2325

24-
from source.momentum import momentum_ux
25-
2626

2727
# from input_output import write
2828

2929

30-
@lfr.runtime_scope
30+
@lfr.runtime_scope # type: ignore[misc]
3131
def solifluction_simulate(
32-
dx,
33-
dz,
34-
num_cols,
35-
num_rows,
36-
num_layers,
37-
initial_layer_variables,
38-
h_total_initial,
39-
dt_momentum,
40-
dt_heat_transfer,
41-
time_end_simulation,
42-
heat_transfer_warmup,
43-
heat_transfer_warmup_iteration,
44-
T_bed,
45-
T_surface,
46-
d2u_x_dy2_initial,
47-
dt,
48-
h_mesh_step_value,
49-
nu_x,
50-
nu_z,
51-
partition_shape,
52-
results_pathname,
53-
):
54-
55-
array_shape = (num_rows, num_cols)
56-
zero_lue = lfr.create_array(
32+
dx: float,
33+
dz: float,
34+
num_cols: int,
35+
num_rows: int,
36+
num_layers: int,
37+
initial_layer_variables: Layer,
38+
h_total_initial: Any,
39+
dt_momentum: float,
40+
dt_heat_transfer: float,
41+
time_end_simulation: float,
42+
heat_transfer_warmup: bool,
43+
heat_transfer_warmup_iteration: int,
44+
T_bed: Any,
45+
T_surface: Any,
46+
d2u_x_dy2_initial: Any,
47+
h_mesh_step_value: float,
48+
nu_x: float,
49+
nu_z: float,
50+
partition_shape: tuple[int, int],
51+
results_pathname: str,
52+
) -> None:
53+
54+
array_shape: tuple[int, int] = (num_rows, num_cols)
55+
zero_lue: Any = lfr.create_array(
5756
array_shape,
5857
dtype=np.float64,
5958
fill_value=0.0,
6059
partition_shape=partition_shape,
6160
)
6261

63-
layer_list = []
62+
layer_list: list[Layer] = []
6463

6564
# Assign bed layer properties
6665
layer_list.append(initial_layer_variables)
@@ -133,7 +132,7 @@ def solifluction_simulate(
133132
layer_list[layer_id].T,
134133
layer_list[layer_id + 1].T,
135134
layer_list[layer_id - 1].T,
136-
dt,
135+
dt_heat_transfer,
137136
layer_list[layer_id].h_mesh,
138137
layer_list[layer_id - 1].h_mesh,
139138
compute_flag,
@@ -147,7 +146,6 @@ def solifluction_simulate(
147146

148147
d2u_x_dy2 = d2u_x_dy2_initial
149148

150-
151149
dt_mass_conservation: float = dt_momentum
152150

153151
dt_min = min(dt_momentum, dt_heat_transfer)
@@ -160,9 +158,10 @@ def solifluction_simulate(
160158

161159
for layer_id in range(1, num_layers):
162160

163-
rhs = g_sin + ((layer_list[layer_id].mu_soil /
164-
layer_list[layer_id].density_soil)
165-
* d2u_x_dy2[layer_id])
161+
rhs = g_sin + (
162+
(layer_list[layer_id].mu_soil / layer_list[layer_id].density_soil)
163+
* d2u_x_dy2[layer_id]
164+
)
166165

167166
layer_list[layer_id].u_x = momentum_ux(
168167
layer_list[layer_id].u_x,
@@ -290,7 +289,7 @@ def main():
290289
dt_momentum: float = input_variables["time_step_momentum"]
291290
dt_heat_transfer: float = input_variables["time_step_heat_transfer"]
292291
dt_mass_conservation: float = input_variables["time_step_mass_conservation"]
293-
partition_shape: int = input_variables["partition_shape"]
292+
partition_shape_size: int = input_variables["partition_shape_size"]
294293
h_mesh_step_value: float = input_variables["initial_layer_size"]
295294
mu_value: float = input_variables["uniform_mu"]
296295
density_value: float = input_variables["uniform_density"]
@@ -301,7 +300,7 @@ def main():
301300
dt_heat_transfer: float = input_variables["dt_heat_transfer"]
302301
time_end_simulation: float = input_variables["time_end_simulation"]
303302

304-
heat_transfer_warmup: bool = input_variables.get("heat_transfer_warmup", True)
303+
heat_transfer_warmup: bool = input_variables.get("heat_transfer_warmup", False)
305304
heat_transfer_warmup_iteration: int = input_variables.get(
306305
"heat_transfer_warmup_iteration", 200
307306
)
@@ -334,7 +333,7 @@ def main():
334333
num_rows,
335334
num_cols,
336335
)
337-
partition_shape = 2 * (partition_shape,)
336+
partition_shape: tuple[int, int] = 2 * (partition_shape_size,)
338337

339338
bed_depth_elevation = 0 # it can be any value
340339

@@ -382,7 +381,7 @@ def main():
382381
)
383382

384383
T_bed = zero_array_lue
385-
T_surface =
384+
# T_surface =
386385

387386
initial_u_x = zero_array_lue
388387
initial_u_z = zero_array_lue

0 commit comments

Comments
 (0)