paddle 1.2.0__tar.gz → 1.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {paddle-1.2.0 → paddle-1.2.1}/.bumpversion.cfg +1 -1
- {paddle-1.2.0 → paddle-1.2.1}/.gitignore +3 -0
- {paddle-1.2.0 → paddle-1.2.1}/PKG-INFO +2 -2
- paddle-1.2.1/example_py_scripts/jupiter_crm.yaml +198 -0
- paddle-1.2.1/example_py_scripts/jupiter_crm_dry.yaml +92 -0
- paddle-1.2.1/example_py_scripts/jupiter_gcm.yaml +195 -0
- paddle-1.2.1/example_py_scripts/jupiter_gcm_dry.yaml +89 -0
- {paddle-1.2.0 → paddle-1.2.1}/example_py_scripts/robert.py +6 -7
- {paddle-1.2.0 → paddle-1.2.1}/example_py_scripts/robert.yaml +3 -1
- paddle-1.2.1/example_py_scripts/run_hydro.py +101 -0
- {paddle-1.2.0 → paddle-1.2.1}/example_py_scripts/saturn1d.yaml +1 -1
- paddle-1.2.1/example_py_scripts/shallow_splash.py +79 -0
- paddle-1.2.1/example_py_scripts/shallow_splash.yaml +61 -0
- paddle-1.2.1/example_py_scripts/shallow_yz.py +69 -0
- paddle-1.2.1/example_py_scripts/shallow_yz.yaml +49 -0
- {paddle-1.2.0 → paddle-1.2.1}/example_py_scripts/straka.py +4 -9
- {paddle-1.2.0 → paddle-1.2.1}/example_py_scripts/straka.yaml +5 -12
- {paddle-1.2.0 → paddle-1.2.1}/example_py_scripts/test_saturn_adiabat.py +9 -15
- {paddle-1.2.0 → paddle-1.2.1}/paddle/__init__.py +1 -1
- paddle-1.2.1/paddle/cubed_sphere_ui.py +63 -0
- paddle-1.2.1/paddle/cubed_sphere_utils.py +356 -0
- {paddle-1.2.0 → paddle-1.2.1}/paddle/evolve_kinetics.py +24 -8
- {paddle-1.2.0 → paddle-1.2.1}/paddle/find_init_params.py +1 -1
- paddle-1.2.1/paddle/plot_cubed_sphere_panel.py +21 -0
- {paddle-1.2.0 → paddle-1.2.1}/paddle/setup_profile.py +17 -12
- {paddle-1.2.0 → paddle-1.2.1}/paddle/write_profile.py +3 -3
- {paddle-1.2.0 → paddle-1.2.1}/pyproject.toml +2 -2
- {paddle-1.2.0 → paddle-1.2.1}/.github/workflows/cd.yml +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/.github/workflows/ci.yml +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/.pre-commit-config.yaml +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/LICENSE +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/Makefile +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/README.md +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker/.dockerignore +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker/Dockerfile +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker/Dockerfile.cuda +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker/entrypoint.sh +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker/nvim/init.lua +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker/nvim/lua/plugins.lua +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker/requirements.txt +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker/scripts/git-done +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker/scripts/git-send +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker-compose.override.yaml.tmp +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docker-compose.yaml +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docs/_static/readme-attach.png +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docs/_static/readme-extension.png +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docs/_static/readme-open-folder.png +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docs/_static/temp_paddle.jpg +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/docs/content/notebooks/Tutorial-1-SaturnAdiabat.ipynb +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/example_py_scripts/.gitignore +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/example_py_scripts/shock.py +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/example_py_scripts/shock.yaml +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/paddle/crm.py +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/paddle/example_save.py +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/paddle/nc2pt.py +0 -0
- {paddle-1.2.0 → paddle-1.2.1}/paddle/pt2nc.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: paddle
|
|
3
|
-
Version: 1.2.
|
|
3
|
+
Version: 1.2.1
|
|
4
4
|
Summary: Python Atmospheric Dynamics: Discovery and Learning about Exoplanets. An open-source, user-friendly python frontend of canoe
|
|
5
5
|
Project-URL: Homepage, https://github.com/elijah-mullens/paddle
|
|
6
6
|
Project-URL: Repository, https://github.com/elijah-mullens/paddle
|
|
@@ -23,7 +23,7 @@ Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
|
|
|
23
23
|
Classifier: Topic :: Scientific/Engineering :: Physics
|
|
24
24
|
Requires-Python: >=3.9
|
|
25
25
|
Requires-Dist: scipy
|
|
26
|
-
Requires-Dist: snapy>=1.
|
|
26
|
+
Requires-Dist: snapy>=1.1.5
|
|
27
27
|
Requires-Dist: torch<=2.7.1,>=2.7.0
|
|
28
28
|
Provides-Extra: dev
|
|
29
29
|
Requires-Dist: pytest>=7; extra == 'dev'
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
reference-state:
|
|
2
|
+
Tref: 0.
|
|
3
|
+
Pref: 1.e5
|
|
4
|
+
|
|
5
|
+
species:
|
|
6
|
+
- name: dry
|
|
7
|
+
composition: {H: 1.5, He: 0.15}
|
|
8
|
+
cv_R: 2.5
|
|
9
|
+
|
|
10
|
+
- name: H2O
|
|
11
|
+
composition: {H: 2, O: 1}
|
|
12
|
+
cv_R: 2.5
|
|
13
|
+
u0_R: 0.
|
|
14
|
+
|
|
15
|
+
- name: NH3
|
|
16
|
+
composition: {H: 2, O: 1}
|
|
17
|
+
cv_R: 2.5
|
|
18
|
+
u0_R: 0.
|
|
19
|
+
|
|
20
|
+
- name: H2S
|
|
21
|
+
composition: {H: 2, S: 1}
|
|
22
|
+
cv_R: 2.5
|
|
23
|
+
u0_R: 0.
|
|
24
|
+
|
|
25
|
+
- name: H2O(l)
|
|
26
|
+
composition: {H: 2, O: 1}
|
|
27
|
+
cv_R: 9.0
|
|
28
|
+
u0_R: -3430.
|
|
29
|
+
|
|
30
|
+
- name: H2O(l,p)
|
|
31
|
+
composition: {H: 2, O: 1}
|
|
32
|
+
cv_R: 9.0
|
|
33
|
+
u0_R: -3430.
|
|
34
|
+
|
|
35
|
+
- name: NH3(s)
|
|
36
|
+
composition: {N: 1, H: 3}
|
|
37
|
+
cv_R: 9.0
|
|
38
|
+
u0_R: -5520.
|
|
39
|
+
|
|
40
|
+
- name: NH3(s,p)
|
|
41
|
+
composition: {N: 1, H: 3}
|
|
42
|
+
cv_R: 9.0
|
|
43
|
+
u0_R: -5520.
|
|
44
|
+
|
|
45
|
+
- name: NH4SH(s)
|
|
46
|
+
composition: {N: 1, H: 5, S: 1}
|
|
47
|
+
cv_R: 9.0
|
|
48
|
+
u0_R: -1.2e4
|
|
49
|
+
|
|
50
|
+
- name: NH4SH(s,p)
|
|
51
|
+
composition: {N: 1, H: 5, S: 1}
|
|
52
|
+
cv_R: 9.0
|
|
53
|
+
u0_R: -1.2e4
|
|
54
|
+
|
|
55
|
+
geometry:
|
|
56
|
+
type: cartesian
|
|
57
|
+
|
|
58
|
+
bounds:
|
|
59
|
+
x1min: 0.
|
|
60
|
+
x1max: 300.e3
|
|
61
|
+
x2min: 0.
|
|
62
|
+
x2max: 2400.e3
|
|
63
|
+
x3min: 0.
|
|
64
|
+
x3max: 2400.e3
|
|
65
|
+
|
|
66
|
+
cells:
|
|
67
|
+
nx1: 100
|
|
68
|
+
nx2: 100
|
|
69
|
+
nx3: 100
|
|
70
|
+
nghost: 3
|
|
71
|
+
|
|
72
|
+
distribute:
|
|
73
|
+
backend: gloo
|
|
74
|
+
layout: slab
|
|
75
|
+
nb2: 2
|
|
76
|
+
nb3: 2
|
|
77
|
+
verbose: false
|
|
78
|
+
|
|
79
|
+
dynamics:
|
|
80
|
+
equation-of-state:
|
|
81
|
+
type: ideal-moist
|
|
82
|
+
density-floor: 1.e-10
|
|
83
|
+
pressure-floor: 1.e-10
|
|
84
|
+
tracer-floor: 1.e-10
|
|
85
|
+
limiter: true
|
|
86
|
+
max-iter: 20
|
|
87
|
+
ftol: 1.e-6
|
|
88
|
+
|
|
89
|
+
vertical-projection:
|
|
90
|
+
type: temperature
|
|
91
|
+
pressure-margin: 1.e-6
|
|
92
|
+
|
|
93
|
+
reconstruct:
|
|
94
|
+
vertical: {type: weno5, scale: true, shock: true}
|
|
95
|
+
horizontal: {type: weno5, scale: true, shock: true}
|
|
96
|
+
|
|
97
|
+
riemann-solver:
|
|
98
|
+
type: hllc
|
|
99
|
+
|
|
100
|
+
boundary-condition:
|
|
101
|
+
external:
|
|
102
|
+
x1-inner: reflecting
|
|
103
|
+
x1-outer: reflecting
|
|
104
|
+
x2-inner: reflecting
|
|
105
|
+
x2-outer: reflecting
|
|
106
|
+
x3-inner: reflecting
|
|
107
|
+
x3-outer: reflecting
|
|
108
|
+
|
|
109
|
+
integration:
|
|
110
|
+
type: rk3
|
|
111
|
+
cfl: 0.45
|
|
112
|
+
implicit-scheme: 1
|
|
113
|
+
nlim: -1
|
|
114
|
+
tlim: 100.e5
|
|
115
|
+
ncycle_out: 1
|
|
116
|
+
|
|
117
|
+
outputs:
|
|
118
|
+
- type: restart
|
|
119
|
+
dt: 1.E5
|
|
120
|
+
- type: netcdf
|
|
121
|
+
variables: [prim, uov]
|
|
122
|
+
dt: 1.E3
|
|
123
|
+
- type: netcdf
|
|
124
|
+
variables: [thermo, path]
|
|
125
|
+
dt: 1.E3
|
|
126
|
+
|
|
127
|
+
forcing:
|
|
128
|
+
const-gravity:
|
|
129
|
+
grav1: -22.
|
|
130
|
+
|
|
131
|
+
top-cool:
|
|
132
|
+
flux: -100.
|
|
133
|
+
depth: 5
|
|
134
|
+
|
|
135
|
+
bot-heat:
|
|
136
|
+
flux: 100
|
|
137
|
+
depth: 5
|
|
138
|
+
|
|
139
|
+
sedimentation:
|
|
140
|
+
radius:
|
|
141
|
+
H2O(l,p): 1.0e-10
|
|
142
|
+
NH3(s,p): 1.0e-10
|
|
143
|
+
NH4SH(s,p): 1.0e-10
|
|
144
|
+
|
|
145
|
+
density:
|
|
146
|
+
H2O(l,p): 1000.
|
|
147
|
+
NH3(s,p): 800.
|
|
148
|
+
NH4SH(s,p): 1500.
|
|
149
|
+
|
|
150
|
+
const-vsed:
|
|
151
|
+
H2O(l,p): -20.0
|
|
152
|
+
NH3(s,p): -20.0
|
|
153
|
+
NH4SH(s,p): -20.0
|
|
154
|
+
|
|
155
|
+
reactions:
|
|
156
|
+
- equation: H2O => H2O(l)
|
|
157
|
+
type: nucleation
|
|
158
|
+
rate-constant: {formula: h2o_ideal}
|
|
159
|
+
|
|
160
|
+
- equation: H2O(l) => H2O(l,p)
|
|
161
|
+
type: coagulation
|
|
162
|
+
rate-constant: {A: 0.001, b: 0, Ea_R: 0.}
|
|
163
|
+
|
|
164
|
+
- equation: H2O(l,p) => H2O
|
|
165
|
+
type: evaporation
|
|
166
|
+
rate-constant: {formula: h2o_ideal, diff_c: 0.2e-4, diff_T: 0., diff_P: 0., vm: 18.e-6, diameter: 1.0e-4}
|
|
167
|
+
|
|
168
|
+
- equation: NH3 => NH3(s)
|
|
169
|
+
type: nucleation
|
|
170
|
+
rate-constant: {formula: nh3_ideal}
|
|
171
|
+
|
|
172
|
+
- equation: NH3(s) => NH3(s,p)
|
|
173
|
+
type: coagulation
|
|
174
|
+
rate-constant: {A: 0.001, b: 0, Ea_R: 2.}
|
|
175
|
+
|
|
176
|
+
- equation: NH3(s,p) => NH3
|
|
177
|
+
type: evaporation
|
|
178
|
+
rate-constant: {formula: nh3_ideal, diff_c: 0.2e-4, diff_T: 0., diff_P: 0., vm: 18.e-6, diameter: 1.0e-4}
|
|
179
|
+
|
|
180
|
+
- equation: NH3 + H2S <=> NH4SH(s)
|
|
181
|
+
type: nucleation
|
|
182
|
+
rate-constant: {formula: nh3_h2s_lewis}
|
|
183
|
+
|
|
184
|
+
- equation: NH4SH(s) => NH4SH(s,p)
|
|
185
|
+
type: coagulation
|
|
186
|
+
rate-constant: {A: 0.001, b: 0, Ea_R: 0.}
|
|
187
|
+
|
|
188
|
+
- equation: NH4SH(s,p) => NH3 + H2S
|
|
189
|
+
type: evaporation
|
|
190
|
+
rate-constant: {formula: nh3_h2s_lewis, diff_c: 0.2e-4, diff_T: 0., diff_P: 0., vm: 18.e-6, diameter: 1.0e-4}
|
|
191
|
+
|
|
192
|
+
problem:
|
|
193
|
+
Ps: 100.e5
|
|
194
|
+
Ts: 600.
|
|
195
|
+
Tmin: 110.
|
|
196
|
+
xH2O: 3.e-3
|
|
197
|
+
xNH3: 3.2e-4
|
|
198
|
+
xH2S: 1.e-5
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
reference-state:
|
|
2
|
+
Tref: 0.
|
|
3
|
+
Pref: 1.e5
|
|
4
|
+
|
|
5
|
+
species:
|
|
6
|
+
- name: dry
|
|
7
|
+
composition: {H: 1.5, He: 0.15}
|
|
8
|
+
cv_R: 2.5
|
|
9
|
+
|
|
10
|
+
geometry:
|
|
11
|
+
type: cartesian
|
|
12
|
+
|
|
13
|
+
bounds:
|
|
14
|
+
x1min: 0.
|
|
15
|
+
x1max: 300.e3
|
|
16
|
+
x2min: 0.
|
|
17
|
+
x2max: 2400.e3
|
|
18
|
+
x3min: 0.
|
|
19
|
+
x3max: 2400.e3
|
|
20
|
+
|
|
21
|
+
cells:
|
|
22
|
+
nx1: 100
|
|
23
|
+
nx2: 200
|
|
24
|
+
nx3: 200
|
|
25
|
+
nghost: 3
|
|
26
|
+
|
|
27
|
+
distribute:
|
|
28
|
+
backend: gloo
|
|
29
|
+
layout: slab
|
|
30
|
+
nb2: 2
|
|
31
|
+
nb3: 2
|
|
32
|
+
verbose: false
|
|
33
|
+
|
|
34
|
+
dynamics:
|
|
35
|
+
equation-of-state:
|
|
36
|
+
type: ideal-moist
|
|
37
|
+
density-floor: 1.e-10
|
|
38
|
+
pressure-floor: 1.e-10
|
|
39
|
+
tracer-floor: 1.e-10
|
|
40
|
+
limiter: true
|
|
41
|
+
max-iter: 10
|
|
42
|
+
ftol: 1.e-6
|
|
43
|
+
|
|
44
|
+
vertical-projection:
|
|
45
|
+
type: temperature
|
|
46
|
+
pressure-margin: 1.e-6
|
|
47
|
+
|
|
48
|
+
reconstruct:
|
|
49
|
+
vertical: {type: weno5, scale: true, shock: true}
|
|
50
|
+
horizontal: {type: weno5, scale: true, shock: true}
|
|
51
|
+
|
|
52
|
+
riemann-solver:
|
|
53
|
+
type: hllc
|
|
54
|
+
|
|
55
|
+
boundary-condition:
|
|
56
|
+
external:
|
|
57
|
+
x1-inner: reflecting
|
|
58
|
+
x1-outer: reflecting
|
|
59
|
+
x2-inner: periodic
|
|
60
|
+
x2-outer: periodic
|
|
61
|
+
x3-inner: periodic
|
|
62
|
+
x3-outer: periodic
|
|
63
|
+
|
|
64
|
+
integration:
|
|
65
|
+
type: rk3
|
|
66
|
+
cfl: 0.45
|
|
67
|
+
implicit-scheme: 1
|
|
68
|
+
nlim: -1
|
|
69
|
+
tlim: 100.e5
|
|
70
|
+
ncycle_out: 1
|
|
71
|
+
|
|
72
|
+
outputs:
|
|
73
|
+
- type: restart
|
|
74
|
+
dt: 10.E5
|
|
75
|
+
- type: netcdf
|
|
76
|
+
variables: [prim]
|
|
77
|
+
dt: 1.E4
|
|
78
|
+
- type: netcdf
|
|
79
|
+
variables: [thermo]
|
|
80
|
+
dt: 1.E4
|
|
81
|
+
|
|
82
|
+
forcing:
|
|
83
|
+
const-gravity:
|
|
84
|
+
grav1: -22.
|
|
85
|
+
|
|
86
|
+
problem:
|
|
87
|
+
Ps: 100.e5
|
|
88
|
+
Ts: 600.
|
|
89
|
+
Tmin: 110.
|
|
90
|
+
xH2O: 3.e-3
|
|
91
|
+
xNH3: 3.2e-4
|
|
92
|
+
xH2S: 1.e-5
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
reference-state:
|
|
2
|
+
Tref: 0.
|
|
3
|
+
Pref: 1.e5
|
|
4
|
+
|
|
5
|
+
species:
|
|
6
|
+
- name: dry
|
|
7
|
+
composition: {H: 1.5, He: 0.15}
|
|
8
|
+
cv_R: 2.5
|
|
9
|
+
|
|
10
|
+
- name: H2O
|
|
11
|
+
composition: {H: 2, O: 1}
|
|
12
|
+
cv_R: 2.5
|
|
13
|
+
u0_R: 0.
|
|
14
|
+
|
|
15
|
+
- name: NH3
|
|
16
|
+
composition: {H: 2, O: 1}
|
|
17
|
+
cv_R: 2.5
|
|
18
|
+
u0_R: 0.
|
|
19
|
+
|
|
20
|
+
- name: H2S
|
|
21
|
+
composition: {H: 2, S: 1}
|
|
22
|
+
cv_R: 2.5
|
|
23
|
+
u0_R: 0.
|
|
24
|
+
|
|
25
|
+
- name: H2O(l)
|
|
26
|
+
composition: {H: 2, O: 1}
|
|
27
|
+
cv_R: 9.0
|
|
28
|
+
u0_R: -3430.
|
|
29
|
+
|
|
30
|
+
- name: H2O(l,p)
|
|
31
|
+
composition: {H: 2, O: 1}
|
|
32
|
+
cv_R: 9.0
|
|
33
|
+
u0_R: -3430.
|
|
34
|
+
|
|
35
|
+
- name: NH3(s)
|
|
36
|
+
composition: {N: 1, H: 3}
|
|
37
|
+
cv_R: 9.0
|
|
38
|
+
u0_R: -5520.
|
|
39
|
+
|
|
40
|
+
- name: NH3(s,p)
|
|
41
|
+
composition: {N: 1, H: 3}
|
|
42
|
+
cv_R: 9.0
|
|
43
|
+
u0_R: -5520.
|
|
44
|
+
|
|
45
|
+
- name: NH4SH(s)
|
|
46
|
+
composition: {N: 1, H: 5, S: 1}
|
|
47
|
+
cv_R: 9.0
|
|
48
|
+
u0_R: -1.2e4
|
|
49
|
+
|
|
50
|
+
- name: NH4SH(s,p)
|
|
51
|
+
composition: {N: 1, H: 5, S: 1}
|
|
52
|
+
cv_R: 9.0
|
|
53
|
+
u0_R: -1.2e4
|
|
54
|
+
|
|
55
|
+
geometry:
|
|
56
|
+
type: gnomonic-equiangle
|
|
57
|
+
|
|
58
|
+
bounds:
|
|
59
|
+
x1min: 69911000
|
|
60
|
+
x1max: 70211000
|
|
61
|
+
x2min_pi: -0.25
|
|
62
|
+
x2max_pi: 0.25
|
|
63
|
+
x3min_pi: -0.25
|
|
64
|
+
x3max_pi: 0.25
|
|
65
|
+
|
|
66
|
+
cells:
|
|
67
|
+
nx1: 100
|
|
68
|
+
nx2: 48
|
|
69
|
+
nx3: 48
|
|
70
|
+
nghost: 3
|
|
71
|
+
|
|
72
|
+
distribute:
|
|
73
|
+
backend: gloo
|
|
74
|
+
layout: cubed-sphere
|
|
75
|
+
nb2: 1
|
|
76
|
+
nb3: 1
|
|
77
|
+
verbose: false
|
|
78
|
+
|
|
79
|
+
dynamics:
|
|
80
|
+
equation-of-state:
|
|
81
|
+
type: ideal-moist
|
|
82
|
+
density-floor: 1.e-10
|
|
83
|
+
pressure-floor: 1.e-10
|
|
84
|
+
tracer-floor: 1.e-10
|
|
85
|
+
limiter: true
|
|
86
|
+
max-iter: 40
|
|
87
|
+
ftol: 1.e-6
|
|
88
|
+
|
|
89
|
+
vertical-projection:
|
|
90
|
+
type: temperature
|
|
91
|
+
pressure-margin: 1.e-6
|
|
92
|
+
|
|
93
|
+
reconstruct:
|
|
94
|
+
vertical: {type: weno5, scale: true, shock: true}
|
|
95
|
+
horizontal: {type: weno5, scale: true, shock: true}
|
|
96
|
+
|
|
97
|
+
riemann-solver:
|
|
98
|
+
type: hllc
|
|
99
|
+
|
|
100
|
+
boundary-condition:
|
|
101
|
+
internal:
|
|
102
|
+
solid-density: 1.e3
|
|
103
|
+
solid-pressure: 1.e9
|
|
104
|
+
max-iter: 5
|
|
105
|
+
|
|
106
|
+
external:
|
|
107
|
+
x1-inner: reflecting
|
|
108
|
+
x1-outer: reflecting
|
|
109
|
+
x2-inner: custom
|
|
110
|
+
x2-outer: custom
|
|
111
|
+
x3-inner: custom
|
|
112
|
+
x3-outer: custom
|
|
113
|
+
|
|
114
|
+
integration:
|
|
115
|
+
type: rk3
|
|
116
|
+
cfl: 0.45
|
|
117
|
+
implicit-scheme: 9
|
|
118
|
+
nlim: -1
|
|
119
|
+
tlim: 100.e5
|
|
120
|
+
ncycle_out: 1
|
|
121
|
+
|
|
122
|
+
outputs:
|
|
123
|
+
- type: restart
|
|
124
|
+
dt: 10.E5
|
|
125
|
+
- type: netcdf
|
|
126
|
+
variables: [prim, uov]
|
|
127
|
+
dt: 1.e4
|
|
128
|
+
- type: netcdf
|
|
129
|
+
variables: [thermo]
|
|
130
|
+
dt: 1.e4
|
|
131
|
+
|
|
132
|
+
forcing:
|
|
133
|
+
const-gravity:
|
|
134
|
+
grav1: -22.
|
|
135
|
+
|
|
136
|
+
sedimentation:
|
|
137
|
+
radius:
|
|
138
|
+
H2O(l,p): 1.0e-10
|
|
139
|
+
NH3(s,p): 1.0e-10
|
|
140
|
+
NH4SH(s,p): 1.0e-10
|
|
141
|
+
|
|
142
|
+
density:
|
|
143
|
+
H2O(l,p): 1000.
|
|
144
|
+
NH3(s,p): 800.
|
|
145
|
+
NH4SH(s,p): 1500.
|
|
146
|
+
|
|
147
|
+
const-vsed:
|
|
148
|
+
H2O(l,p): -2.0
|
|
149
|
+
NH3(s,p): -2.0
|
|
150
|
+
NH4SH(s,p): -2.0
|
|
151
|
+
|
|
152
|
+
reactions:
|
|
153
|
+
- equation: H2O => H2O(l)
|
|
154
|
+
type: nucleation
|
|
155
|
+
rate-constant: {formula: h2o_ideal}
|
|
156
|
+
|
|
157
|
+
- equation: H2O(l) => H2O(l,p)
|
|
158
|
+
type: coagulation
|
|
159
|
+
rate-constant: {A: 0.01, b: 0, Ea_R: 0.}
|
|
160
|
+
|
|
161
|
+
- equation: H2O(l,p) => H2O
|
|
162
|
+
type: evaporation
|
|
163
|
+
rate-constant: {formula: h2o_ideal, diff_c: 0.2e-4, diff_T: 0., diff_P: 0., vm: 18.e-6, diameter: 1.0e-4}
|
|
164
|
+
|
|
165
|
+
- equation: NH3 => NH3(s)
|
|
166
|
+
type: nucleation
|
|
167
|
+
rate-constant: {formula: nh3_ideal}
|
|
168
|
+
|
|
169
|
+
- equation: NH3(s) => NH3(s,p)
|
|
170
|
+
type: coagulation
|
|
171
|
+
rate-constant: {A: 0.01, b: 0, Ea_R: 2.}
|
|
172
|
+
|
|
173
|
+
- equation: NH3(s,p) => NH3
|
|
174
|
+
type: evaporation
|
|
175
|
+
rate-constant: {formula: nh3_ideal, diff_c: 0.2e-4, diff_T: 0., diff_P: 0., vm: 18.e-6, diameter: 1.0e-4}
|
|
176
|
+
|
|
177
|
+
- equation: NH3 + H2S <=> NH4SH(s)
|
|
178
|
+
type: nucleation
|
|
179
|
+
rate-constant: {formula: nh3_h2s_lewis}
|
|
180
|
+
|
|
181
|
+
- equation: NH4SH(s) => NH4SH(s,p)
|
|
182
|
+
type: coagulation
|
|
183
|
+
rate-constant: {A: 0.01, b: 0, Ea_R: 0.}
|
|
184
|
+
|
|
185
|
+
- equation: NH4SH(s,p) => NH3 + H2S
|
|
186
|
+
type: evaporation
|
|
187
|
+
rate-constant: {formula: nh3_h2s_lewis, diff_c: 0.2e-4, diff_T: 0., diff_P: 0., vm: 18.e-6, diameter: 1.0e-4}
|
|
188
|
+
|
|
189
|
+
problem:
|
|
190
|
+
Ps: 100.e5
|
|
191
|
+
Ts: 600.
|
|
192
|
+
Tmin: 110.
|
|
193
|
+
xH2O: 3.e-3
|
|
194
|
+
xNH3: 3.2e-4
|
|
195
|
+
xH2S: 1.e-5
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
reference-state:
|
|
2
|
+
Tref: 0.
|
|
3
|
+
Pref: 1.e5
|
|
4
|
+
|
|
5
|
+
species:
|
|
6
|
+
- name: dry
|
|
7
|
+
composition: {H: 1.5, He: 0.15}
|
|
8
|
+
cv_R: 2.5
|
|
9
|
+
|
|
10
|
+
geometry:
|
|
11
|
+
type: gnomonic-equiangle
|
|
12
|
+
|
|
13
|
+
bounds:
|
|
14
|
+
x1min: 69911000
|
|
15
|
+
x1max: 70211000
|
|
16
|
+
x2min_pi: -0.25
|
|
17
|
+
x2max_pi: 0.25
|
|
18
|
+
x3min_pi: -0.25
|
|
19
|
+
x3max_pi: 0.25
|
|
20
|
+
|
|
21
|
+
cells:
|
|
22
|
+
nx1: 100
|
|
23
|
+
nx2: 48
|
|
24
|
+
nx3: 48
|
|
25
|
+
nghost: 3
|
|
26
|
+
|
|
27
|
+
distribute:
|
|
28
|
+
backend: gloo
|
|
29
|
+
layout: cubed-sphere
|
|
30
|
+
nb2: 1
|
|
31
|
+
nb3: 1
|
|
32
|
+
verbose: false
|
|
33
|
+
|
|
34
|
+
dynamics:
|
|
35
|
+
equation-of-state:
|
|
36
|
+
type: ideal-moist
|
|
37
|
+
density-floor: 1.e-10
|
|
38
|
+
pressure-floor: 1.e-10
|
|
39
|
+
tracer-floor: 1.e-10
|
|
40
|
+
limiter: true
|
|
41
|
+
max-iter: 10
|
|
42
|
+
ftol: 1.e-6
|
|
43
|
+
|
|
44
|
+
vertical-projection:
|
|
45
|
+
type: temperature
|
|
46
|
+
pressure-margin: 1.e-6
|
|
47
|
+
|
|
48
|
+
reconstruct:
|
|
49
|
+
vertical: {type: weno5, scale: true, shock: true}
|
|
50
|
+
horizontal: {type: weno5, scale: true, shock: true}
|
|
51
|
+
|
|
52
|
+
riemann-solver:
|
|
53
|
+
type: hllc
|
|
54
|
+
|
|
55
|
+
boundary-condition:
|
|
56
|
+
external:
|
|
57
|
+
x1-inner: reflecting
|
|
58
|
+
x1-outer: reflecting
|
|
59
|
+
x2-inner: custom
|
|
60
|
+
x2-outer: custom
|
|
61
|
+
x3-inner: custom
|
|
62
|
+
x3-outer: custom
|
|
63
|
+
|
|
64
|
+
integration:
|
|
65
|
+
type: rk3
|
|
66
|
+
cfl: 0.45
|
|
67
|
+
implicit-scheme: 9
|
|
68
|
+
nlim: -1
|
|
69
|
+
tlim: 100.e5
|
|
70
|
+
ncycle_out: 1
|
|
71
|
+
|
|
72
|
+
outputs:
|
|
73
|
+
- type: restart
|
|
74
|
+
dt: 10.E5
|
|
75
|
+
- type: netcdf
|
|
76
|
+
variables: [prim]
|
|
77
|
+
dt: 1.e4
|
|
78
|
+
- type: netcdf
|
|
79
|
+
variables: [thermo]
|
|
80
|
+
dt: 1.e4
|
|
81
|
+
|
|
82
|
+
forcing:
|
|
83
|
+
const-gravity:
|
|
84
|
+
grav1: -22.
|
|
85
|
+
|
|
86
|
+
problem:
|
|
87
|
+
Ps: 100.e5
|
|
88
|
+
Ts: 600.
|
|
89
|
+
Tmin: 110.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import torch
|
|
2
2
|
import math
|
|
3
|
-
import
|
|
3
|
+
import kintera
|
|
4
4
|
from snapy import MeshBlockOptions, MeshBlock
|
|
5
5
|
from snapy import kIDN, kIPR
|
|
6
6
|
|
|
@@ -22,9 +22,6 @@ yc = 0.0
|
|
|
22
22
|
zc = 260.0
|
|
23
23
|
s = 100.0
|
|
24
24
|
a = 50.0
|
|
25
|
-
grav = 9.8
|
|
26
|
-
Rd = 287.0
|
|
27
|
-
gamma = 1.4
|
|
28
25
|
uniform_bubble = False
|
|
29
26
|
|
|
30
27
|
# use cuda if available
|
|
@@ -39,10 +36,13 @@ block = MeshBlock(op)
|
|
|
39
36
|
block.to(device)
|
|
40
37
|
|
|
41
38
|
# get handles to modules
|
|
42
|
-
coord = block.module("
|
|
43
|
-
|
|
39
|
+
coord = block.module("coord")
|
|
40
|
+
eos = block.module("hydro.eos")
|
|
41
|
+
grav = -block.options.hydro().grav().grav1()
|
|
44
42
|
|
|
45
43
|
# thermodynamics
|
|
44
|
+
gamma = eos.options.gammad()
|
|
45
|
+
Rd = kintera.constants.Rgas / eos.options.weight()
|
|
46
46
|
cp = gamma / (gamma - 1.0) * Rd
|
|
47
47
|
|
|
48
48
|
# set initial condition
|
|
@@ -78,7 +78,6 @@ block_vars, current_time = block.initialize(block_vars)
|
|
|
78
78
|
block.set_user_output_func(call_user_output)
|
|
79
79
|
|
|
80
80
|
# integration
|
|
81
|
-
start_time = time.time()
|
|
82
81
|
block.make_outputs(block_vars, current_time)
|
|
83
82
|
|
|
84
83
|
while not block.intg.stop(block.inc_cycle(), current_time):
|
|
@@ -15,13 +15,15 @@ geometry:
|
|
|
15
15
|
distribute:
|
|
16
16
|
backend: gloo
|
|
17
17
|
layout: slab
|
|
18
|
-
nb2:
|
|
18
|
+
nb2: 4
|
|
19
19
|
nb3: 1
|
|
20
20
|
verbose: false
|
|
21
21
|
|
|
22
22
|
dynamics:
|
|
23
23
|
equation-of-state:
|
|
24
24
|
type: ideal-gas
|
|
25
|
+
gammad: 1.4
|
|
26
|
+
weight: 29.e-3
|
|
25
27
|
density-floor: 1.e-10
|
|
26
28
|
pressure-floor: 1.e-10
|
|
27
29
|
limiter: false
|