33
44import numpy as np
55
6- from parcels ._typing import Mesh
6+ from parcels ._core . mesh import BaseMesh
77
88__all__ = []
99
@@ -61,12 +61,12 @@ def dphidxsi3D_lin(zeta: float, eta: float, xsi: float) -> tuple[list[float], li
6161
6262
6363def dxdxsi3D_lin (
64- hexa_z : list [float ], hexa_y : list [float ], hexa_x : list [float ], zeta : float , eta : float , xsi : float , mesh : Mesh ,
64+ hexa_z : list [float ], hexa_y : list [float ], hexa_x : list [float ], zeta : float , eta : float , xsi : float , mesh : BaseMesh ,
6565 deg2m : float = 1852 * 60.0
6666) -> tuple [float , float , float , float , float , float , float , float , float ]:
6767 dphidxsi , dphideta , dphidzet = dphidxsi3D_lin (zeta , eta , xsi )
6868
69- if mesh == 'spherical' :
69+ if mesh . is_spherical () :
7070 rad = np .pi / 180.
7171 lat = (1 - xsi ) * (1 - eta ) * hexa_y [0 ] + \
7272 xsi * (1 - eta ) * hexa_y [1 ] + \
@@ -92,7 +92,7 @@ def dxdxsi3D_lin(
9292
9393
9494def jacobian3D_lin (
95- hexa_z : list [float ], hexa_y : list [float ], hexa_x : list [float ], zeta : float , eta : float , xsi : float , mesh : Mesh ,
95+ hexa_z : list [float ], hexa_y : list [float ], hexa_x : list [float ], zeta : float , eta : float , xsi : float , mesh : BaseMesh ,
9696 deg2m : float = 1852 * 60.0
9797) -> float :
9898 dxdxsi , dxdeta , dxdzet , dydxsi , dydeta , dydzet , dzdxsi , dzdeta , dzdzet = dxdxsi3D_lin (hexa_z , hexa_y , hexa_x , zeta , eta , xsi , mesh , deg2m )
@@ -113,7 +113,7 @@ def jacobian3D_lin_face(
113113 eta : float ,
114114 xsi : float ,
115115 orientation : Literal ["zonal" , "meridional" , "vertical" ],
116- mesh : Mesh ,
116+ mesh : BaseMesh ,
117117) -> float :
118118 dxdxsi , dxdeta , dxdzet , dydxsi , dydeta , dydzet , dzdxsi , dzdeta , dzdzet = dxdxsi3D_lin (hexa_z , hexa_y , hexa_x , zeta , eta , xsi , mesh )
119119
@@ -176,9 +176,9 @@ def interpolate(phi: Callable[[float], list[float]], f: list[float], xsi: float)
176176
177177
178178def _geodetic_distance (
179- lat1 : float , lat2 : float , lon1 : float , lon2 : float , mesh : Mesh , lat : float , deg2m : float = 1852 * 60.0
179+ lat1 : float , lat2 : float , lon1 : float , lon2 : float , mesh : BaseMesh , lat : float , deg2m : float = 1852 * 60.0
180180) -> float :
181- if mesh == "spherical" :
181+ if mesh . is_spherical () :
182182 rad = np .pi / 180.0
183183 return np .sqrt (((lon2 - lon1 ) * deg2m * np .cos (rad * lat )) ** 2 + ((lat2 - lat1 ) * deg2m ) ** 2 )
184184 else :
0 commit comments