Skip to content

Commit a20e7e2

Browse files
Merge pull request #2330 from reint-fischer/refactor_kernels
refactor examples to import from parcels.kernels
2 parents e5a1f7c + 8d514e5 commit a20e7e2

31 files changed

+102
-82
lines changed

docs/examples/documentation_advanced_zarr.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@
247247
"\n",
248248
"# run experiment\n",
249249
"pset.execute(\n",
250-
" parcels.AdvectionRK4,\n",
250+
" parcels.kernels.AdvectionRK4,\n",
251251
" runtime=timedelta(days=17),\n",
252252
" dt=timedelta(hours=3),\n",
253253
" output_file=outputfile,\n",

docs/examples/documentation_geospatial.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@
172172
"\n",
173173
"\n",
174174
"pset.execute(\n",
175-
" [parcels.AdvectionRK4, DeleteParticle],\n",
175+
" [parcels.kernels.AdvectionRK4, DeleteParticle],\n",
176176
" runtime=timedelta(days=120),\n",
177177
" dt=dt,\n",
178178
" output_file=output_file,\n",

docs/examples/documentation_stuck_particles.ipynb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@
454454
" fieldset=fieldset, pclass=parcels.Particle, lon=lons, lat=lats, time=time\n",
455455
")\n",
456456
"\n",
457-
"kernels = pset.Kernel(parcels.AdvectionRK4)\n",
457+
"kernels = pset.Kernel(parcels.kernels.AdvectionRK4)\n",
458458
"\n",
459459
"output_file = pset.ParticleFile(name=\"SMOC.zarr\", outputdt=timedelta(hours=1))\n",
460460
"\n",
@@ -872,7 +872,7 @@
872872
"output_file = pset.ParticleFile(name=\"Cgrid-stuck.zarr\", outputdt=timedelta(hours=1))\n",
873873
"\n",
874874
"pset.execute(\n",
875-
" parcels.AdvectionRK4,\n",
875+
" parcels.kernels.AdvectionRK4,\n",
876876
" runtime=timedelta(days=10),\n",
877877
" dt=timedelta(minutes=5),\n",
878878
" output_file=output_file,\n",
@@ -1182,8 +1182,8 @@
11821182
" name=\"Cgrid-diffusion.zarr\", outputdt=timedelta(hours=1)\n",
11831183
")\n",
11841184
"pset.execute(\n",
1185-
" pset.Kernel(parcels.AdvectionRK4)\n",
1186-
" + pset.Kernel(parcels.DiffusionUniformKh)\n",
1185+
" pset.Kernel(parcels.kernels.AdvectionRK4)\n",
1186+
" + pset.Kernel(parcels.kernels.DiffusionUniformKh)\n",
11871187
" + pset.Kernel(Sample_land),\n",
11881188
" runtime=timedelta(days=10),\n",
11891189
" dt=timedelta(minutes=5),\n",

docs/examples/documentation_unstuck_Agrid.ipynb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -852,7 +852,7 @@
852852
" fieldset=fieldset, pclass=parcels.Particle, lon=lons, lat=lats, time=time\n",
853853
")\n",
854854
"\n",
855-
"kernels = parcels.AdvectionRK4\n",
855+
"kernels = parcels.kernels.AdvectionRK4\n",
856856
"\n",
857857
"output_file = pset.ParticleFile(name=\"SMOC.zarr\", outputdt=timedelta(hours=1))\n",
858858
"\n",
@@ -939,7 +939,7 @@
939939
" fieldset=fieldset, pclass=DisplacementParticle, lon=lons, lat=lats, time=time\n",
940940
")\n",
941941
"\n",
942-
"kernels = [displace, parcels.AdvectionRK4, set_displacement]\n",
942+
"kernels = [displace, parcels.kernels.AdvectionRK4, set_displacement]\n",
943943
"\n",
944944
"output_file = pset.ParticleFile(name=\"SMOC-disp.zarr\", outputdt=timedelta(hours=1))\n",
945945
"\n",
@@ -1415,7 +1415,7 @@
14151415
" fieldset=fieldset, pclass=parcels.Particle, lon=lons, lat=lats, time=time\n",
14161416
")\n",
14171417
"\n",
1418-
"kernels = pset.Kernel(parcels.AdvectionRK4)\n",
1418+
"kernels = pset.Kernel(parcels.kernels.AdvectionRK4)\n",
14191419
"\n",
14201420
"output_file = pset.ParticleFile(\n",
14211421
" name=\"SMOC_partialslip.zarr\", outputdt=timedelta(hours=1)\n",
@@ -1452,7 +1452,7 @@
14521452
" fieldset=fieldset, pclass=parcels.Particle, lon=lons, lat=lats, time=time\n",
14531453
")\n",
14541454
"\n",
1455-
"kernels = pset.Kernel(parcels.AdvectionRK4)\n",
1455+
"kernels = pset.Kernel(parcels.kernels.AdvectionRK4)\n",
14561456
"\n",
14571457
"output_file = pset.ParticleFile(name=\"SMOC_freeslip.zarr\", outputdt=timedelta(hours=1))\n",
14581458
"\n",

