@@ -3,39 +3,21 @@ testny(g, ny) = isapprox(g.ny, ny)
3
3
testnz (g, nz) = isapprox (g. nz, nz)
4
4
5
5
# Physical grid tests
6
- function testdx (g:: Union{OneDGrid{T,<:Array }, TwoDGrid{T,<:Array }, ThreeDGrid{T,<:Array }} ) where T
6
+ function testdx (dev, g:: Union{OneDGrid{T}, TwoDGrid{T}, ThreeDGrid{T}} ) where T
7
7
dxgrid = @. g. x[2 : end ] - g. x[1 : end - 1 ]
8
- dxones = g. dx* ones (T, size (dxgrid))
8
+ dxones = ArrayType (dev)( g. dx* ones (T, size (dxgrid) ))
9
9
isapprox (dxgrid, dxones)
10
10
end
11
11
12
- function testdy (g:: Union{TwoDGrid{T,<:Array }, ThreeDGrid{T,<:Array }} ) where T
12
+ function testdy (dev, g:: Union{TwoDGrid{T}, ThreeDGrid{T}} ) where T
13
13
dygrid = @. g. y[2 : end ] - g. y[1 : end - 1 ]
14
- dyones = g. dy* ones (T, size (dygrid))
14
+ dyones = ArrayType (dev)( g. dy* ones (T, size (dygrid) ))
15
15
isapprox (dygrid, dyones)
16
16
end
17
17
18
- function testdz (g:: ThreeDGrid{T,<:Array } ) where T
18
+ function testdz (dev, g:: ThreeDGrid{T} ) where T
19
19
dzgrid = @. g. z[2 : end ] - g. z[1 : end - 1 ]
20
- dzones = g. dz* ones (T, size (dzgrid))
21
- isapprox (dzgrid, dzones)
22
- end
23
-
24
- function testdx (g:: Union{OneDGrid{T,<:CuArray}, TwoDGrid{T,<:CuArray}, ThreeDGrid{T,<:CuArray}} ) where T
25
- dxgrid = @. g. x[2 : end ] - g. x[1 : end - 1 ]
26
- dxones = CuArray (g. dx* ones (T, size (dxgrid)))
27
- isapprox (dxgrid, dxones)
28
- end
29
-
30
- function testdy (g:: Union{TwoDGrid{T,<:CuArray}, ThreeDGrid{T,<:CuArray}} ) where T
31
- dygrid = @. g. y[2 : end ] - g. y[1 : end - 1 ]
32
- dyones = CuArray (g. dy* ones (T, size (dygrid)))
33
- isapprox (dygrid, dyones)
34
- end
35
-
36
- function testdz (g:: ThreeDGrid{T,<:CuArray} ) where T
37
- dzgrid = @. g. z[2 : end ] - g. z[1 : end - 1 ]
38
- dzones = CuArray (g. dz* ones (T, size (dzgrid)))
20
+ dzones = ArrayType (dev)(g. dz* ones (T, size (dzgrid)))
39
21
isapprox (dzgrid, dzones)
40
22
end
41
23
@@ -65,23 +47,23 @@ testl(g::Union{TwoDGrid, ThreeDGrid}) = testwavenumberalignment(g.l, g.ny)
65
47
testm (g:: ThreeDGrid ) = testwavenumberalignment (g. m, g. nz)
66
48
testkr (g) = isapprox (cat (g. k[1 : g. nkr- 1 ], abs (g. k[g. nkr]), dims= 1 ), g. kr)
67
49
68
- function testgridpoints (g:: TwoDGrid{T} ) where T
50
+ function testgridpoints (dev :: Device , g:: TwoDGrid{T} ) where T
69
51
X, Y = gridpoints (g)
70
52
dXgrid = @. X[2 : end , :] - X[1 : end - 1 , :]
71
53
dYgrid = @. Y[:, 2 : end ] - Y[:, 1 : end - 1 ]
72
- dXones = g. dx* ones (T, size (dXgrid))
73
- dYones = g. dy* ones (T, size (dYgrid))
54
+ dXones = ArrayType (dev)( g. dx* ones (T, size (dXgrid) ))
55
+ dYones = ArrayType (dev)( g. dy* ones (T, size (dYgrid) ))
74
56
isapprox (dXgrid, dXones) && isapprox (dYgrid, dYones)
75
57
end
76
58
77
- function testgridpoints (g:: ThreeDGrid{T} ) where T
59
+ function testgridpoints (dev :: Device , g:: ThreeDGrid{T} ) where T
78
60
X, Y, Z = gridpoints (g)
79
61
dXgrid = @. X[2 : end , :, :] - X[1 : end - 1 , :, :]
80
62
dYgrid = @. Y[:, 2 : end , :] - Y[:, 1 : end - 1 , :]
81
63
dZgrid = @. Z[:, :, 2 : end ] - Z[:, :, 1 : end - 1 ]
82
- dXones = g. dx* ones (T, size (dXgrid))
83
- dYones = g. dy* ones (T, size (dYgrid))
84
- dZones = g. dz* ones (T, size (dZgrid))
64
+ dXones = ArrayType (dev)( g. dx* ones (T, size (dXgrid) ))
65
+ dYones = ArrayType (dev)( g. dy* ones (T, size (dYgrid) ))
66
+ dZones = ArrayType (dev)( g. dz* ones (T, size (dZgrid) ))
85
67
isapprox (dXgrid, dXones) && isapprox (dYgrid, dYones) && isapprox (dZgrid, dZones)
86
68
end
87
69
0 commit comments