Skip to content

Commit 5f36a06

Browse files
committed
Fix continuity_equation! functions
1 parent 6bc3034 commit 5f36a06

File tree

6 files changed

+27
-25
lines changed

6 files changed

+27
-25
lines changed

src/schemes/boundary/open_boundary/rhs.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,9 +83,8 @@ function interact!(dv, v_particle_system, u_particle_system,
8383

8484
# Propagate `@inbounds` to the continuity equation, which accesses particle data
8585
drho_particle = Ref(zero(rho_a))
86-
@inbounds continuity_equation!(drho_particle, ContinuityDensity(),
86+
@inbounds continuity_equation!(drho_particle,
8787
particle_system, neighbor_system,
88-
v_particle_system, v_neighbor_system,
8988
particle, neighbor, pos_diff, distance,
9089
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
9190
dv[end, particle] += drho_particle[]

src/schemes/boundary/wall_boundary/rhs.jl

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,18 @@ end
6161
# This is the derivative of the density summation, which is compatible with the
6262
# `SummationDensity` pressure acceleration.
6363
# Energy preservation tests will fail with the other formulation.
64-
function continuity_equation!(drho_particle, ::SummationDensity,
65-
m_b, rho_a, rho_b, v_a, v_b, grad_kernel, particle)
64+
@propagate_inbounds function continuity_equation!(drho_particle, ::SummationDensity,
65+
m_b, rho_a, rho_b, v_a, v_b,
66+
grad_kernel, particle)
6667
drho_particle[] += m_b * dot(v_a - v_b, grad_kernel)
6768

6869
return drho_particle
6970
end
7071

7172
# This is identical to the continuity equation of the fluid
72-
function continuity_equation!(drho_particle, ::ContinuityDensity,
73-
m_b, rho_a, rho_b, v_a, v_b, grad_kernel, particle)
73+
@propagate_inbounds function continuity_equation!(drho_particle, ::ContinuityDensity,
74+
m_b, rho_a, rho_b, v_a, v_b,
75+
grad_kernel, particle)
7476
drho_particle[] += rho_a / rho_b * m_b * dot(v_a - v_b, grad_kernel)
7577

7678
return drho_particle

src/schemes/fluid/entropically_damped_sph/rhs.jl

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,10 @@ function interact!(dv, v_particle_system, u_particle_system,
105105

106106
# TODO If variable smoothing_length is used, this should use the neighbor smoothing length
107107
# Propagate `@inbounds` to the continuity equation, which accesses particle data
108-
@inbounds continuity_equation!(drho_particle, density_calculator, particle_system,
109-
neighbor_system, v_particle_system,
110-
v_neighbor_system, particle, neighbor,
111-
pos_diff, distance, m_b, rho_a, rho_b,
112-
v_a, v_b, grad_kernel)
108+
@inbounds continuity_equation!(drho_particle, density_calculator,
109+
particle_system, neighbor_system,
110+
particle, neighbor, pos_diff, distance,
111+
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
113112

114113
@inbounds write_drho_particle!(dv, density_calculator, drho_particle, particle)
115114
end

src/schemes/fluid/fluid.jl

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,6 @@ end
130130
# With 'SummationDensity', density is calculated in wcsph/system.jl:compute_density!
131131
@inline function continuity_equation!(drho_particle, ::SummationDensity,
132132
particle_system, neighbor_system,
133-
v_particle_system, v_neighbor_system,
134133
particle, neighbor, pos_diff, distance,
135134
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
136135
return drho_particle
@@ -141,10 +140,17 @@ end
141140
::ContinuityDensity,
142141
particle_system::AbstractFluidSystem,
143142
neighbor_system,
144-
v_particle_system, v_neighbor_system,
145143
particle, neighbor, pos_diff, distance,
146-
m_b, rho_a, rho_b, v_a, v_b,
147-
grad_kernel)
144+
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
145+
continuity_equation!(drho_particle, particle_system, neighbor_system,
146+
particle, neighbor, pos_diff, distance,
147+
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
148+
end
149+
150+
@propagate_inbounds function continuity_equation!(drho_particle,
151+
particle_system, neighbor_system,
152+
particle, neighbor, pos_diff, distance,
153+
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
148154
v_diff = v_a - v_b
149155

150156
v_diff = continuity_equation_shifting_term(v_diff,

src/schemes/fluid/weakly_compressible_sph/rhs.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,6 @@ function interact!(dv, v_particle_system, u_particle_system,
123123
# Propagate `@inbounds` to the continuity equation, which accesses particle data
124124
@inbounds continuity_equation!(drho_particle, density_calculator,
125125
particle_system, neighbor_system,
126-
v_particle_system, v_neighbor_system,
127126
particle, neighbor, pos_diff, distance,
128127
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
129128

src/schemes/structure/structure.jl

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -94,10 +94,9 @@ function interact_structure_fluid!(dv, v_particle_system, u_particle_system,
9494
accumulate_structure_fluid_pair!(dv, dv_particle[], particle_system, particle, m_b)
9595

9696
drho_particle = Ref(zero(rho_a))
97-
continuity_equation!(drho_particle,
97+
continuity_equation!(drho_particle, particle_system, neighbor_system,
9898
particle, neighbor, pos_diff, distance,
99-
m_b, rho_a, rho_b, v_a, v_b,
100-
particle_system, neighbor_system, grad_kernel)
99+
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
101100

102101
@inbounds write_drho_particle!(dv, particle_system, drho_particle, particle)
103102
end
@@ -106,21 +105,19 @@ function interact_structure_fluid!(dv, v_particle_system, u_particle_system,
106105
end
107106

108107
@inline function continuity_equation!(drho_particle,
109-
particle, neighbor, pos_diff, distance,
110-
m_b, rho_a, rho_b, v_a, v_b,
111108
particle_system::AbstractStructureSystem,
112109
neighbor_system::AbstractFluidSystem,
113-
grad_kernel)
110+
particle, neighbor, pos_diff, distance,
111+
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
114112
return drho_particle
115113
end
116114

117115
@inline function continuity_equation!(drho_particle,
118-
particle, neighbor, pos_diff, distance,
119-
m_b, rho_a, rho_b, v_a, v_b,
120116
particle_system::Union{RigidBodySystem{<:BoundaryModelDummyParticles{ContinuityDensity}},
121117
TotalLagrangianSPHSystem{<:BoundaryModelDummyParticles{ContinuityDensity}}},
122118
neighbor_system::AbstractFluidSystem,
123-
grad_kernel)
119+
particle, neighbor, pos_diff, distance,
120+
m_b, rho_a, rho_b, v_a, v_b, grad_kernel)
124121
continuity_equation!(drho_particle, density_calculator(neighbor_system),
125122
m_b, rho_a, rho_b, v_a, v_b, grad_kernel, particle)
126123

0 commit comments

Comments
 (0)