trixi-framework / trixi-framework/TrixiParticles.jl
Open Questions with correction schemes
Open
@efaulhaber is already working on this.
Since Nov 22, 2024.
- Dominant language
- Julia
- Stars
- 83
- Forks
- 24
- Avg merge
- 8d 18h
- Merged PRs (30d)
- 3
Description
- Using KernelCorrection it is mentioned by Bonet and Lok that v_a should drop out of these equations:
@inline function pressure_acceleration(pressure_correction, m_b, particle, neighbor,
particle_system,
neighbor_system::WeaklyCompressibleSPHSystem,
rho_a, rho_b, pos_diff, distance,
grad_kernel, ::ContinuityDensity,
correction::Union{KernelGradientCorrection, MixedKernelGradientCorrection})
return (-m_b *
(particle_system.pressure[particle] / rho_a^2) * grad_kernel) *
pressure_correction
end
@inline function continuity_equation!(dv, density_calculator::ContinuityDensity,
v_particle_system, v_neighbor_system,
particle, neighbor, pos_diff, distance,
m_b, rho_a, rho_b,
particle_system::WeaklyCompressibleSPHSystem,
neighbor_system, grad_kernel,
correction::Union{KernelGradientCorrection, MixedKernelGradientCorrection})
(; density_diffusion) = particle_system
v_b = current_velocity(v_neighbor_system, neighbor_system, neighbor)
dv[end, particle] += rho_a / rho_b * m_b * dot(v_b, grad_kernel)
density_diffusion!(dv, density_diffusion, v_particle_system, v_neighbor_system,
particle, neighbor, pos_diff, distance, m_b, rho_a, rho_b,
particle_system, neighbor_system, grad_kernel)
end
But this doesn't work at all... And also doesn't seem to be commonly used.
- GradientCorrection with ContinuityDensity doesn't really work
Effects:
- particles end up in wall
- density too small at the bnd
Things that have been basically excluded:
- calculation of the correction matrix seems to be correct
- test show that correction matrix fulfills the requirements
- corrected gradient reproduces linear functions
Causes might be:
a) Other boundary treatment required
i) might need special treatment in corners
ii) increased repulsion
iii) use of special corrections for the wall
b) Some kind of error in interaction() when used with the corrected gradient
c) general instability of the corrected method when used in the tried configurations
Things that were investigated by Eric and me:
- Different Kernel Support radiia
- Special treatment of the correction matrix (i.e. tuning of the neighbor_count)
- Simplified case with a wall in which particles were found to have a too small pressurre/density at the wall causing them to penetrate the wall
- The formulations under 1) above
- Different particles spacings, Kernels...
- Smaller Reynoldsnumber
...
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.