docs/examples/example_brownian.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,9 @@ def test_brownian_example(mesh, npart=3000):
4040
lat=np.zeros(npart),
4141
)
4242
pset.execute(
43-
pset.Kernel(parcels.DiffusionUniformKh), runtime=runtime, dt=timedelta(hours=1)
43+
pset.Kernel(parcels.kernels.DiffusionUniformKh),
44+
runtime=runtime,
45+
dt=timedelta(hours=1),
4446
)
4547

4648
expected_std_x = np.sqrt(2 * kh_zonal * runtime.total_seconds())

docs/examples/example_decaying_moving_eddy.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def true_values(
6767
return np.array([x, y])
6868

6969

70-
def decaying_moving_example(fieldset, outfile, method=parcels.AdvectionRK4):
70+
def decaying_moving_example(fieldset, outfile, method=parcels.kernels.AdvectionRK4):
7171
pset = parcels.ParticleSet(
7272
fieldset, pclass=parcels.Particle, lon=start_lon, lat=start_lat
7373
)

docs/examples/example_globcurrent.py

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ def test_globcurrent_fieldset_advancetime(dt, lonstart, latstart):
5757
psetsub[0].time_nextloop = fieldsetsub.U.grid.time[-1]
5858
psetall[0].time_nextloop = fieldsetall.U.grid.time[-1]
5959

60-
psetsub.execute(parcels.AdvectionRK4, runtime=timedelta(days=7), dt=dt)
61-
psetall.execute(parcels.AdvectionRK4, runtime=timedelta(days=7), dt=dt)
60+
psetsub.execute(parcels.kernels.AdvectionRK4, runtime=timedelta(days=7), dt=dt)
61+
psetall.execute(parcels.kernels.AdvectionRK4, runtime=timedelta(days=7), dt=dt)
6262

6363
assert abs(psetsub[0].lon - psetall[0].lon) < 1e-4
6464

@@ -74,7 +74,7 @@ def test_globcurrent_particles():
7474
)
7575

7676
pset.execute(
77-
parcels.AdvectionRK4, runtime=timedelta(days=1), dt=timedelta(minutes=5)
77+
parcels.kernels.AdvectionRK4, runtime=timedelta(days=1), dt=timedelta(minutes=5)
7878
)
7979

8080
assert abs(pset[0].lon - 23.8) < 1
@@ -132,7 +132,9 @@ def test_globcurrent_time_extrapolation_error():
132132
)
133133
with pytest.raises(parcels.TimeExtrapolationError):
134134
pset.execute(
135-
parcels.AdvectionRK4, runtime=timedelta(days=1), dt=timedelta(minutes=5)
135+
parcels.kernels.AdvectionRK4,
136+
runtime=timedelta(days=1),
137+
dt=timedelta(minutes=5),
136138
)
137139

138140

@@ -179,13 +181,13 @@ def SampleP(particle, fieldset, time): # pragma: no cover
179181
if with_starttime:
180182
with pytest.raises(parcels.TimeExtrapolationError):
181183
pset.execute(
182-
pset.Kernel(parcels.AdvectionRK4) + SampleP,
184+
pset.Kernel(parcels.kernels.AdvectionRK4) + SampleP,
183185
runtime=timedelta(days=1),
184186
dt=dt,
185187
)
186188
else:
187189
pset.execute(
188-
pset.Kernel(parcels.AdvectionRK4) + SampleP,
190+
pset.Kernel(parcels.kernels.AdvectionRK4) + SampleP,
189191
runtime=timedelta(days=1),
190192
dt=dt,
191193
)
@@ -204,7 +206,7 @@ def DeleteP0(particle, fieldset, time): # pragma: no cover
204206
)
205207

206208
pset0.execute(
207-
pset0.Kernel(DeleteP0) + parcels.AdvectionRK4,
209+
pset0.Kernel(DeleteP0) + parcels.kernels.AdvectionRK4,
208210
runtime=timedelta(days=rundays),
209211
dt=timedelta(minutes=5),
210212
)
@@ -214,7 +216,9 @@ def DeleteP0(particle, fieldset, time): # pragma: no cover
214216
)
215217

216218
pset1.execute(
217-
parcels.AdvectionRK4, runtime=timedelta(days=rundays), dt=timedelta(minutes=5)
219+
parcels.kernels.AdvectionRK4,
220+
runtime=timedelta(days=rundays),
221+
dt=timedelta(minutes=5),
218222
)
219223

