Skip to content

Commit 1398340

Browse files
Fixing slip interpolation
1 parent 5c085b0 commit 1398340

File tree

1 file changed

+9
-11
lines changed

1 file changed

+9
-11
lines changed

parcels/field.py

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,9 +1417,7 @@ def _is_land2D(self, di, yi, xi):
14171417
return True
14181418

14191419
def spatial_slip_interpolation(self, ti, z, y, x, time, particle=None, applyConversion=True):
1420-
(_, zeta, eta, xsi, _, zi, yi, xi) = self.U._search_indices(
1421-
time, z, y, x, particle=particle
1422-
) # TOFO use tau here too
1420+
(_, zeta, eta, xsi, _, zi, yi, xi) = self.U._search_indices(time, z, y, x, particle=particle)
14231421
di = ti if self.U.grid.zdim == 1 else zi # general third dimension
14241422

14251423
f_u, f_v, f_w = 1, 1, 1
@@ -1520,22 +1518,22 @@ def spatial_slip_interpolation(self, ti, z, y, x, time, particle=None, applyConv
15201518
return u, v
15211519

15221520
def eval(self, time, z, y, x, particle=None, applyConversion=True):
1521+
if self.U.interp_method in ["partialslip", "freeslip"]:
1522+
return self.spatial_slip_interpolation(time, z, y, x, particle=particle, applyConversion=applyConversion)
1523+
15231524
if self.U.interp_method not in ["cgrid_velocity", "partialslip", "freeslip"]:
15241525
u = self.U.eval(time, z, y, x, particle=particle, applyConversion=False)
15251526
v = self.V.eval(time, z, y, x, particle=particle, applyConversion=False)
15261527
if applyConversion:
15271528
u = self.U.units.to_target(u, z, y, x)
15281529
v = self.V.units.to_target(v, z, y, x)
1529-
else:
1530-
interp = {
1531-
"cgrid_velocity": self.spatial_c_grid_interpolation2D,
1532-
"partialslip": self.spatial_slip_interpolation,
1533-
"freeslip": self.spatial_slip_interpolation,
1534-
}
1530+
elif self.U.interp_method == "cgrid_velocity":
15351531
tau, ti = self.U._time_index(time)
1536-
(u, v) = interp[self.U.interp_method](ti, z, y, x, time, particle=particle, applyConversion=applyConversion)
1532+
(u, v) = self.spatial_c_grid_interpolation2D(
1533+
ti, z, y, x, time, particle=particle, applyConversion=applyConversion
1534+
)
15371535
if ti < self.U.grid.tdim - 1 and time > self.U.grid.time[ti]:
1538-
(u1, v1) = interp[self.U.interp_method](
1536+
(u1, v1) = self.spatial_c_grid_interpolation2D(
15391537
ti + 1, z, y, x, time, particle=particle, applyConversion=applyConversion
15401538
)
15411539
u = u * (1 - tau) + u1 * tau

0 commit comments

Comments
 (0)