Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add docs for no slip conditions #339

Merged
merged 13 commits into from
Feb 16, 2024
46 changes: 25 additions & 21 deletions src/schemes/boundary/dummy_particles/dummy_particles.jl
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,6 @@
smoothing_length; viscosity=NoViscosity(),
state_equation=nothing, correction=nothing)

## Arguments
- `initial_density`: Vector holding the initial density of each boundary particles
- `hydrodynamic_mass`: Vector holding the "hydrodynamic mass" of each boundary particles
- `density_calculator`: Option to compute the hydrodynamic boundary density. For more
information see description below.
- `smoothing_kernel`: Smoothing kernel should be the same as for the adjacent fluid system
- `smoothing_length`: Smoothing length should be the same as for the adjacent fluid system

# Keywords
- `state_equation`: This should be the same as for the adjacent fluid system
(see e.g. [`StateEquationCole`](@ref)).
- `correction`: Correction method of the adjacent fluid system (see [Corrections](@ref corrections)).
- `viscosity`: Slip (default) or no-slip condition. See description below for further
information

Boundaries modeled as dummy particles, which are treated like fluid particles,
but their positions and velocities are not evolved in time. Since the force towards the fluid
should not change with the material density when used with a [`TotalLagrangianSPHSystem`](@ref), the
Expand Down Expand Up @@ -77,8 +62,8 @@ We provide five options to compute the boundary density and pressure, determined

## No-slip conditions

For the interaction of dummy particles and fluid particles, Adami (Adami et al. 2012)
imposes a no-slip boundary condition by assigning a wall velocity ``v_w`` to the dummy particle.
For the interaction of dummy particles and fluid particles, Adami et al. (2012)
impose a no-slip boundary condition by assigning a wall velocity ``v_w`` to the dummy particle.

The wall velocity of particle ``a`` is calculated from the prescribed boundary particle
velocity ``v_a`` and the smoothed velocity field
Expand All @@ -87,9 +72,28 @@ v_w = 2 v_a - \frac{\sum_b v_b W_{ab}}{\sum_b W_{ab}},
```
where the sum is over all fluid particles.

By choosing the viscosity model [`ViscosityAdami`](@ref) for `viscosity`, a non-slip
condition is imposed. When omitting the viscous interaction
(default `viscosity=NoViscosity()`), a free-slip wall boundary condition is applied.
By choosing the viscosity model [`ViscosityAdami`](@ref) for `viscosity`, a no-slip
condition is imposed. It is recommended to choose `nu` in the order of either the kinematic
viscosity parameter of the adjacent fluid or the equivalent from the artificial parameter
`alpha` of the adjacent fluid (``\nu = \frac{\alpha h c }{2d + 4}``). When omitting the
viscous interaction (default `viscosity=NoViscosity()`), a free-slip wall boundary
condition is applied.

# Arguments
- `initial_density`: Vector holding the initial density of each boundary particle
- `hydrodynamic_mass`: Vector holding the "hydrodynamic mass" of each boundary particle.
See description above for more information.
- `density_calculator`: Strategy to compute the hydrodynamic density of the boundary particles.
See description above for more information.
- `smoothing_kernel`: Smoothing kernel should be the same as for the adjacent fluid system
- `smoothing_length`: Smoothing length should be the same as for the adjacent fluid system
LasNikas marked this conversation as resolved.
Show resolved Hide resolved

# Keywords
- `state_equation`: This should be the same as for the adjacent fluid system
(see e.g. [`StateEquationCole`](@ref)).
- `correction`: Correction method of the adjacent fluid system (see [Corrections](@ref corrections)).
- `viscosity`: Slip (default) or no-slip condition. See description above for further
information.

# Examples

Expand All @@ -98,7 +102,7 @@ condition is imposed. When omitting the viscous interaction
boundary_model = BoundaryModelDummyParticles(densities, masses, AdamiPressureExtrapolation(),
smoothing_kernel, smoothing_length))

# No slip condition
# No-slip condition
boundary_model = BoundaryModelDummyParticles(densities, masses, AdamiPressureExtrapolation(),
smoothing_kernel, smoothing_length),
viscosity=ViscosityAdami(nu))
Expand Down
23 changes: 12 additions & 11 deletions src/schemes/boundary/monaghan_kajtar/monaghan_kajtar.jl
Original file line number Diff line number Diff line change
@@ -1,15 +1,6 @@
@doc raw"""
BoundaryModelMonaghanKajtar(K, beta, boundary_particle_spacing, mass;
viscosity=NoViscosity())
## Arguments
- `K`: Scaling factor for repulsive force.
- `beta`: Ratio of fluid particle spacing to boundary particle spacing.
- `boundary_particle_spacing`: Boundary particle spacing.
- `mass`: Vector holding the mass of each boundary particles.

# Keywords
- `viscosity`: Slip (default) or no-slip condition. See description below for further
information

Boundaries modeled as boundary particles which exert forces on the fluid particles (Monaghan, Kajtar, 2009).
The force on fluid particle ``a`` due to boundary particle ``b`` is given by
Expand Down Expand Up @@ -52,12 +43,22 @@ The viscosity ``\Pi_{ab}`` is calculated according to the viscosity used in the
simulation, where the density of the boundary particle if needed is assumed to be
identical to the density of the fluid particle.

# No slip condition
# No-slip condition

By choosing the viscosity model [`ArtificialViscosityMonaghan`](@ref) for `viscosity`,
a non-slip condition is imposed. When omitting the viscous interaction
a no-slip condition is imposed. When omitting the viscous interaction
(default `viscosity=NoViscosity()`), a free-slip wall boundary condition is applied.

# Arguments
- `K`: Scaling factor for repulsive force.
- `beta`: Ratio of fluid particle spacing to boundary particle spacing.
- `boundary_particle_spacing`: Boundary particle spacing.
- `mass`: Vector holding the mass of each boundary particle.

# Keywords
- `viscosity`: Free-slip (default) or no-slip condition. See description above for further
information.

!!! warning
The no-slip conditions for `BoundaryModelMonaghanKajtar` have not been verified yet.

Expand Down
3 changes: 2 additions & 1 deletion src/schemes/fluid/viscosity.jl
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,9 @@ and ``\bar{\rho}_{ab}`` is the arithmetic mean of their densities.
Note that ``\alpha`` needs to adjusted for different resolutions to maintain a specific Reynolds Number.
To do so, Monaghan (Monaghan 2005) defined an equivalent effective physical kinematic viscosity ``\nu`` by
```math
\nu = \frac{\alpha h c }{\rho_{ab}}.
\nu = \frac{\alpha h c }{2d + 4},
```
where ``d`` is the dimension.

## References:
- Joseph J. Monaghan. "Smoothed Particle Hydrodynamics".
Expand Down
Loading