-
Notifications
You must be signed in to change notification settings - Fork 12
Commit
* fix merge * fix merge * fix merge * fix merge * fix merge * more merge fixes * format * fix * fix * fix * fix * fix * more fixes * fix * fix * fix * more fixes * fix * fix * format * running * update * update * optimization * update * update * update * update * format * up * update * remove unused code * switch to support radius * update * fix doc * add adhesion coefficient * update_broken * update * format * add to examples * fix tests * fix merge * fix typos * add basic test * format * rename * format * rename container system * reduce example run time * update news and readme * format * fix test * reduce run time * format * fix * correct merge * update doc test * revert * fix tests * fix * fix * review comments * fix * fix * correct some stuff * init with empty initial condition * review update * rename function * remove unnecessary if * docs * fix doc * revert one change * fix typo * update * try to avoid allocs * fix mem allocs * review update * update docs * update * review * fix * format * make examples smaller * reduce resolution * review * rename * use trixi_include * format * use trixi_include * update * update * review update * format * fix test errors * update * fix * remove invalid surface normals * add * fix * update * update * update * fix * update * update * update * remove unused * remove unused * format * fix tests * fix * fix * fix naming * format * fix test * set test up for 1.11 * fix test * rename to number_density * back merge * fix * format * fix * fix tests * back merge from #584 * move additonal changes from #584 * add test * add test * format * Increase errors for 1.11 * Fix invalidations * Fix tests * Update ci.yml * revert * Update ci.yml * Update test/validation/validation.jl Co-authored-by: Erik Faulhaber <[email protected]> * format * Update news and set to 0.2.4 * update * fix MD format * Update NEWS.md * some fixes * add docs * review fixes * remove independent setting of smoothing_kernel and smoothing_length * remove calls to surface_normal method smoothing kernel * format * update news * typo * Update NEWS.md * forgot some renames * fix doc tests * fix docs * fix tests * format * Update NEWS.md * fix tests * Update NEWS.md * fix * fix * fix * fix * review fixes * review comments * fix test * typo * review updates * review update * add boundary system * update * update * format * remove color since it is unused in this PR * review comment * format * merge error * review comment * fix * remove surface_normal_method() * merge error * function was renamed in PN * format * fix test * fix error * fix * review comments * review comments * review comments * format * merge * format * add comment * remove ideal_neighbor() * format * typo * add missing docs * only initialize necessary values * fix test * fix examples --------- Co-authored-by: Erik Faulhaber <[email protected]>
- Loading branch information
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
name = "TrixiParticles" | ||
uuid = "66699cd8-9c01-4e9d-a059-b96c86d16b3a" | ||
authors = ["erik.faulhaber <[email protected]>"] | ||
version = "0.2.6-dev" | ||
version = "0.2.6" | ||
|
||
[deps] | ||
Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
# [Fluid Models](@id fluid_models) | ||
Currently available fluid methods are the [weakly compressible SPH method](@ref wcsph) and the [entropically damped artificial compressibility for SPH](@ref edac). | ||
This page lists models and techniques that apply to both of these methods. | ||
|
||
## [Viscosity](@id viscosity_wcsph) | ||
|
||
TODO: Explain viscosity. | ||
|
||
```@autodocs | ||
Modules = [TrixiParticles] | ||
Pages = [joinpath("schemes", "fluid", "viscosity.jl")] | ||
``` | ||
|
||
## [Corrections](@id corrections) | ||
|
||
```@autodocs | ||
Modules = [TrixiParticles] | ||
Pages = [joinpath("general", "corrections.jl")] | ||
``` | ||
|
||
|
||
|
||
## [Surface Normals](@id surface_normal) | ||
```@autodocs | ||
Modules = [TrixiParticles] | ||
Pages = [joinpath("schemes", "fluid", "surface_normal_sph.jl")] | ||
``` | ||
|
||
## [Surface Tension](@id surface_tension) | ||
|
||
### Akinci-based intra-particle force surface tension and wall adhesion model | ||
The work by Akinci proposes three forces: | ||
- a cohesion force | ||
- a surface area minimization force | ||
- a wall adhesion force | ||
|
||
The classical model is composed of the curvature minimization and cohesion force. | ||
|
||
#### Cohesion force | ||
The model calculates the cohesion force based on the support radius ``h_c`` and the distance between particles. | ||
This force is determined using two distinct regimes within the support radius: | ||
- For particles closer than half the support radius, | ||
a repulsive force is calculated to prevent particles from clustering too tightly, | ||
enhancing the simulation's stability and realism. | ||
- Beyond half the support radius and within the full support radius, | ||
an attractive force is computed, simulating the effects of surface tension that draw particles together. | ||
The cohesion force, ``F_{\text{cohesion}}``, for a pair of particles is given by: | ||
```math | ||
F_{\text{cohesion}} = -\sigma m_b C(r) \frac{r}{\Vert r \Vert}, | ||
``` | ||
where: | ||
- ``\sigma`` represents the surface tension coefficient, adjusting the overall strength of the cohesion effect. | ||
- ``C`` is a scalar function of the distance between particles. | ||
|
||
The cohesion kernel ``C`` is defined as | ||
```math | ||
C(r)=\frac{32}{\pi h_c^9} | ||
\begin{cases} | ||
(h_c-r)^3 r^3, & \text{if } 2r > h_c \\ | ||
2(h_c-r)^3 r^3 - \frac{h^6}{64}, & \text{if } r > 0 \text{ and } 2r \leq h_c \\ | ||
0, & \text{otherwise} | ||
\end{cases} | ||
``` | ||
|
||
#### Surface area minimization force | ||
To model the minimization of the surface area and curvature of the fluid, a curvature force is used, which is calculated as | ||
```math | ||
F_{\text{curvature}} = -\sigma (n_a - n_b) | ||
``` | ||
|
||
#### Wall adhesion force | ||
The wall adhesion model proposed by Akinci et al. is based on a kernel function which is 0 from 0.0 to 0.5 support radiia with a maximum at 0.75. | ||
With the force calculated with an adhesion coefficient ``\beta`` as | ||
```math | ||
F_{\text{adhesion}} = -\beta m_b A(r) \frac{r}{\Vert r \Vert}, | ||
``` | ||
with ``A`` being the adhesion kernel defined as | ||
```math | ||
A(r)= \frac{0.007}{h_c^{3.25}} | ||
\begin{cases} | ||
\sqrt[4]{- \frac{4r^2}{h_c} + 6r - 2h_c}, & \text{if } 2r > h_c \text{ and } r \leq h_c \\ | ||
0, & \text{otherwise.} | ||
\end{cases} | ||
``` | ||
|
||
```@autodocs | ||
Modules = [TrixiParticles] | ||
Pages = [joinpath("schemes", "fluid", "surface_tension.jl")] | ||
``` |
1 comment
on commit 2540f08
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Registration pull request created: JuliaRegistries/General/124003
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register
Release notes:
## Breaking changes
- blah
To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.2.6 -m "<description of version>" 2540f081bf829be1baaea75ee69413a66f3d17d0
git push origin v0.2.6
@JuliaRegistrator register