220224
assert np.allclose([pset0[-1].lon, pset0[-1].lat], [pset1[-1].lon, pset1[-1].lat])
@@ -230,7 +234,10 @@ def test_globcurrent_pset_fromfile(dt, pid_offset, tmpdir):
230234
pset = parcels.ParticleSet(fieldset, pclass=parcels.Particle, lon=25, lat=-35)
231235
pfile = pset.ParticleFile(filename, outputdt=timedelta(hours=6))
232236
pset.execute(
233-
parcels.AdvectionRK4, runtime=timedelta(days=1), dt=dt, output_file=pfile
237+
parcels.kernels.AdvectionRK4,
238+
runtime=timedelta(days=1),
239+
dt=dt,
240+
output_file=pfile,
234241
)
235242
pfile.write_latest_locations(pset, max(pset.time_nextloop))
236243

@@ -241,8 +248,8 @@ def test_globcurrent_pset_fromfile(dt, pid_offset, tmpdir):
241248
filename=filename,
242249
restarttime=restarttime,
243250
)
244-
pset.execute(parcels.AdvectionRK4, runtime=timedelta(days=1), dt=dt)
245-
pset_new.execute(parcels.AdvectionRK4, runtime=timedelta(days=1), dt=dt)
251+
pset.execute(parcels.kernels.AdvectionRK4, runtime=timedelta(days=1), dt=dt)
252+
pset_new.execute(parcels.kernels.AdvectionRK4, runtime=timedelta(days=1), dt=dt)
246253

247254
for var in ["lon", "lat", "depth", "time", "trajectory"]:
248255
assert np.allclose(

docs/examples/example_mitgcm.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ def periodicBC(particle, fieldset, time): # pragma: no cover
4545
outputdt=timedelta(days=1),
4646
chunks=(len(pset), 1),
4747
)
48-
kernels = parcels.AdvectionRK4 + pset.Kernel(periodicBC)
48+
kernels = parcels.kernels.AdvectionRK4 + pset.Kernel(periodicBC)
4949
pset.execute(
5050
kernels, runtime=timedelta(days=5), dt=timedelta(minutes=30), output_file=pfile
5151
)

docs/examples/example_moving_eddies.py

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
import parcels
99

1010
method = {
11-
"RK4": parcels.AdvectionRK4,
12-
"EE": parcels.AdvectionEE,
13-
"RK45": parcels.AdvectionRK45,
11+
"RK4": parcels.kernels.AdvectionRK4,
12+
"EE": parcels.kernels.AdvectionEE,
13+
"RK45": parcels.kernels.AdvectionRK45,
1414
}
1515

1616

@@ -112,7 +112,7 @@ def cosd(x):
112112

113113

114114
def moving_eddies_example(
115-
fieldset, outfile, npart=2, verbose=False, method=parcels.AdvectionRK4
115+
fieldset, outfile, npart=2, verbose=False, method=parcels.kernels.AdvectionRK4
116116
):
117117
"""Configuration of a particle set that follows two moving eddies.
118118
@@ -161,7 +161,7 @@ def moving_eddies_example(
161161

162162
@pytest.mark.parametrize("mesh", ["flat", "spherical"])
163163
def test_moving_eddies_fwdbwd(mesh, tmpdir, npart=2):
164-
method = parcels.AdvectionRK4
164+
method = parcels.kernels.AdvectionRK4
165165
fieldset = moving_eddies_fieldset(mesh=mesh)
166166

167167
lons = [3.3, 3.3] if fieldset.U.grid.mesh == "spherical" else [3.3e5, 3.3e5]
@@ -284,7 +284,9 @@ def slowlySouthWestward(particle, fieldset, time): # pragma: no cover
284284
particle.dlon -= 5 * particle.dt / 1e5
285285
particle.dlat -= 3 * particle.dt / 1e5
286286

287-
kernels = pset.Kernel(parcels.AdvectionRK4) + slowlySouthWestward + periodicBC
287+
kernels = (
288+
pset.Kernel(parcels.kernels.AdvectionRK4) + slowlySouthWestward + periodicBC
289+
)
288290
pset.execute(kernels, runtime=timedelta(days=6), dt=timedelta(hours=1))
289291

290292

docs/examples/example_nemo_curvilinear.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88

99
import parcels
1010

11-
advection = {"RK4": parcels.AdvectionRK4, "AA": parcels.AdvectionAnalytical}
11+
advection = {
12+
"RK4": parcels.kernels.AdvectionRK4,
13+
"AA": parcels.kernels.AdvectionAnalytical,
14+
}
1215

1316

1417
def run_nemo_curvilinear(outfile, advtype="RK4"):

0 commit comments

Comments
 (0)