@@ -33,15 +33,16 @@ def XTriCurviLinear(
3333 yi , eta = position ["Y" ]
3434 zi , zeta = position ["Z" ]
3535 data = field .data
36+ axis_dim = field .grid .get_axis_dim_mapping (field .data .dims )
3637
3738 return (
3839 (
39- (1 - xsi ) * (1 - eta ) * data .isel (YG = yi , XG = xi )
40- + xsi * (1 - eta ) * data .isel (YG = yi , XG = xi + 1 )
41- + xsi * eta * data .isel (YG = yi + 1 , XG = xi + 1 )
42- + (1 - xsi ) * eta * data .isel (YG = yi + 1 , XG = xi )
40+ (1 - xsi ) * (1 - eta ) * data .isel ({ axis_dim [ "Y" ]: yi , axis_dim [ "X" ]: xi } )
41+ + xsi * (1 - eta ) * data .isel ({ axis_dim [ "Y" ]: yi , axis_dim [ "X" ]: xi + 1 } )
42+ + xsi * eta * data .isel ({ axis_dim [ "Y" ]: yi + 1 , axis_dim [ "X" ]: xi + 1 } )
43+ + (1 - xsi ) * eta * data .isel ({ axis_dim [ "Y" ]: yi + 1 , axis_dim [ "X" ]: xi } )
4344 )
44- .interp (time = t , ZG = zi + zeta )
45+ .interp (time = t , ** { axis_dim [ "Z" ]: zi + zeta } )
4546 .values
4647 )
4748
@@ -57,10 +58,13 @@ def XTriRectiLinear(
5758 x : np .float32 | np .float64 ,
5859):
5960 """Trilinear interpolation on a rectilinear grid."""
61+ axis_dim = field .grid .get_axis_dim_mapping (field .data .dims )
62+
6063 xi , xsi = position ["X" ]
6164 yi , eta = position ["Y" ]
6265 zi , zeta = position ["Z" ]
63- return field .data .interp (time = t , ZG = zi + zeta , YG = yi + eta , XG = xi + xsi ).values
66+ kwargs = {axis_dim ["X" ]: xi + xsi , axis_dim ["Y" ]: yi + eta , axis_dim ["Z" ]: zi + zeta }
67+ return field .data .interp (time = t , ** kwargs ).values
6468
6569
6670def UXPiecewiseConstantFace (
0 commit comments