Skip to content

Commit da06615

Browse files
committed
make above/below surface work with Q1
1 parent 44006c1 commit da06615

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

src/surface_functions.jl

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -269,13 +269,18 @@ function above_surface(Data_Cart::ParaviewData, DataSurface_Cart::ParaviewData;
269269
end
270270

271271
"""
272-
Above = above_surface(Data_Cart::CartData, DataSurface_Cart::CartData; above=true)
272+
Above = above_surface(Data_Cart::Union{Q1Data,CartData}, DataSurface_Cart::CartData; above=true)
273273
274274
Determines if points within the 3D `Data_Cart` structure are above the Cartesian surface `DataSurface_Cart`
275275
"""
276-
function above_surface(Data_Cart::CartData, DataSurface_Cart::CartData; above=true)
276+
function above_surface(Data_Cart::Union{Q1Data,CartData}, DataSurface_Cart::CartData; above=true, cell=false)
277277

278-
Data = GeoData(ustrip.(Data_Cart.x.val), ustrip.(Data_Cart.y.val), ustrip.(Data_Cart.z.val), Data_Cart.fields)
278+
X,Y,Z = coordinate_grids(Data_Cart, cell=cell)
279+
if cell
280+
Data = GeoData(ustrip.(X), ustrip.(Y), ustrip.(Z), Data_Cart.cellfields)
281+
else
282+
Data = GeoData(ustrip.(X), ustrip.(Y), ustrip.(Z), Data_Cart.fields)
283+
end
279284
DataSurface = GeoData(ustrip.(DataSurface_Cart.x.val),ustrip.(DataSurface_Cart.y.val), ustrip.(DataSurface_Cart.z.val), DataSurface_Cart.fields )
280285

281286
return Above = above_surface(Data, DataSurface; above=above)
@@ -315,12 +320,12 @@ function below_surface(Data_Cart::ParaviewData, DataSurface_Cart::ParaviewData)
315320
end
316321

317322
"""
318-
Below = below_surface(Data_Cart::CartData, DataSurface_Cart::CartData)
323+
Below = below_surface(Data_Cart::Union{CartData,Q1Data}, DataSurface_Cart::CartData, cell=false)
319324
320-
Determines if points within the 3D Data_Cart structure are below the Cartesian surface DataSurface_Cart
325+
Determines if points within the 3D `Data_Cart` structure are below the Cartesian surface `DataSurface_Cart`
321326
"""
322-
function below_surface(Data_Cart::CartData, DataSurface_Cart::CartData)
323-
return above_surface(Data_Cart::CartData, DataSurface_Cart::CartData; above=false)
327+
function below_surface(Data_Cart::Union{CartData,Q1Data}, DataSurface_Cart::CartData, cell=false)
328+
return above_surface(Data_Cart, DataSurface_Cart; above=false, cell=cell)
324329
end
325330

326331
"""

test/test_surfaces.jl

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,13 @@ ind = above_surface(Grid, Topo_cart);
8282

8383
ind = below_surface(Grid, Topo_cart);
8484
@test sum(ind[1,1,:]) == 25
85+
86+
87+
#-------------
88+
# test above_surface with the Q1Data object
89+
q1data = Q1Data(xyz_grid(1:4,1:5,-5:5))
90+
ind = above_surface(q1data, cartdata2);
91+
@test sum(ind) == 60
92+
93+
ind = below_surface(q1data, cartdata2);
94+
@test sum(ind) == 140

0 commit comments

Comments
 (0)