Skip to content

Commit b60479d

Browse files
committed
Apply new breaking changes of TrixiParticles
1 parent 69c72eb commit b60479d

File tree

2 files changed

+30
-6
lines changed

2 files changed

+30
-6
lines changed

benchmarks/smoothed_particle_hydrodynamics.jl

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,24 @@ using PointNeighbors
22
using TrixiParticles
33
using BenchmarkTools
44

5+
# Create a dummy semidiscretization type to be able to use a specific neighborhood search
6+
struct DummySemidiscretization{N, P}
7+
neighborhood_search :: N
8+
parallelization_backend :: P
9+
end
10+
11+
@inline function PointNeighbors.parallel_foreach(f, iterator, semi::DummySemidiscretization)
12+
PointNeighbors.parallel_foreach(f, iterator, semi.parallelization_backend)
13+
end
14+
15+
@inline function TrixiParticles.get_neighborhood_search(_, _, semi::DummySemidiscretization)
16+
return semi.neighborhood_search
17+
end
18+
19+
@inline function TrixiParticles.get_neighborhood_search(_, semi::DummySemidiscretization)
20+
return semi.neighborhood_search
21+
end
22+
523
"""
624
benchmark_wcsph(neighborhood_search, coordinates; parallel = true)
725
@@ -37,6 +55,7 @@ function benchmark_wcsph(neighborhood_search, coordinates;
3755

3856
system = PointNeighbors.Adapt.adapt(parallelization_backend, fluid_system)
3957
nhs = PointNeighbors.Adapt.adapt(parallelization_backend, neighborhood_search)
58+
semi = DummySemidiscretization(nhs, parallelization_backend)
4059

4160
v = PointNeighbors.Adapt.adapt(parallelization_backend,
4261
vcat(fluid.velocity, fluid.density'))
@@ -45,11 +64,10 @@ function benchmark_wcsph(neighborhood_search, coordinates;
4564

4665
# Initialize the system
4766
TrixiParticles.initialize!(system, nhs)
48-
# Note that the third argument is supposed to be the semidiscretization, but it is only
49-
# used for `@threaded`, so we can just pass `v` instead.
50-
TrixiParticles.compute_pressure!(system, v, v)
67+
TrixiParticles.compute_pressure!(system, v, semi)
5168

52-
return @belapsed TrixiParticles.interact!($dv, $v, $u, $v, $u, $nhs, $system, $system)
69+
return @belapsed TrixiParticles.interact!($dv, $v, $u, $v, $u, $nhs,
70+
$system, $system, $semi)
5371
end
5472

5573
"""
@@ -88,6 +106,7 @@ function benchmark_wcsph_fp32(neighborhood_search, coordinates_;
88106

89107
system = PointNeighbors.Adapt.adapt(parallelization_backend, fluid_system)
90108
nhs = PointNeighbors.Adapt.adapt(parallelization_backend, neighborhood_search)
109+
semi = DummySemidiscretization(nhs, parallelization_backend)
91110

92111
v = PointNeighbors.Adapt.adapt(parallelization_backend,
93112
vcat(fluid.velocity, fluid.density'))
@@ -96,7 +115,7 @@ function benchmark_wcsph_fp32(neighborhood_search, coordinates_;
96115

97116
# Initialize the system
98117
TrixiParticles.initialize!(system, nhs)
99-
TrixiParticles.compute_pressure!(system, v)
118+
TrixiParticles.compute_pressure!(system, v, semi)
100119

101120
return @belapsed TrixiParticles.interact!($dv, $v, $u, $v, $u, $nhs, $system, $system)
102121
end
@@ -123,6 +142,7 @@ function benchmark_tlsph(neighborhood_search, coordinates;
123142

124143
solid_system = TotalLagrangianSPHSystem(solid, smoothing_kernel, smoothing_length,
125144
material.E, material.nu)
145+
semi = DummySemidiscretization(neighborhood_search, parallelization_backend)
126146

127147
v = copy(solid.velocity)
128148
u = copy(solid.coordinates)
@@ -132,5 +152,5 @@ function benchmark_tlsph(neighborhood_search, coordinates;
132152
TrixiParticles.initialize!(solid_system, neighborhood_search)
133153

134154
return @belapsed TrixiParticles.interact!($dv, $v, $u, $v, $u, $neighborhood_search,
135-
$solid_system, $solid_system)
155+
$solid_system, $solid_system, $semi)
136156
end

test/benchmarks.jl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@
1818
@test_nowarn_mod plot_benchmarks(benchmark_wcsph, size, 2)
1919
end
2020

21+
@testset verbose=true "`benchmark_wcsph_fp32`" begin
22+
@test_nowarn_mod plot_benchmarks(benchmark_wcsph_fp32, size, 2)
23+
end
24+
2125
@testset verbose=true "`benchmark_tlsph`" begin
2226
@test_nowarn_mod plot_benchmarks(benchmark_tlsph, size, 2)
2327
end

0 commit comments

Comments
 (0)