diff --git a/docs/Project.toml b/docs/Project.toml index dd77843a1..724652ce4 100644 --- a/docs/Project.toml +++ b/docs/Project.toml @@ -1,11 +1,13 @@ [deps] Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4" +DocumenterCitations = "daee34ce-89f3-4625-b898-19384cb65244" OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" PointNeighbors = "1c4d5385-0a27-49de-8e2c-43b175c8985c" TrixiBase = "9a0f1c46-06d5-4909-a5a3-ce25d3fa3284" [compat] Documenter = "1" +DocumenterCitations = "1" OrdinaryDiffEq = "6" PointNeighbors = "0.4" TrixiBase = "0.1" diff --git a/docs/make.jl b/docs/make.jl index a00209908..7360ffb87 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -1,4 +1,4 @@ -using Documenter +using Documenter, DocumenterCitations using TrixiParticles using TrixiBase using PointNeighbors @@ -90,7 +90,10 @@ copy_file("NEWS.md") # Define module-wide setups such that the respective modules are available in doctests DocMeta.setdocmeta!(TrixiParticles, :DocTestSetup, :(using TrixiParticles); recursive=true) +bib = CitationBibliography(joinpath(@__DIR__, "src", "refs.bib")) + makedocs(sitename="TrixiParticles.jl", + plugins=[bib], # Run doctests and check docs for the following modules modules=[TrixiParticles], format=Documenter.HTML(), @@ -139,6 +142,7 @@ makedocs(sitename="TrixiParticles.jl", "Contributing" => "contributing.md", "Code of Conduct" => "code_of_conduct.md", "License" => "license.md", + "References" => "references.md", ]) deploydocs(repo="github.com/trixi-framework/TrixiParticles.jl", diff --git a/docs/src/preprocessing/preprocessing.md b/docs/src/preprocessing/preprocessing.md index 67192221f..2f6cb7054 100644 --- a/docs/src/preprocessing/preprocessing.md +++ b/docs/src/preprocessing/preprocessing.md @@ -15,12 +15,12 @@ Here, ``\Theta_i`` is the *signed* angle between ``\mathbf{c}_i - \mathbf{p}`` a In 3D, we refer to the solid angle of an *oriented* triangle with respect to ``\mathbf{p}``. We provide the following methods to calculate ``w(\mathbf{p})``: -- Hormann et al. (2001) evaluate the winding number combined with an even-odd rule, but only for 2D polygons (see [WindingNumberHormann](@ref)). -- Naive winding: Jacobson et al. (2013) generalized the winding number so that the algorithm can be applied for both 2D and 3D geometries (see [WindingNumberJacobson](@ref)). -- Hierarchical winding: Jacobson et al. (2013) also introduced a fast hierarchical evaluation of the winding number. For further information see the description below. +- [Hormann et al. (2001)](@cite Hormann2001) evaluate the winding number combined with an even-odd rule, but only for 2D polygons (see [WindingNumberHormann](@ref)). +- Naive winding: [Jacobson et al. (2013)](@cite Jacobson2013) generalized the winding number so that the algorithm can be applied for both 2D and 3D geometries (see [WindingNumberJacobson](@ref)). +- Hierarchical winding: [Jacobson et al. (2013)](@cite Jacobson2013) also introduced a fast hierarchical evaluation of the winding number. For further information see the description below. ## [Hierarchical Winding](@id hierarchical_winding) -According to Jacobson et al. (2013) the winding number with respect to a polygon (2D) or triangle mesh (3D) is the sum of the winding numbers with respect to each edge (2D) or face (3D). +According to [Jacobson et al. (2013)](@cite Jacobson2013) the winding number with respect to a polygon (2D) or triangle mesh (3D) is the sum of the winding numbers with respect to each edge (2D) or face (3D). We can show this with the following example in which we determine the winding number for each edge of a triangle separately and sum them up: ```julia @@ -164,7 +164,7 @@ Splitting stops when the number of a box's edges slips below a threshold (usually ``\approx 100`` faces in 3D, here: 6 edges). (3): -For the closure, Jacobson et al. (2013) define *exterior vertices* (*exterior edges* in 3D) +For the closure, [Jacobson et al. (2013)](@cite Jacobson2013) define *exterior vertices* (*exterior edges* in 3D) as boundary vertices of such a segmentation (red dots in (3)). To find them, we traverse around each edge (face in 3D) in order, and increment or decrement for each vertex (edge) a specific counter. @@ -210,7 +210,7 @@ This is because the property ``w_{\mathcal{S}}(\mathbf{p}) = - w_{\bar{\mathcal{ only holds when ``\mathbf{p}`` is outside of ``\mathcal{B}``, which is not the case here. #### Correct evaluation -Jacobson et al. (2013) don't mention this problem or provide a solution to it. +[Jacobson et al. (2013)](@cite Jacobson2013) don't mention this problem or provide a solution to it. We contacted the authors and found that they know about this problem and solve it by resizing the bounding box to fully include the closing surface of the neighboring box, since it doesn't matter if the boxes overlap. @@ -255,11 +255,3 @@ Pages = [joinpath("preprocessing", "point_in_poly", "winding_number_jacobson.jl" Modules = [TrixiParticles] Pages = [joinpath("preprocessing", "geometries", "io.jl")] ``` - -### [References](@id references_complex_shape) -- Alec Jacobson, Ladislav Kavan, and Olga Sorkine-Hornung "Robust inside-outside segmentation using generalized winding numbers". - In: ACM Transactions on Graphics, 32.4 (2013), pages 1--12. - [doi: 10.1145/2461912.2461916](https://igl.ethz.ch/projects/winding-number/robust-inside-outside-segmentation-using-generalized-winding-numbers-siggraph-2013-jacobson-et-al.pdf) -- Kai Hormann, Alexander Agathos "The point in polygon problem for arbitrary polygons". - In: Computational Geometry, 20.3 (2001), pages 131--144. - [doi: 10.1016/s0925-7721(01)00012-8](https://doi.org/10.1016/S0925-7721(01)00012-8) diff --git a/docs/src/references.md b/docs/src/references.md new file mode 100644 index 000000000..e4c978135 --- /dev/null +++ b/docs/src/references.md @@ -0,0 +1,2 @@ +```@bibliography +``` diff --git a/docs/src/refs.bib b/docs/src/refs.bib new file mode 100644 index 000000000..86df0782f --- /dev/null +++ b/docs/src/refs.bib @@ -0,0 +1,610 @@ +@Article{Adami2012, + author = {Adami, S. and Hu, X.Y. and Adams, N.A.}, + journal = {Journal of Computational Physics}, + title = {A generalized wall boundary condition for smoothed particle hydrodynamics}, + year = {2012}, + issn = {0021-9991}, + month = aug, + number = {21}, + pages = {7057--7075}, + volume = {231}, + doi = {10.1016/j.jcp.2012.05.005}, + publisher = {Elsevier BV}, +} + + +@Article{Akinci2012, + author = {Akinci, Nadir and Ihmsen, Markus and Akinci, Gizem and Solenthaler, Barbara and Teschner, Matthias}, + journal = {ACM Transactions on Graphics}, + title = {Versatile rigid-fluid coupling for incompressible SPH}, + year = {2012}, + issn = {1557-7368}, + month = jul, + number = {4}, + pages = {1--8}, + volume = {31}, + doi = {10.1145/2185520.2185558}, + publisher = {Association for Computing Machinery (ACM)}, +} + + +@Article{Akinci2013, + author = {Akinci, Nadir and Akinci, Gizem and Teschner, Matthias}, + journal = {ACM Transactions on Graphics}, + title = {Versatile surface tension and adhesion for SPH fluids}, + year = {2013}, + issn = {1557-7368}, + month = nov, + number = {6}, + pages = {1--8}, + volume = {32}, + doi = {10.1145/2508363.2508395}, + publisher = {Association for Computing Machinery (ACM)}, +} + + +@Article{Antuono2010, + author = {Antuono, M. and Colagrossi, A. and Marrone, S. and Molteni, D.}, + journal = {Computer Physics Communications}, + title = {Free-surface flows solved by means of SPH schemes with numerical diffusive terms}, + year = {2010}, + issn = {0010-4655}, + month = mar, + number = {3}, + pages = {532--549}, + volume = {181}, + doi = {10.1016/j.cpc.2009.11.002}, + publisher = {Elsevier BV}, +} + + +@Article{Antuono2012, + author = {Antuono, M. and Colagrossi, A. and Marrone, S.}, + journal = {Computer Physics Communications}, + title = {Numerical diffusive terms in weakly-compressible SPH schemes}, + year = {2012}, + issn = {0010-4655}, + month = dec, + number = {12}, + pages = {2570--2580}, + volume = {183}, + doi = {10.1016/j.cpc.2012.07.006}, + publisher = {Elsevier BV}, +} + + +@Article{Antuono2015, + author = {Antuono, M. and Marrone, S. and Colagrossi, A. and Bouscasse, B.}, + journal = {Computer Methods in Applied Mechanics and Engineering}, + title = {Energy balance in the Delta-SPH scheme}, + year = {2015}, + issn = {0045-7825}, + month = jun, + pages = {209--226}, + volume = {289}, + doi = {10.1016/j.cma.2015.02.004}, + publisher = {Elsevier BV}, +} + + +@Article{Band2018, + author = {Band, Stefan and Gissler, Christoph and Peer, Andreas and Teschner, Matthias}, + journal = {Computers \& Graphics}, + title = {MLS pressure boundaries for divergence-free and viscous SPH fluids}, + year = {2018}, + issn = {0097-8493}, + month = nov, + pages = {37--46}, + volume = {76}, + doi = {10.1016/j.cag.2018.08.001}, + publisher = {Elsevier BV}, +} + + +@Article{Basa2008, + author = {Basa, Mihai and Quinlan, Nathan J. and Lastiwka, Martin}, + journal = {International Journal for Numerical Methods in Fluids}, + title = {Robustness and accuracy of SPH formulations for viscous flow}, + year = {2008}, + issn = {1097-0363}, + month = oct, + number = {10}, + pages = {1127--1148}, + volume = {60}, + doi = {10.1002/fld.1927}, + publisher = {Wiley}, +} + + +@Article{Belytschko2000, + author = {Belytschko, Ted and Guo, Yong and Liu, Wing Kam and Xiao, Shao Ping}, + journal = {International Journal for Numerical Methods in Engineering}, + title = {A unified stability analysis of meshless particle methods}, + year = {2000}, + number = {9}, + pages = {1359-1400}, + volume = {48}, + abstract = {Abstract A unified stability analysis of meshless methods with Eulerian and Lagrangian kernels is presented. Three types of instabilities were identified in one dimension: an instability due to rank deficiency, a tensile instability and a material instability which is also found in continua. The stability of particle methods with Eulerian and Lagrangian kernels is markedly different: Lagrangian kernels do not exhibit the tensile instability. In both kernels, the instability due to rank deficiency can be suppressed by stress points. In two dimensions the stabilizing effect of stress points is dependent on their locations. It was found that the best approach to stable particle discretizations is to use Lagrangian kernels with stress points. The stability of the least-squares stabilization was also studied. Copyright © 2000 John Wiley \& Sons, Ltd.}, + doi = {10.1002/1097-0207}, + keywords = {particle methods, stability, kernel}, +} + + +@InCollection{Bicanic2004, + author = {Bi{\'c}ani{\'c}, Nenad}, + booktitle = {Discrete Element Methods}, + publisher = {Wiley}, + title = {Discrete Element Methods}, + year = {2004}, + isbn = {9780470091357}, + month = aug, + doi = {10.1002/0470091355.ecm006.pub2}, + journal = {Encyclopedia of Computational Mechanics}, +} + + +@Article{Bonet1999, + author = {Bonet, J. and Lok, T.-S.L.}, + journal = {Computer Methods in Applied Mechanics and Engineering}, + title = {Variational and momentum preservation aspects of Smooth Particle Hydrodynamic formulations}, + year = {1999}, + issn = {0045-7825}, + month = nov, + number = {1–2}, + pages = {97--115}, + volume = {180}, + doi = {10.1016/s0045-7825(99)00051-1}, + publisher = {Elsevier BV}, +} + + +@Article{Clausen2013, + author = {Clausen, Jonathan R.}, + journal = {Physical Review E}, + title = {Entropically damped form of artificial compressibility for explicit simulation of incompressible flow}, + year = {2013}, + issn = {1550-2376}, + month = jan, + number = {1}, + pages = {013309}, + volume = {87}, + doi = {10.1103/physreve.87.013309}, + publisher = {American Physical Society (APS)}, +} + + +@Article{Cole1948, + author = {Cole, Robert H. and Weller, Royal}, + journal = {Physics Today}, + title = {Underwater Explosions}, + year = {1948}, + number = {6}, + pages = {35--35}, + volume = {1}, + doi = {10.1063/1.3066176}, + publisher = {AIP Publishing}, +} + + +@Article{Crespo2007, + author = {Crespo, A. J. C. and Gomez-Gesteira, M. and Dalrymple, R. A.}, + journal = {Computers, Materials and Continua}, + title = {Boundary Conditions Generated by Dynamic Particles in SPH Methods}, + year = {2007}, + number = {3}, + pages = {173--184}, + volume = {5}, + doi = {10.3970/cmc.2007.005.173}, +} + + +@Article{Cundall1979, + author = {Cundall, P. A. and Strack, O. D. L.}, + journal = {Géotechnique}, + title = {A discrete numerical model for granular assemblies}, + year = {1979}, + issn = {1751-7656}, + month = mar, + number = {1}, + pages = {47--65}, + volume = {29}, + doi = {10.1680/geot.1979.29.1.47}, + publisher = {Thomas Telford Ltd.}, +} + + +@Article{Dehnen2012, + author = {Dehnen, Walter and Aly, Hossam}, + journal = {Monthly Notices of the Royal Astronomical Society}, + title = {Improving convergence in smoothed particle hydrodynamics simulations without pairing instability: SPH without pairing instability}, + year = {2012}, + issn = {0035-8711}, + month = aug, + number = {2}, + pages = {1068--1082}, + volume = {425}, + doi = {10.1111/j.1365-2966.2012.21439.x}, + publisher = {Oxford University Press (OUP)}, +} + + +@Article{DiRenzo2004, + author = {Di Renzo, Alberto and Di Maio, Francesco Paolo}, + journal = {Chemical Engineering Science}, + title = {Comparison of contact-force models for the simulation of collisions in DEM-based granular flow codes}, + year = {2004}, + issn = {0009-2509}, + month = feb, + number = {3}, + pages = {525--541}, + volume = {59}, + doi = {10.1016/j.ces.2003.09.037}, + publisher = {Elsevier BV}, +} + + +@Article{Ferrari2009, + author = {Ferrari, Angela and Dumbser, Michael and Toro, Eleuterio F. and Armanini, Aronne}, + journal = {Computers \& Fluids}, + title = {A new 3D parallel SPH scheme for free surface flows}, + year = {2009}, + issn = {0045-7930}, + month = jun, + number = {6}, + pages = {1203--1217}, + volume = {38}, + doi = {10.1016/j.compfluid.2008.11.012}, + publisher = {Elsevier BV}, +} + + +@Article{Fourtakas2019, + author = {Fourtakas, Georgios and Dominguez, Jose M. and Vacondio, Renato and Rogers, Benedict D.}, + journal = {Computers \& Fluids}, + title = {Local uniform stencil (LUST) boundary condition for arbitrary 3-D boundaries in parallel smoothed particle hydrodynamics (SPH) models}, + year = {2019}, + issn = {0045-7930}, + month = aug, + pages = {346--361}, + volume = {190}, + doi = {10.1016/j.compfluid.2019.06.009}, + publisher = {Elsevier BV}, +} + + +@Article{Ganzenmueller2015, + author = {Ganzenmüller, Georg C.}, + journal = {Computer Methods in Applied Mechanics and Engineering}, + title = {An hourglass control algorithm for Lagrangian Smooth Particle Hydrodynamics}, + year = {2015}, + issn = {0045-7825}, + month = apr, + pages = {87--106}, + volume = {286}, + doi = {10.1016/j.cma.2014.12.005}, + publisher = {Elsevier BV}, +} + + +@Article{Giles1990, + author = {Giles, Michael B.}, + journal = {AIAA Journal}, + title = {Nonreflecting boundary conditions for Euler equation calculations}, + year = {1990}, + issn = {1533-385X}, + month = dec, + number = {12}, + pages = {2050--2058}, + volume = {28}, + doi = {10.2514/3.10521}, + publisher = {American Institute of Aeronautics and Astronautics (AIAA)}, +} + + +@Article{Hormann2001, + author = {Hormann, Kai and Agathos, Alexander}, + journal = {Computational Geometry}, + title = {The point in polygon problem for arbitrary polygons}, + year = {2001}, + issn = {0925-7721}, + month = nov, + number = {3}, + pages = {131--144}, + volume = {20}, + doi = {10.1016/s0925-7721(01)00012-8}, + publisher = {Elsevier BV}, +} + + +@Article{Jacobson2013, + author = {Jacobson, Alec and Kavan, Ladislav and Sorkine-Hornung, Olga}, + journal = {ACM Transactions on Graphics}, + title = {Robust inside-outside segmentation using generalized winding numbers}, + year = {2013}, + issn = {1557-7368}, + month = jul, + number = {4}, + pages = {1--12}, + volume = {32}, + doi = {10.1145/2461912.2461916}, + publisher = {Association for Computing Machinery (ACM)}, +} + + +@Article{Lastiwka2008, + author = {Lastiwka, Martin and Basa, Mihai and Quinlan, Nathan J.}, + journal = {International Journal for Numerical Methods in Fluids}, + title = {Permeable and non‐reflecting boundary conditions in SPH}, + year = {2008}, + issn = {1097-0363}, + month = dec, + number = {7}, + pages = {709--724}, + volume = {61}, + doi = {10.1002/fld.1971}, + publisher = {Wiley}, +} + + +@Article{Li1996, + author = {Li, Shaofan and Liu, Wing Kam}, + journal = {Computer Methods in Applied Mechanics and Engineering}, + title = {Moving least-square reproducing kernel method Part II: Fourier analysis}, + year = {1996}, + issn = {0045-7825}, + month = dec, + number = {1–4}, + pages = {159--193}, + volume = {139}, + doi = {10.1016/s0045-7825(96)01082-1}, + publisher = {Elsevier BV}, +} + + +@Article{Molteni2009, + author = {Molteni, Diego and Colagrossi, Andrea}, + journal = {Computer Physics Communications}, + title = {A simple procedure to improve the pressure evaluation in hydrodynamic context using the SPH}, + year = {2009}, + issn = {0010-4655}, + month = jun, + number = {6}, + pages = {861--872}, + volume = {180}, + doi = {10.1016/j.cpc.2008.12.004}, + publisher = {Elsevier BV}, +} + + +@Article{Monaghan1985, + author = {Monaghan, J.J.}, + journal = {Computer Physics Reports}, + title = {Particle methods for hydrodynamics}, + year = {1985}, + issn = {0167-7977}, + month = oct, + number = {2}, + pages = {71--124}, + volume = {3}, + doi = {10.1016/0167-7977(85)90010-3}, + publisher = {Elsevier BV}, +} + + +@Article{Monaghan1989, + author = {J.J. Monaghan}, + journal = {Journal of Computational Physics}, + title = {On the problem of penetration in particle methods}, + year = {1989}, + issn = {0021-9991}, + number = {1}, + pages = {1-15}, + volume = {82}, + abstract = {A method is described which prevents penetration when particle methods are used to simulate streams of fluid impinging on each other. The method does not produce dissipation but it does produce extra dispersion.}, + doi = {10.1016/0021-9991(89)90032-6}, + url = {https://www.sciencedirect.com/science/article/pii/0021999189900326}, +} + + +@Article{Monaghan1992, + author = {Monaghan, J. J.}, + journal = {Annual Review of Astronomy and Astrophysics}, + title = {Smoothed Particle Hydrodynamics}, + year = {1992}, + issn = {1545-4282}, + month = sep, + number = {1}, + pages = {543--574}, + volume = {30}, + doi = {10.1146/annurev.aa.30.090192.002551}, + publisher = {Annual Reviews}, +} + + +@Article{Monaghan1994, + author = {Monaghan, J.J.}, + journal = {Journal of Computational Physics}, + title = {Simulating Free Surface Flows with SPH}, + year = {1994}, + issn = {0021-9991}, + month = feb, + number = {2}, + pages = {399--406}, + volume = {110}, + doi = {10.1006/jcph.1994.1034}, + publisher = {Elsevier BV}, +} + +@Article{Monaghan2005, + author = {Monaghan, J J}, + journal = {Reports on Progress in Physics}, + title = {Smoothed particle hydrodynamics}, + year = {2005}, + issn = {1361-6633}, + month = jul, + number = {8}, + pages = {1703--1759}, + volume = {68}, + doi = {10.1088/0034-4885/68/8/r01}, + publisher = {IOP Publishing}, +} + +@Article{Monaghan2009, + author = {Monaghan, J.J. and Kajtar, J.B.}, + journal = {Computer Physics Communications}, + title = {SPH particle boundary forces for arbitrary boundaries}, + year = {2009}, + issn = {0010-4655}, + month = oct, + number = {10}, + pages = {1811--1820}, + volume = {180}, + doi = {10.1016/j.cpc.2009.05.008}, + publisher = {Elsevier BV}, +} + +@Article{Morris1997, + author = {Morris, Joseph P. and Fox, Patrick J. and Zhu, Yi}, + journal = {Journal of Computational Physics}, + title = {Modeling Low Reynolds Number Incompressible Flows Using SPH}, + year = {1997}, + issn = {0021-9991}, + month = sep, + number = {1}, + pages = {214--226}, + volume = {136}, + doi = {10.1006/jcph.1997.5776}, + publisher = {Elsevier BV}, +} + +@InProceedings{Mueller2003, + author = {M{\"u}ller, Matthias and Charypar, David and Gross, Markus}, + booktitle = {Proceedings of the 2003 ACM SIGGRAPH/Eurographics Symposium on Computer Animation}, + title = {Particle-Based Fluid Simulation for Interactive Applications}, + year = {2003}, + month = {07}, + pages = {154-159}, + publisher = {Eurographics Association}, + doi = {10.2312/SCA/SCA03/154-159}, + isbn = {1581136595}, +} + +@Article{Negi2020, + author = {Negi, Pawan and Ramachandran, Prabhu and Haftu, Asmelash}, + journal = {Computer Methods in Applied Mechanics and Engineering}, + title = {An improved non-reflecting outlet boundary condition for weakly-compressible SPH}, + year = {2020}, + issn = {0045-7825}, + month = aug, + pages = {113119}, + volume = {367}, + doi = {10.1016/j.cma.2020.113119}, + publisher = {Elsevier BV}, +} + +@Article{O’Connor2021, + author = {O’Connor, Joseph and Rogers, Benedict D.}, + journal = {Journal of Fluids and Structures}, + title = {A fluid–structure interaction model for free-surface flows and flexible structures using smoothed particle hydrodynamics on a GPU}, + year = {2021}, + issn = {0889-9746}, + month = jul, + pages = {103312}, + volume = {104}, + doi = {10.1016/j.jfluidstructs.2021.103312}, + publisher = {Elsevier BV}, +} + +@InProceedings{Panizzo2007, + author = {Panizzo, Andrea and Cuomo, Giovanni and Dalrymple, Robert A.}, + booktitle = {Coastal Engineering 2006}, + title = {3D-SPH SIMULATION OF LANDSLIDE GENERATED WAVES}, + year = {2007}, + month = apr, + publisher = {World Scientific Publishing Company}, + doi = {10.1142/9789812709554_0128}, +} + +@Article{Price2012, + author = {Price, Daniel J.}, + journal = {Journal of Computational Physics}, + title = {Smoothed particle hydrodynamics and magnetohydrodynamics}, + year = {2012}, + issn = {0021-9991}, + month = feb, + number = {3}, + pages = {759--794}, + volume = {231}, + doi = {10.1016/j.jcp.2010.12.011}, + publisher = {Elsevier BV}, +} + +@Article{Ramachandran2019, + author = {Ramachandran, Prabhu and Puri, Kunal}, + journal = {Computers \& Fluids}, + title = {Entropically damped artificial compressibility for SPH}, + year = {2019}, + issn = {0045-7930}, + month = jan, + pages = {579--594}, + volume = {179}, + doi = {10.1016/j.compfluid.2018.11.023}, + publisher = {Elsevier BV}, +} + +@Article{Schoenberg1946, + author = {Schoenberg, I. J.}, + journal = {Quarterly of Applied Mathematics}, + title = {Contributions to the problem of approximation of equidistant data by analytic functions. Part B. On the problem of osculatory interpolation. A second class of analytic approximation formulae}, + year = {1946}, + issn = {1552-4485}, + number = {2}, + pages = {112--141}, + volume = {4}, + doi = {10.1090/qam/16705}, + publisher = {American Mathematical Society (AMS)}, +} + +@Article{Sun2017, + author = {Sun, P.N. and Colagrossi, A. and Marrone, S. and Zhang, A.M.}, + journal = {Computer Methods in Applied Mechanics and Engineering}, + title = {Delta-SPH model: Simple procedures for a further improvement of the SPH scheme}, + year = {2017}, + issn = {0045-7825}, + month = mar, + pages = {25--49}, + volume = {315}, + doi = {10.1016/j.cma.2016.10.028}, + publisher = {Elsevier BV}, +} + + +@Article{Valizadeh2015, + author = {Valizadeh, Alireza and Monaghan, Joseph J.}, + journal = {Journal of Computational Physics}, + title = {A study of solid wall models for weakly compressible SPH}, + year = {2015}, + issn = {0021-9991}, + month = nov, + pages = {5--19}, + volume = {300}, + doi = {10.1016/j.jcp.2015.07.033}, + publisher = {Elsevier BV}, +} + + +@Article{Wendland1995, + author = {Wendland, Holger}, + journal = {Advances in Computational Mathematics}, + title = {Piecewise polynomial, positive definite and compactly supported radial functions of minimal degree}, + year = {1995}, + issn = {1572-9044}, + month = dec, + number = {1}, + pages = {389--396}, + volume = {4}, + doi = {10.1007/bf02123482}, + publisher = {Springer Science and Business Media LLC}, +} + +@Comment{jabref-meta: databaseType:bibtex;} diff --git a/docs/src/systems/boundary.md b/docs/src/systems/boundary.md index a5c3947f6..29384b6d1 100644 --- a/docs/src/systems/boundary.md +++ b/docs/src/systems/boundary.md @@ -35,8 +35,8 @@ To sum over neighboring particles, a `smoothing_kernel` and `smoothing_length` n This should be the same as for the adjacent fluid system with the largest smoothing length. In the literature, this kind of boundary particles is referred to as -"dummy particles" (Adami et al., 2012 and Valizadeh & Monaghan, 2015), -"frozen fluid particles" (Akinci et al., 2012) or "dynamic boundaries (Crespo et al., 2007). +"dummy particles" ([Adami et al., 2012](@cite Adami2012) and [Valizadeh & Monaghan, 2015](@cite Valizadeh2015)), +"frozen fluid particles" ([Akinci et al., 2012](@cite Akinci2012)) or "dynamic boundaries [Crespo et al., 2007](@cite Crespo2007). The key detail of this boundary condition and the only difference between the boundary models in these references is the way the density and pressure of boundary particles is computed. @@ -57,7 +57,7 @@ of the boundary particle ``b``. We provide five options to compute the boundary density and pressure, determined by the `density_calculator`: 1. (Recommended) With [`AdamiPressureExtrapolation`](@ref), the pressure is extrapolated from the pressure of the - fluid according to (Adami et al., 2012), and the density is obtained by applying the inverse of the state equation. + fluid according to [Adami et al., 2012](@cite Adami2012), and the density is obtained by applying the inverse of the state equation. This option usually yields the best results of the options listed here. 2. With [`SummationDensity`](@ref), the density is calculated by summation over the neighboring particles, and the pressure is computed from the density with the state equation. @@ -81,7 +81,7 @@ We provide five options to compute the boundary density and pressure, determined #### 1. [`AdamiPressureExtrapolation`](@ref) The pressure of the boundary particles is obtained by extrapolating the pressure of the fluid -according to (Adami et al., 2012). +according to [Adami et al., 2012](@cite Adami2012). The pressure of a boundary particle ``b`` is given by ```math p_b = \frac{\sum_f (p_f + \rho_f (\bm{g} - \bm{a}_b) \cdot \bm{r}_{bf}) W(\Vert r_{bf} \Vert, h)}{\sum_f W(\Vert r_{bf} \Vert, h)}, @@ -119,15 +119,15 @@ The momentum equation therefore becomes ``` where the first sum is over all fluid particles and the second over all boundary particles. -This approach was first mentioned by Akinci et al. (2012) and written down in this form -by Band et al. (2018). +This approach was first mentioned by [Akinci et al. (2012)](@cite Akinci2012) and written down in this form +by [Band et al. (2018)](@cite Band2018). ```@docs PressureMirroring ``` ### No-slip conditions -For the interaction of dummy particles and fluid particles, Adami et al. (2012) +For the interaction of dummy particles and fluid particles, [Adami et al. (2012)](@cite Adami2012) 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 @@ -148,31 +148,9 @@ condition is applied. The viscosity model [`ArtificialViscosityMonaghan`](@ref) for [`BoundaryModelDummyParticles`](@ref) has not been verified yet. -### References -- S. Adami, X. Y. Hu, N. A. Adams. - "A generalized wall boundary condition for smoothed particle hydrodynamics". - In: Journal of Computational Physics 231, 21 (2012), pages 7057–7075. - [doi: 10.1016/J.JCP.2012.05.005](https://doi.org/10.1016/J.JCP.2012.05.005) -- Alireza Valizadeh, Joseph J. Monaghan. - "A study of solid wall models for weakly compressible SPH". - In: Journal of Computational Physics 300 (2015), pages 5–19. - [doi: 10.1016/J.JCP.2015.07.033](https://doi.org/10.1016/J.JCP.2015.07.033) -- Nadir Akinci, Markus Ihmsen, Gizem Akinci, Barbara Solenthaler, Matthias Teschner. - "Versatile rigid-fluid coupling for incompressible SPH". - ACM Transactions on Graphics 31, 4 (2012), pages 1–8. - [doi: 10.1145/2185520.2185558](https://doi.org/10.1145/2185520.2185558) -- A. J. C. Crespo, M. Gómez-Gesteira, R. A. Dalrymple. - "Boundary conditions generated by dynamic particles in SPH methods" - In: Computers, Materials and Continua 5 (2007), pages 173-184. - [doi: 10.3970/cmc.2007.005.173](https://doi.org/10.3970/cmc.2007.005.173) -- Stefan Band, Christoph Gissler, Andreas Peer, and Matthias Teschner. - "MLS Pressure Boundaries for Divergence-Free and Viscous SPH Fluids." - In: Computers & Graphics 76 (2018), pages 37–46. - [doi: 10.1016/j.cag.2018.08.001](https://doi.org/10.1016/j.cag.2018.08.001) - ## Repulsive Particles -Boundaries modeled as boundary particles which exert forces on the fluid particles (Monaghan, Kajtar, 2009). +Boundaries modeled as boundary particles which exert forces on the fluid particles ([Monaghan, Kajtar, 2009](@cite Monaghan2009)). The force on fluid particle ``a`` due to boundary particle ``b`` is given by ```math f_{ab} = m_a \left(\tilde{f}_{ab} - m_b \Pi_{ab} \nabla_{r_a} W(\Vert r_a - r_b \Vert, h)\right) @@ -185,11 +163,11 @@ with where ``m_a`` and ``m_b`` are the masses of fluid particle ``a`` and boundary particle ``b`` respectively, ``r_{ab} = r_a - r_b`` is the difference of the coordinates of particles ``a`` and ``b``, ``d`` denotes the boundary particle spacing and ``n`` denotes the number of -dimensions (see (Monaghan, Kajtar, 2009, Equation (3.1)) and (Valizadeh, Monaghan, 2015)). +dimensions (see [Monaghan & Kajtar, 2009](@cite Monaghan2009), Equation (3.1) and [Valizadeh & Monaghan, 2015](@cite Valizadeh2015)). Note that the repulsive acceleration $\tilde{f}_{ab}$ does not depend on the masses of the boundary particles. Here, ``\Phi`` denotes the 1D Wendland C4 kernel, normalized to ``1.77`` for ``q=0`` -(Monaghan, Kajtar, 2009, Section 4), with ``\Phi(r, h) = w(r/h)`` and +([Monaghan & Kajtar, 2009](@cite Monaghan2009), Section 4), with ``\Phi(r, h) = w(r/h)`` and ```math w(q) = \begin{cases} @@ -202,11 +180,11 @@ The boundary particles are assumed to have uniform spacing by the factor ``\beta than the expected fluid particle spacing. For example, if the fluid particles have an expected spacing of ``0.3`` and the boundary particles have a uniform spacing of ``0.1``, then this parameter should be set to ``\beta = 3``. -According to (Monaghan, Kajtar, 2009), a value of ``\beta = 3`` for the Wendland C4 that +According to [Monaghan & Kajtar (2009)](@cite Monaghan2009), a value of ``\beta = 3`` for the Wendland C4 that we use here is reasonable for most computing purposes. The parameter ``K`` is used to scale the force exerted by the boundary particles. -In (Monaghan, Kajtar, 2009), a value of ``gD`` is used for static tank simulations, +In [Monaghan & Kajtar (2009)](@cite Monaghan2009), a value of ``gD`` is used for static tank simulations, where ``g`` is the gravitational acceleration and ``D`` is the depth of the fluid. The viscosity ``\Pi_{ab}`` is calculated according to the viscosity used in the @@ -227,14 +205,6 @@ Modules = [TrixiParticles] Pages = [joinpath("schemes", "boundary", "monaghan_kajtar", "monaghan_kajtar.jl")] ``` -### References -- Joseph J. Monaghan, Jules B. Kajtar. "SPH particle boundary forces for arbitrary boundaries". - In: Computer Physics Communications 180.10 (2009), pages 1811–1820. - [doi: 10.1016/j.cpc.2009.05.008](https://doi.org/10.1016/j.cpc.2009.05.008) -- Alireza Valizadeh, Joseph J. Monaghan. "A study of solid wall models for weakly compressible SPH." - In: Journal of Computational Physics 300 (2015), pages 5–19. - [doi: 10.1016/J.JCP.2015.07.033](https://doi.org/10.1016/J.JCP.2015.07.033) - # [Open Boundaries](@id open_boundary) ```@autodocs @@ -265,7 +235,7 @@ and free of shock waves and significant viscous effects, it can be shown that th - ``J_2``, downstream-running characteristics, - ``J_3``, upstream-running characteristics. -Giles (1990) derived those variables based on a linearized set of governing equations: +[Giles (1990)](@cite Giles1990) derived those variables based on a linearized set of governing equations: ```math J_1 = -c_s^2 (\rho - \rho_{\text{ref}}) + (p - p_{\text{ref}}) ``` @@ -280,7 +250,7 @@ where the subscript "ref" denotes the reference flow near the boundaries, which Specifying the reference variables is **not** equivalent to prescription of ``\rho``, ``v`` and ``p`` directly, since the perturbation from the reference flow is allowed. -Lastiwka et al. (2009) applied the method of characteristic to SPH and determined the number of variables that should be +[Lastiwka et al. (2009)](@cite Lastiwka2008) applied the method of characteristic to SPH and determined the number of variables that should be **prescribed** at the boundary and the number which should be **propagated** from the fluid domain to the boundary: - For an **inflow** boundary: @@ -292,7 +262,7 @@ Lastiwka et al. (2009) applied the method of characteristic to SPH and determine - Transmit ``J_1`` and ``J_2`` from the fluid domain. Prescribing is done by simply setting the characteristics to zero. To transmit the characteristics from the fluid -domain, or in other words, to carry the information of the fluid to the boundaries, Negi et al. (2020) use a Shepard Interpolation +domain, or in other words, to carry the information of the fluid to the boundaries, [Negi et al. (2020)](@cite Negi2020) use a Shepard Interpolation ```math f_i = \frac{\sum_j^N f_j W_{ij}}{\sum_j^N W_{ij}}, ``` @@ -311,16 +281,3 @@ u - u_{\text{ref}}= \frac{1}{2\rho c_s} \left( J_2 - J_3 \right), p - p_{\text{ref}} = \frac{1}{2} \left( J_2 + J_3 \right). ``` With ``J_1``, ``J_2`` and ``J_3`` determined, we can easily solve for the actual variables for each particle. - -### References -- M. B. Giles. "Nonreflecting boundary conditions for Euler equation calculations". - In: AIAA Journal, 28.12 pages 2050--2058. - [doi: 10.2514/3.10521](https://doi.org/10.2514/3.10521) -- M. Lastiwka, M. Basa, N. J. Quinlan. - "Permeable and non-reflecting boundary conditions in SPH". - In: International Journal for Numerical Methods in Fluids 61, (2009), pages 709--724. - [doi: 10.1002/fld.1971](https://doi.org/10.1002/fld.1971) -- P. Negi, P. Ramachandran, A. Haftu. - "An improved non-reflecting outlet boundary condition for weakly-compressible SPH". - In: Computer Methods in Applied Mechanics and Engineering 367, (2020), pages 113--119. - [doi: 10.1016/j.cma.2020.113119](https://doi.org/10.1016/j.cma.2020.113119) diff --git a/docs/src/systems/dem.md b/docs/src/systems/dem.md index a593db01e..b96042ac5 100644 --- a/docs/src/systems/dem.md +++ b/docs/src/systems/dem.md @@ -1,14 +1,14 @@ # [Discrete Element Method](@id dem) The Discrete Element Method (DEM) is a computational technique widely used in physics, engineering, and applied mathematics for simulating the mechanical behavior of granular materials, such as powders, -sand, soil, or rock, as well as other discontinua. Unlike continuum mechanics that treats materials as +sand, soil, or rock, as well as other discontinua. Unlike continuum mechanics that treats materials as continuous, DEM considers individual particles or elements and their interactions. This approach provides detailed insights into the micro-mechanical behavior of materials, making it particularly valuable in fields such as geomechanics, material science, and mechanical engineering. ## Fundamental Principles The core idea behind DEM is the discretization of a material system into a finite set of distinct, -interacting mass elements (particles). These elements (particles) can vary in shape, size, and properties, and +interacting mass elements (particles). These elements (particles) can vary in shape, size, and properties, and they interact with each other and possibly with their boundaries through contact forces and potential fields. The motion and behavior of each mass element are governed by Newton's laws of motion, accounting for the forces and moments acting upon them. @@ -17,17 +17,3 @@ and moments acting upon them. Modules = [TrixiParticles] Pages = [joinpath("schemes", "solid", "discrete_element_method", "system.jl")] ``` - -## References -- N. Bićanić. "Discrete element methods". - In: Encyclopedia of Computational Mechanics (2007). - [doi: 10.1002/0470091355.ecm006.pub2](https://doi.org/10.1002/0470091355.ecm006.pub2) - -- P. Cundall and O. Strack. "A discrete numerical model for granular assemblies". - In: Géotechnique 29.1 (1979), pages 47--65. - [doi: 10.1680/geot.1979.29.1.47](https://doi.org/10.1680/geot.1979.29.1.47) - -- A. Renzo and F. Maio. "Comparison of contact-force models for the simulation of collisions in DEM-based granular flow codes" - In: Chemical Engineering Science 59.3 (2004), pages 525--541. - [doi: 10.1016/j.ces.2003.09.037](https://doi.org/10.1016/j.ces.2003.09.037) - diff --git a/docs/src/systems/entropically_damped_sph.md b/docs/src/systems/entropically_damped_sph.md index 499c5aafe..d035fb6fc 100644 --- a/docs/src/systems/entropically_damped_sph.md +++ b/docs/src/systems/entropically_damped_sph.md @@ -5,11 +5,11 @@ this scheme uses a pressure evolution equation to calculate the pressure ```math \frac{\mathrm{d} p_a}{\mathrm{d}t} = - \rho c_s^2 \nabla \cdot v + \nu \nabla^2 p, ``` -which is derived by Clausen (2013). This equation is similar to the continuity equation (first term, see +which is derived by [Clausen (2013)](@cite Clausen2013). This equation is similar to the continuity equation (first term, see [`ContinuityDensity`](@ref)), but also contains a pressure damping term (second term, similar to density diffusion see [`DensityDiffusion`](@ref)), which reduces acoustic pressure waves through an entropy-generation mechanism. -The pressure evolution is discretized with the SPH method by Ramachandran (2019) as following: +The pressure evolution is discretized with the SPH method by [Ramachandran (2019)](@cite Ramachandran2019) as following: The first term is equivalent to the classical artificial compressible methods, which are commonly motivated by assuming the artificial equation of state ([`StateEquationCole`](@ref) with `exponent=1`) @@ -31,26 +31,17 @@ The viscosity parameter ``\eta_a`` for a particle ``a`` is given as ```math \eta_a = \rho_a \frac{\alpha h c_s}{8}, ``` -where it is found in the numerical experiments of Ramachandran (2019) that ``\alpha = 0.5`` +where it is found in the numerical experiments of [Ramachandran (2019)](@cite Ramachandran2019) that ``\alpha = 0.5`` is a good choice for a wide range of Reynolds numbers (0.0125 to 10000). !!! note > The EDAC formulation keeps the density constant and this eliminates the need for the continuity equation > or the use of a summation density to find the pressure. However, in SPH discretizations, ``m/\rho`` > is typically used as a proxy for the particle volume. The density of the fluids can - > therefore be computed using the summation density approach. - Ramachandran (2019) + > therefore be computed using the summation density approach. [Ramachandran2019](@cite) ```@autodocs Modules = [TrixiParticles] Pages = [joinpath("schemes", "fluid", "entropically_damped_sph", "system.jl")] ``` - -### References -- Prabhu Ramachandran. "Entropically damped artificial compressibility for SPH". - In: Computers and Fluids 179 (2019), pages 579--594. - [doi: 10.1016/j.compfluid.2018.11.023](https://doi.org/10.1016/j.compfluid.2018.11.023) -- Jonathan R. Clausen. "Entropically damped form of artificial compressibility for explicit simulation of incompressible flow". - In: American Physical Society 87 (2013), page 13309. - [doi: 10.1103/PhysRevE.87.013309](http://dx.doi.org/10.1103/PhysRevE.87.013309) diff --git a/docs/src/systems/total_lagrangian_sph.md b/docs/src/systems/total_lagrangian_sph.md index 4245793be..83689e5b5 100644 --- a/docs/src/systems/total_lagrangian_sph.md +++ b/docs/src/systems/total_lagrangian_sph.md @@ -2,7 +2,7 @@ A Total Lagrangian framework is used wherein the governing equations are formulated such that all relevant quantities and operators are measured with respect to the -initial configuration (O’Connor & Rogers 2021, Belytschko et al. 2000). +initial configuration ([O’Connor & Rogers, 2021](@cite O’Connor2021), [Belytschko et al., 2000](@cite Belytschko2000)). The governing equations with respect to the initial configuration are given by: ```math @@ -11,7 +11,7 @@ The governing equations with respect to the initial configuration are given by: where the zero subscript denotes a derivative with respect to the initial configuration and $\bm{P}$ is the first Piola-Kirchhoff (PK1) stress tensor. -The discretized version of this equation is given by O’Connor & Rogers (2021): +The discretized version of this equation is given by [O’Connor & Rogers (2021)](@cite O’Connor2021): ```math \frac{\mathrm{d}\bm{v}_a}{\mathrm{d}t} = \sum_b m_{0b} \left( \frac{\bm{P}_a \bm{L}_{0a}}{\rho_{0a}^2} + \frac{\bm{P}_b \bm{L}_{0b}}{\rho_{0b}^2} \right) @@ -62,17 +62,6 @@ Modules = [TrixiParticles] Pages = [joinpath("schemes", "solid", "total_lagrangian_sph", "system.jl")] ``` -### References -- Joseph O’Connor, Benedict D. Rogers. - "A fluid-structure interaction model for free-surface flows and flexible structures using - smoothed particle hydrodynamics on a GPU". - In: Journal of Fluids and Structures 104 (2021). - [doi: 10.1016/J.JFLUIDSTRUCTS.2021.103312](https://doi.org/10.1016/J.JFLUIDSTRUCTS.2021.103312) -- Ted Belytschko, Yong Guo, Wing Kam Liu, Shao Ping Xiao. - "A unified stability analysis of meshless particle methods". - In: International Journal for Numerical Methods in Engineering 48 (2000), pages 1359–1400. - [doi: 10.1002/1097-0207](https://doi.org/10.1002/1097-0207) - ## Penalty Force In FEM, underintegrated elements can deform without an associated increase of energy. @@ -84,7 +73,7 @@ Particles can change positions without changing the SPH approximation of the def thus, without causing an increase of energy. To ensure regular particle positions, we can apply similar correction forces as are used in FEM. -Ganzenmüller (2015) introduced a so-called hourglass correction force or penalty force $f^{PF}$, +[Ganzenmüller (2015)](@cite Ganzenmueller2015) introduced a so-called hourglass correction force or penalty force $f^{PF}$, which is given by ```math \bm{f}_a^{PF} = \frac{1}{2} \alpha \sum_b \frac{m_{0a} m_{0b} W_{0ab}}{\rho_{0a}\rho_{0b} |\bm{X}_{ab}|^2} @@ -94,7 +83,7 @@ The subscripts $a$ and $b$ denote quantities of particle $a$ and $b$, respective The zero subscript on quantities denotes that the quantity is to be measured in the initial configuration. The difference in the initial coordinates is denoted by $\bm{X}_{ab} = \bm{X}_a - \bm{X}_b$, the difference in the current coordinates is denoted by $\bm{x}_{ab} = \bm{x}_a - \bm{x}_b$. -Note that Ganzenmüller (2015) has a flipped sign here because they define $\bm{x}_{ab}$ the other way around. +Note that [Ganzenmüller (2015)](@cite Ganzenmueller2015) has a flipped sign here because they define $\bm{x}_{ab}$ the other way around. This correction force is based on the potential energy density of a Hookean material. Thus, $E$ is the Young's modulus and $\alpha$ is a dimensionless coefficient that controls @@ -113,9 +102,3 @@ where the error vector is defined as Modules = [TrixiParticles] Pages = [joinpath("schemes", "solid", "total_lagrangian_sph", "penalty_force.jl")] ``` - -### References -- Georg C. Ganzenmüller. - "An hourglass control algorithm for Lagrangian Smooth Particle Hydrodynamics". - In: Computer Methods in Applied Mechanics and Engineering 286 (2015). - [doi: 10.1016/j.cma.2014.12.005](https://doi.org/10.1016/j.cma.2014.12.005) diff --git a/docs/src/systems/weakly_compressible_sph.md b/docs/src/systems/weakly_compressible_sph.md index 353b6b5cb..b4968211a 100644 --- a/docs/src/systems/weakly_compressible_sph.md +++ b/docs/src/systems/weakly_compressible_sph.md @@ -1,6 +1,6 @@ # [Weakly Compressible SPH](@id wcsph) -Weakly compressible SPH as introduced by Monaghan (1994). This formulation relies on a stiff +Weakly compressible SPH as introduced by [Monaghan (1994)](@cite Monaghan1994). This formulation relies on a stiff [equation of state](@ref equation_of_state) that generates large pressure changes for small density variations. @@ -9,23 +9,18 @@ Modules = [TrixiParticles] Pages = [joinpath("schemes", "fluid", "weakly_compressible_sph", "system.jl")] ``` -### References -- Joseph J. Monaghan. "Simulating Free Surface Flows in SPH". - In: Journal of Computational Physics 110 (1994), pages 399--406. - [doi: 10.1006/jcph.1994.1034](https://doi.org/10.1006/jcph.1994.1034) - ## [Equation of State](@id equation_of_state) The equation of state is used to relate fluid density to pressure and thus allow an explicit simulation of the [WCSPH system](@ref WeaklyCompressibleSPHSystem). -The equation in the following formulation was introduced by Cole (Cole 1948, pp. 39 and 43). +The equation in the following formulation was introduced by [Cole (1948)](@cite Cole1948) (pp. 39 and 43). The pressure ``p`` is calculated as ```math p = B \left(\left(\frac{\rho}{\rho_0}\right)^\gamma - 1\right) + p_{\text{background}}, ``` where ``\rho`` denotes the density, ``\rho_0`` the reference density, and ``p_{\text{background}}`` the background pressure, which is set to zero when applied to -free-surface flows (Adami et al., 2012). +free-surface flows ([Adami et al., 2012](@cite Adami2012)). The bulk modulus, ``B = \frac{\rho_0 c^2}{\gamma}``, is calculated from the artificial speed of sound ``c`` and the isentropic exponent ``\gamma``. @@ -38,7 +33,7 @@ be obtained by choosing `exponent=1`, i.e. For higher Reynolds numbers, `exponent=7` is recommended, whereas at lower Reynolds numbers `exponent=1` yields more accurate pressure estimates since pressure and -density are proportional. +density are proportional (see [Morris, 1997](@cite Morris1997)). When using [`SummationDensity`](@ref) (or [`DensityReinitializationCallback`](@ref)) and free surfaces, initializing particles with equal spacing will cause underestimated @@ -49,17 +44,6 @@ Modules = [TrixiParticles] Pages = [joinpath("schemes", "fluid", "weakly_compressible_sph", "state_equations.jl")] ``` -## References -- Robert H. Cole. "Underwater Explosions". Princeton University Press, 1948. -- J. P. Morris, P. J. Fox, Y. Zhu - "Modeling Low Reynolds Number Incompressible Flows Using SPH ". - In: Journal of Computational Physics , Vol. 136, No. 1, pages 214--226. - [doi: 10.1006/jcph.1997.5776](https://doi.org/10.1006/jcph.1997.5776) -- S. Adami, X. Y. Hu, N. A. Adams. - "A generalized wall boundary condition for smoothed particle hydrodynamics". - In: Journal of Computational Physics 231, 21 (2012), pages 7057–7075. - [doi: 10.1016/J.JCP.2012.05.005](https://doi.org/10.1016/J.JCP.2012.05.005) - ## [Viscosity](@id viscosity_wcsph) TODO: Explain viscosity. @@ -115,7 +99,7 @@ For the cheap [`DensityDiffusionMolteniColagrossi`](@ref), this results in reduc The simpler terms [`DensityDiffusionMolteniColagrossi`](@ref) and [`DensityDiffusionFerrari`](@ref) do not solve the hydrostatic problem and lead to incorrect solutions in long-running steady-state hydrostatic simulations with free surfaces -(Antuono et al., 2012). This can be seen when running the simple rectangular tank example +[(Antuono et al., 2012)](@cite Antuono2012). This can be seen when running the simple rectangular tank example until ``t = 40`` (again using ``δ = 0.1``): ```@raw html @@ -128,12 +112,6 @@ until ``t = 40`` (again using ``δ = 0.1``): [`DensityDiffusionAntuono`](@ref) adds a correction term to solve this problem, but this term is very expensive and adds about 40--50% of computational cost. -### References -- M. Antuono, A. Colagrossi, S. Marrone. - "Numerical Diffusive Terms in Weakly-Compressible SPH Schemes." - In: Computer Physics Communications 183.12 (2012), pages 2570--2580. - [doi: 10.1016/j.cpc.2012.07.006](https://doi.org/10.1016/j.cpc.2012.07.006) - ### API ```@autodocs @@ -174,7 +152,7 @@ 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 +The cohesion kernel ``C`` is defined as ```math C(r)=\frac{32}{\pi h_c^9} \begin{cases} @@ -192,7 +170,7 @@ 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 +With the force calculated with an adhesion coefficient ``\beta`` as ```math F_{\text{adhesion}} = -\beta m_b A(r) \frac{r}{\Vert r \Vert}, ``` diff --git a/src/callbacks/density_reinit.jl b/src/callbacks/density_reinit.jl index 74c6fe5c9..a9f2453fa 100644 --- a/src/callbacks/density_reinit.jl +++ b/src/callbacks/density_reinit.jl @@ -1,18 +1,13 @@ """ DensityReinitializationCallback(; interval::Integer=0, dt=0.0) -Callback to reinitialize the density field when using [`ContinuityDensity`](@ref). +Callback to reinitialize the density field when using [`ContinuityDensity`](@ref) [Panizzo2007](@cite). # Keywords - `interval=0`: Reinitialize the density every `interval` time steps. - `dt`: Reinitialize the density in regular intervals of `dt` in terms of integration time. - `reinit_initial_solution`: Reinitialize the initial solution (default=false) - -## References -- Panizzo, Andrea, Giovanni Cuomo, and Robert A. Dalrymple. "3D-SPH simulation of landslide generated waves." - In: Coastal Engineering 2006 (2007), pages 1503-1515. - [doi: 10.1142/9789812709554_0128](https://doi.org/10.1142/9789812709554_0128) """ mutable struct DensityReinitializationCallback{I} interval::I diff --git a/src/callbacks/stepsize.jl b/src/callbacks/stepsize.jl index 7c3840bd1..9357f6096 100644 --- a/src/callbacks/stepsize.jl +++ b/src/callbacks/stepsize.jl @@ -30,22 +30,7 @@ and ``n`` is the number of dimensions. This is an experimental feature and may change in future releases. ## References -- M. Antuono, A. Colagrossi, S. Marrone. - "Numerical Diffusive Terms in Weakly-Compressible SPH Schemes." - In: Computer Physics Communications 183, no. 12 (2012), pages 2570--80. - [doi: 10.1016/j.cpc.2012.07.006](https://doi.org/10.1016/j.cpc.2012.07.006) -- S. Adami, X. Y. Hu, N. A. Adams. - "A generalized wall boundary condition for smoothed particle hydrodynamics". - In: Journal of Computational Physics 231, 21 (2012), pages 7057--7075. - [doi: 10.1016/J.JCP.2012.05.005](https://doi.org/10.1016/J.JCP.2012.05.005) -- P. N. Sun, A. Colagrossi, S. Marrone, A. M. Zhang. - "The δplus-SPH Model: Simple Procedures for a Further Improvement of the SPH Scheme." - In: Computer Methods in Applied Mechanics and Engineering 315 (2017), pages 25--49. - [doi: 10.1016/j.cma.2016.10.028](https://doi.org/10.1016/j.cma.2016.10.028) -- M. Antuono, S. Marrone, A. Colagrossi, B. Bouscasse. - "Energy Balance in the δ-SPH Scheme." - In: Computer Methods in Applied Mechanics and Engineering 289 (2015), pages 209--26. - [doi: 10.1016/j.cma.2015.02.004](https://doi.org/10.1016/j.cma.2015.02.004) +[Antuono2012](@cite), [Adami2012](@cite), [Sun2017](@cite), [Antuono2015](@cite) """ function StepsizeCallback(; cfl::Real) # TODO adapt for non-constant CFL conditions diff --git a/src/general/corrections.jl b/src/general/corrections.jl index cb1d52df8..cf6c8bed6 100644 --- a/src/general/corrections.jl +++ b/src/general/corrections.jl @@ -2,7 +2,7 @@ @doc raw""" AkinciFreeSurfaceCorrection(rho0) -Free surface correction according to Akinci et al. (2013). +Free surface correction according to [Akinci et al. (2013)](@cite Akinci2013). At a free surface, the mean density is typically lower than the reference density, resulting in reduced surface tension and viscosity forces. The free surface correction adjusts the viscosity, pressure, and surface tension forces @@ -22,12 +22,6 @@ the pressure and viscosity accordingly. # Arguments - `rho0`: Rest density. - -## References -- Akinci, N., Akinci, G., & Teschner, M. (2013). - "Versatile Surface Tension and Adhesion for SPH Fluids". - ACM Transactions on Graphics (TOG), 32(6), 182. - [doi: 10.1145/2508363.2508405](https://doi.org/10.1145/2508363.2508395) """ struct AkinciFreeSurfaceCorrection{ELTYPE} rho0::ELTYPE @@ -56,8 +50,8 @@ end @doc raw""" ShepardKernelCorrection() -Kernel correction uses Shepard interpolation to obtain a 0-th order accurate result, which -was first proposed by Li et al. +Kernel correction, as explained by [Bonet (1999)](@cite Bonet1999), uses Shepard interpolation +to obtain a 0-th order accurate result, which was first proposed by [Li et al. (1996)](@cite Li1996). The kernel correction coefficient is determined by ```math @@ -71,30 +65,15 @@ to an improvement, especially at free surfaces. !!! note - It is also referred to as "0th order correction". - In 2D, we can expect an increase of about 5--6% in computation time. - - -## References -- J. Bonet, T.-S.L. Lok. - "Variational and momentum preservation aspects of Smooth Particle Hydrodynamic formulations". - In: Computer Methods in Applied Mechanics and Engineering 180 (1999), pages 97-115. - [doi: 10.1016/S0045-7825(99)00051-1](https://doi.org/10.1016/S0045-7825(99)00051-1) -- Mihai Basa, Nathan Quinlan, Martin Lastiwka. - "Robustness and accuracy of SPH formulations for viscous flow". - In: International Journal for Numerical Methods in Fluids 60 (2009), pages 1127--1148. - [doi: 10.1002/fld.1927](https://doi.org/10.1002/fld.1927) -- Shaofan Li, Wing Kam Liu. - "Moving least-square reproducing kernel method Part II: Fourier analysis". - In: Computer Methods in Applied Mechanics and Engineering 139 (1996), pages 159--193. - [doi:10.1016/S0045-7825(96)01082-1](https://doi.org/10.1016/S0045-7825(96)01082-1) """ struct ShepardKernelCorrection end @doc raw""" KernelCorrection() -Kernel correction uses Shepard interpolation to obtain a 0-th order accurate result, which -was first proposed by Li et al. This can be further extended to obtain a kernel corrected gradient -as shown by Basa et al. +Kernel correction, as explained by [Bonet (1999)](@cite Bonet1999), uses Shepard interpolation +to obtain a 0-th order accurate result, which was first proposed by Li et al. +This can be further extended to obtain a kernel corrected gradient as shown by [Basa et al. (2008)](@cite Basa2008). The kernel correction coefficient is determined by ```math @@ -113,21 +92,6 @@ This correction can be applied with [`SummationDensity`](@ref) and - This only works when the boundary model uses [`SummationDensity`](@ref) (yet). - It is also referred to as "0th order correction". - In 2D, we can expect an increase of about 10--15% in computation time. - - -## References -- J. Bonet, T.-S.L. Lok. - "Variational and momentum preservation aspects of Smooth Particle Hydrodynamic formulations". - In: Computer Methods in Applied Mechanics and Engineering 180 (1999), pages 97-115. - [doi: 10.1016/S0045-7825(99)00051-1](https://doi.org/10.1016/S0045-7825(99)00051-1) -- Mihai Basa, Nathan Quinlan, Martin Lastiwka. - "Robustness and accuracy of SPH formulations for viscous flow". - In: International Journal for Numerical Methods in Fluids 60 (2009), pages 1127--1148. - [doi: 10.1002/fld.1927](https://doi.org/10.1002/fld.1927) -- Shaofan Li, Wing Kam Liu. - "Moving least-square reproducing kernel method Part II: Fourier analysis". - In: Computer Methods in Applied Mechanics and Engineering 139 (1996), pages 159-193. - [doi:10.1016/S0045-7825(96)01082-1](https://doi.org/10.1016/S0045-7825(96)01082-1) """ struct KernelCorrection end @@ -135,21 +99,11 @@ struct KernelCorrection end MixedKernelGradientCorrection() Combines [`GradientCorrection`](@ref) and [`KernelCorrection`](@ref), -which results in a 1st-order-accurate SPH method. +which results in a 1st-order-accurate SPH method (see [Bonet, 1999](@cite Bonet1999)). # Notes: - Stability issues, especially when particles separate into small clusters. - Doubles the computational effort. - -## References -- J. Bonet, T.-S.L. Lok. - "Variational and momentum preservation aspects of Smooth Particle Hydrodynamic formulations". - In: Computer Methods in Applied Mechanics and Engineering 180 (1999), pages 97--115. - [doi: 10.1016/S0045-7825(99)00051-1](https://doi.org/10.1016/S0045-7825(99)00051-1) -- Mihai Basa, Nathan Quinlan, Martin Lastiwka. - "Robustness and accuracy of SPH formulations for viscous flow". - In: International Journal for Numerical Methods in Fluids 60 (2009), pages 1127--1148. - [doi: 10.1002/fld.1927](https://doi.org/10.1002/fld.1927) """ struct MixedKernelGradientCorrection end @@ -282,7 +236,8 @@ end @doc raw""" GradientCorrection() -Compute the corrected gradient of particle interactions based on their relative positions. +Compute the corrected gradient of particle interactions based on their relative positions +(see [Bonet, 1999](@cite Bonet1999)). # Mathematical Details @@ -315,25 +270,16 @@ the correction matrix $\bm{L}_a$ is evaluated explicitly as !!! note - Stability issues arise, especially when particles separate into small clusters. - Doubles the computational effort. -- Better stability with smoother smoothing Kernels with larger support, e.g. [`SchoenbergQuinticSplineKernel`](@ref) or [`WendlandC6Kernel`](@ref). -- Set `dt_max =< 1e-3` for stability. - -## References -- J. Bonet, T.-S.L. Lok. - "Variational and momentum preservation aspects of Smooth Particle Hydrodynamic formulations". - In: Computer Methods in Applied Mechanics and Engineering 180 (1999), pages 97--115. - [doi: 10.1016/S0045-7825(99)00051-1](https://doi.org/10.1016/S0045-7825(99)00051-1) -- Mihai Basa, Nathan Quinlan, Martin Lastiwka. - "Robustness and accuracy of SPH formulations for viscous flow". - In: International Journal for Numerical Methods in Fluids 60 (2009), pages 1127--1148. - [doi: 10.1002/fld.1927](https://doi.org/10.1002/fld.1927) + - Better stability with smoother smoothing Kernels with larger support, e.g. [`SchoenbergQuinticSplineKernel`](@ref) or [`WendlandC6Kernel`](@ref). + - Set `dt_max =< 1e-3` for stability. """ struct GradientCorrection end @doc raw""" BlendedGradientCorrection() -Calculate a blended gradient to reduce the stability issues of the [`GradientCorrection`](@ref). +Calculate a blended gradient to reduce the stability issues of the [`GradientCorrection`](@ref) +as explained by [Bonet (1999)](@cite Bonet1999). This calculates the following, ```math diff --git a/src/general/smoothing_kernels.jl b/src/general/smoothing_kernels.jl index fe9665aca..20268ebad 100644 --- a/src/general/smoothing_kernels.jl +++ b/src/general/smoothing_kernels.jl @@ -103,7 +103,7 @@ end @doc raw""" SchoenbergCubicSplineKernel{NDIMS}() -Cubic spline kernel by Schoenberg (Schoenberg, 1946), given by +Cubic spline kernel by [Schoenberg (1946)](@cite Schoenberg1946), given by ```math W(r, h) = \frac{1}{h^d} w(r/h) ``` @@ -121,8 +121,8 @@ $\sigma =[\frac{2}{3}, \frac{10}{7 \pi}, \frac{1}{\pi}]$ in $[1, 2, 3]$ dimensio This kernel function has a compact support of ``[0, 2h]``. For an overview of Schoenberg cubic, quartic and quintic spline kernels including -normalization factors, see (Price, 2012). -For an analytic formula for higher order Schoenberg kernels, see (Monaghan, 1985). +normalization factors, see [Price (2012)](@cite Price2012). +For an analytic formula for higher order Schoenberg kernels, see [Monaghan (1985)](@cite Monaghan1985). The largest disadvantage of Schoenberg Spline Kernel is the rather non-smooth first derivative, which can lead to increased noise compared to other kernel variants. @@ -130,18 +130,6 @@ The smoothing length is typically in the range ``[1.1\delta, 1.3\delta]``, where ``\delta`` is the typical particle spacing. For general information and usage see [Smoothing Kernels](@ref smoothing_kernel). - -## References -- Daniel J. Price. "Smoothed particle hydrodynamics and magnetohydrodynamics". - In: Journal of Computational Physics 231.3 (2012), pages 759-794. - [doi: 10.1016/j.jcp.2010.12.011](https://doi.org/10.1016/j.jcp.2010.12.011) -- Joseph J. Monaghan. "Particle methods for hydrodynamics". - In: Computer Physics Reports 3.2 (1985), pages 71–124. - [doi: 10.1016/0167-7977(85)90010-3](https://doi.org/10.1016/0167-7977(85)90010-3) -- Isaac J. Schoenberg. "Contributions to the problem of approximation of equidistant data by analytic functions. - Part B. On the problem of osculatory interpolation. A second class of analytic approximation formulae." - In: Quarterly of Applied Mathematics 4.2 (1946), pages 112–141. - [doi: 10.1090/QAM/16705](https://doi.org/10.1090/QAM/16705) """ struct SchoenbergCubicSplineKernel{NDIMS} <: SmoothingKernel{NDIMS} end @@ -182,7 +170,7 @@ end @doc raw""" SchoenbergQuarticSplineKernel{NDIMS}() -Quartic spline kernel by Schoenberg (Schoenberg, 1946), given by +Quartic spline kernel by [Schoenberg (1946)](@cite Schoenberg1946), given by ```math W(r, h) = \frac{1}{h^d} w(r/h) ``` @@ -203,8 +191,8 @@ $\sigma =[\frac{1}{24}, \frac{96}{1199 \pi}, \frac{1}{20\pi}]$ in $[1, 2, 3]$ di This kernel function has a compact support of ``[0, 2.5h]``. For an overview of Schoenberg cubic, quartic and quintic spline kernels including -normalization factors, see (Price, 2012). -For an analytic formula for higher order Schoenberg kernels, see (Monaghan, 1985). +normalization factors, see [Price (2012)](@cite Price2012). +For an analytic formula for higher order Schoenberg kernels, see [Monaghan (1985)](@cite Monaghan1985). The largest disadvantage of Schoenberg Spline Kernel are the rather non-smooth first derivative, which can lead to increased noise compared to other kernel variants. @@ -213,18 +201,6 @@ The smoothing length is typically in the range ``[1.1\delta, 1.5\delta]``, where ``\delta`` is the typical particle spacing. For general information and usage see [Smoothing Kernels](@ref smoothing_kernel). - -## References -- Daniel J. Price. "Smoothed particle hydrodynamics and magnetohydrodynamics". - In: Journal of Computational Physics 231.3 (2012), pages 759-794. - [doi: 10.1016/j.jcp.2010.12.011](https://doi.org/10.1016/j.jcp.2010.12.011) -- Joseph J. Monaghan. "Particle methods for hydrodynamics". - In: Computer Physics Reports 3.2 (1985), pages 71–124. - [doi: 10.1016/0167-7977(85)90010-3](https://doi.org/10.1016/0167-7977(85)90010-3) -- Isaac J. Schoenberg. "Contributions to the problem of approximation of equidistant data by analytic functions. - Part B. On the problem of osculatory interpolation. A second class of analytic approximation formulae." - In: Quarterly of Applied Mathematics 4.2 (1946), pages 112–141. - [doi: 10.1090/QAM/16705](https://doi.org/10.1090/QAM/16705) """ struct SchoenbergQuarticSplineKernel{NDIMS} <: SmoothingKernel{NDIMS} end @@ -281,7 +257,7 @@ end @doc raw""" SchoenbergQuinticSplineKernel{NDIMS}() -Quintic spline kernel by Schoenberg (Schoenberg, 1946), given by +Quintic spline kernel by [Schoenberg (1946)](@cite Schoenberg1946), given by ```math W(r, h) = \frac{1}{h^d} w(r/h) ``` @@ -300,8 +276,8 @@ $\sigma =[\frac{1}{120}, \frac{7}{478 \pi}, \frac{1}{120\pi}]$ in $[1, 2, 3]$ di This kernel function has a compact support of ``[0, 3h]``. For an overview of Schoenberg cubic, quartic and quintic spline kernels including -normalization factors, see (Price, 2012). -For an analytic formula for higher order Schoenberg kernels, see (Monaghan, 1985). +normalization factors, see [Price (2012)](@cite Price2012). +For an analytic formula for higher order Schoenberg kernels, see [Monaghan (1985)](@cite Monaghan1985). The largest disadvantage of Schoenberg Spline Kernel are the rather non-smooth first derivative, which can lead to increased noise compared to other kernel variants. @@ -310,18 +286,6 @@ The smoothing length is typically in the range ``[1.1\delta, 1.5\delta]``, where ``\delta`` is the typical particle spacing. For general information and usage see [Smoothing Kernels](@ref smoothing_kernel). - -## References -- Daniel J. Price. "Smoothed particle hydrodynamics and magnetohydrodynamics". - In: Journal of Computational Physics 231.3 (2012), pages 759-794. - [doi: 10.1016/j.jcp.2010.12.011](https://doi.org/10.1016/j.jcp.2010.12.011) -- Joseph J. Monaghan. "Particle methods for hydrodynamics". - In: Computer Physics Reports 3.2 (1985), pages 71–124. - [doi: 10.1016/0167-7977(85)90010-3](https://doi.org/10.1016/0167-7977(85)90010-3) -- Isaac J. Schoenberg. "Contributions to the problem of approximation of equidistant data by analytic functions. - Part B. On the problem of osculatory interpolation. A second class of analytic approximation formulae." - In: Quarterly of Applied Mathematics 4.2 (1946), pages 112–141. - [doi: 10.1090/QAM/16705](https://doi.org/10.1090/QAM/16705) """ struct SchoenbergQuinticSplineKernel{NDIMS} <: SmoothingKernel{NDIMS} end @@ -376,8 +340,8 @@ abstract type WendlandKernel{NDIMS} <: SmoothingKernel{NDIMS} end @doc raw""" WendlandC2Kernel{NDIMS}() -Wendland C2 kernel (Wendland, 1995), a piecewise polynomial function designed to have compact support and to -be twice continuously differentiable everywhere. Given by +Wendland C2 kernel [Wendland1995](@cite), a piecewise polynomial function designed +to have compact support and to be twice continuously differentiable everywhere. Given by ```math W(r, h) = \frac{1}{h^d} w(r/h) @@ -397,24 +361,13 @@ The normalization factor `` \sigma `` is `` 40/7\pi `` in two dimensions or `` 2 This kernel function has a compact support of `` [0, h] ``. -For a detailed discussion on Wendland functions and their applications in SPH, see (Dehnen & Aly, 2012). +For a detailed discussion on Wendland functions and their applications in SPH, see [Dehnen (2012)](@cite Dehnen2012). The smoothness of these functions is also the largest disadvantage as they lose details at sharp corners. The smoothing length is typically in the range ``[2.5\delta, 4.0\delta]``, where ``\delta`` is the typical particle spacing. For general information and usage see [Smoothing Kernels](@ref smoothing_kernel). - -## References -- Walter Dehnen & Hassan Aly. - "Improving convergence in smoothed particle hydrodynamics simulations without pairing instability". - In: Monthly Notices of the Royal Astronomical Society 425.2 (2012), pages 1068-1082. - [doi: 10.1111/j.1365-2966.2012.21439.x](https://doi.org/10.1111/j.1365-2966.2012.21439.x) - -- Holger Wendland. - "Piecewise polynomial, positive definite and compactly supported radial functions of minimal degree." - In: Advances in computational Mathematics 4 (1995), pages 389-396. - [doi: 10.1007/BF02123482](https://doi.org/10.1007/BF02123482) """ struct WendlandC2Kernel{NDIMS} <: WendlandKernel{NDIMS} end @@ -452,7 +405,7 @@ end @doc raw""" WendlandC4Kernel{NDIMS}() -Wendland C4 kernel, a piecewise polynomial function designed to have compact support and to +Wendland C4 kernel [Wendland1995](@cite), a piecewise polynomial function designed to have compact support and to be four times continuously differentiable everywhere. Given by ```math @@ -473,24 +426,13 @@ on the dimension. The normalization factor `` \sigma `` is `` 9 / \pi `` in two This kernel function has a compact support of `` [0, h] ``. -For a detailed discussion on Wendland functions and their applications in SPH, see (Dehnen & Aly, 2012). +For a detailed discussion on Wendland functions and their applications in SPH, see [Dehnen (2012)](@cite Dehnen2012). The smoothness of these functions is also the largest disadvantage as they loose details at sharp corners. The smoothing length is typically in the range ``[3.0\delta, 4.5\delta]``, where ``\delta`` is the typical particle spacing. For general information and usage see [Smoothing Kernels](@ref smoothing_kernel). - -## References -- Walter Dehnen & Hassan Aly. - "Improving convergence in smoothed particle hydrodynamics simulations without pairing instability". - In: Monthly Notices of the Royal Astronomical Society 425.2 (2012), pages 1068-1082. - [doi: 10.1111/j.1365-2966.2012.21439.x](https://doi.org/10.1111/j.1365-2966.2012.21439.x) - -- Holger Wendland. - "Piecewise polynomial, positive definite and compactly supported radial functions of minimal degree." - In: Advances in computational Mathematics 4 (1995): 389-396. - [doi: 10.1007/BF02123482](https://doi.org/10.1007/BF02123482) """ struct WendlandC4Kernel{NDIMS} <: WendlandKernel{NDIMS} end @@ -524,7 +466,8 @@ end @doc raw""" WendlandC6Kernel{NDIMS}() -Wendland C6 kernel, a piecewise polynomial function designed to have compact support and to be six times continuously differentiable everywhere. Given by: +Wendland C6 kernel [Wendland1995](@cite), a piecewise polynomial function designed to have compact support and +to be six times continuously differentiable everywhere. Given by: ```math W(r, h) = \frac{1}{h^d} w(r/h) @@ -544,24 +487,13 @@ on the dimension. The normalization factor `` \sigma `` is `` 78 / 7 \pi`` in tw This kernel function has a compact support of `` [0, h] ``. -For a detailed discussion on Wendland functions and their applications in SPH, see (Dehnen & Aly, 2012). +For a detailed discussion on Wendland functions and their applications in SPH, [Dehnen (2012)](@cite Dehnen2012). The smoothness of these functions is also the largest disadvantage as they loose details at sharp corners. The smoothing length is typically in the range ``[3.5\delta, 5.0\delta]``, where ``\delta`` is the typical particle spacing. For general information and usage see [Smoothing Kernels](@ref smoothing_kernel). - -## References -- Walter Dehnen & Hassan Aly. - "Improving convergence in smoothed particle hydrodynamics simulations without pairing instability". - In: Monthly Notices of the Royal Astronomical Society 425.2 (2012), pages 1068-1082. - [doi: 10.1111/j.1365-2966.2012.21439.x](https://doi.org/10.1111/j.1365-2966.2012.21439.x) - -- Holger Wendland. - "Piecewise polynomial, positive definite and compactly supported radial functions of minimal degree." - In: Advances in computational Mathematics 4 (1995): 389-396. - [doi: 10.1007/BF02123482](https://doi.org/10.1007/BF02123482) """ struct WendlandC6Kernel{NDIMS} <: WendlandKernel{NDIMS} end @@ -595,7 +527,8 @@ end @doc raw""" Poly6Kernel{NDIMS}() -Poly6 kernel, a commonly used kernel in SPH literature, especially in computer graphics contexts. It is defined as +Poly6 kernel, a commonly used kernel in SPH literature [Mueller2003](@cite), +especially in computer graphics contexts. It is defined as ```math W(r, h) = \frac{1}{h^d} w(r/h) @@ -611,8 +544,9 @@ w(q) = \sigma \begin{cases} \end{cases} ``` -where `` d `` is the number of dimensions and `` \sigma `` is a normalization factor that depends -on the dimension. The normalization factor `` \sigma `` is `` 4 / \pi`` in two dimensions or `` 315 / 64\pi`` in three dimensions. +where `` d `` is the number of dimensions and `` \sigma `` is a normalization factor +that depends on the dimension. The normalization factor `` \sigma `` is `` 4 / \pi`` +in two dimensions or `` 315 / 64\pi`` in three dimensions. This kernel function has a compact support of `` [0, h] ``. @@ -625,11 +559,6 @@ The smoothing length is typically in the range ``[1.5\delta, 2.5\delta]``, where ``\delta`` is the typical particle spacing. For general information and usage see [Smoothing Kernels](@ref smoothing_kernel). - -## References -- Matthias Müller, David Charypar, and Markus Gross. "Particle-based fluid simulation for interactive applications". - In: Proceedings of the 2003 ACM SIGGRAPH/Eurographics symposium on Computer animation. Eurographics Association. 2003, pages 154-159. - [doi: 10.5555/846276.846298](https://doi.org/10.5555/846276.846298) """ struct Poly6Kernel{NDIMS} <: SmoothingKernel{NDIMS} end @@ -665,7 +594,8 @@ end SpikyKernel{NDIMS}() The Spiky kernel is another frequently used kernel in SPH, especially due to its desirable -properties in preserving features near boundaries in fluid simulations. It is defined as: +properties in preserving features near boundaries in fluid simulations [Mueller2003](@cite). +It is defined as: ```math W(r, h) = \frac{1}{h^d} w(r/h) @@ -693,11 +623,6 @@ The smoothing length is typically in the range ``[1.5\delta, 3.0\delta]``, where ``\delta`` is the typical particle spacing. For general information and usage see [Smoothing Kernels](@ref smoothing_kernel). - -## References -- Matthias Müller, David Charypar, and Markus Gross. "Particle-based fluid simulation for interactive applications". - In: Proceedings of the 2003 ACM SIGGRAPH/Eurographics symposium on Computer animation. Eurographics Association. 2003, pages 154-159. - [doi: 10.5555/846276.846298](https://doi.org/10.5555/846276.846298) """ struct SpikyKernel{NDIMS} <: SmoothingKernel{NDIMS} end diff --git a/src/preprocessing/point_in_poly/winding_number_hormann.jl b/src/preprocessing/point_in_poly/winding_number_hormann.jl index 02e835cd7..9d87cfdc5 100644 --- a/src/preprocessing/point_in_poly/winding_number_hormann.jl +++ b/src/preprocessing/point_in_poly/winding_number_hormann.jl @@ -1,9 +1,9 @@ """ WindingNumberHormann() -Algorithm for inside-outside segmentation of a complex geometry proposed by [Hormann et al. (2001)](@ref references_complex_shape). +Algorithm for inside-outside segmentation of a complex geometry proposed by [Hormann (2001)](@cite Hormann2001). It is only supported for 2D geometries. -[`WindingNumberHormann`](@ref) might handle edge cases a bit better, since the winding number is an integer value. +`WindingNumberHormann` might handle edge cases a bit better, since the winding number is an integer value. !!! warning "Experimental Implementation" This is an experimental feature and may change in any future releases. diff --git a/src/preprocessing/point_in_poly/winding_number_jacobson.jl b/src/preprocessing/point_in_poly/winding_number_jacobson.jl index fabf2f541..630da58db 100644 --- a/src/preprocessing/point_in_poly/winding_number_jacobson.jl +++ b/src/preprocessing/point_in_poly/winding_number_jacobson.jl @@ -52,7 +52,7 @@ end """ WindingNumberJacobson(; geometry=nothing, winding_number_factor=sqrt(eps()), hierarchical_winding=false) -Algorithm for inside-outside segmentation of a complex geometry proposed by Jacobson et al. (2013). +Algorithm for inside-outside segmentation of a complex geometry proposed by [Jacobson2013](@cite). # Keywords - `geometry`: Complex geometry returned by [`load_geometry`](@ref) and is only required when using diff --git a/src/schemes/fluid/surface_tension.jl b/src/schemes/fluid/surface_tension.jl index fc699e506..66140775e 100644 --- a/src/schemes/fluid/surface_tension.jl +++ b/src/schemes/fluid/surface_tension.jl @@ -3,17 +3,11 @@ abstract type AkinciTypeSurfaceTension end @doc raw""" CohesionForceAkinci(surface_tension_coefficient=1.0) -This model only implements the cohesion force of the Akinci surface tension model. +This model only implements the cohesion force of the [Akinci2013](@cite) surface tension model. # Keywords - `surface_tension_coefficient=1.0`: Modifies the intensity of the surface tension-induced force, enabling the tuning of the fluid's surface tension properties within the simulation. - -# References -- Nadir Akinci, Gizem Akinci, Matthias Teschner. - "Versatile Surface Tension and Adhesion for SPH Fluids". - In: ACM Transactions on Graphics 32.6 (2013). - [doi: 10.1145/2508363.2508395](https://doi.org/10.1145/2508363.2508395) """ struct CohesionForceAkinci{ELTYPE} <: AkinciTypeSurfaceTension surface_tension_coefficient::ELTYPE @@ -27,7 +21,7 @@ end SurfaceTensionAkinci(surface_tension_coefficient=1.0) Implements a model for surface tension and adhesion effects drawing upon the -principles outlined by Akinci et al. This model is instrumental in capturing the nuanced +principles outlined by [Akinci2013](@cite). This model is instrumental in capturing the nuanced behaviors of fluid surfaces, such as droplet formation and the dynamics of merging or separation, by utilizing intra-particle forces. @@ -35,12 +29,6 @@ separation, by utilizing intra-particle forces. - `surface_tension_coefficient=1.0`: A parameter to adjust the magnitude of surface tension forces, facilitating the fine-tuning of how surface tension phenomena are represented in the simulation. - -# References -- Nadir Akinci, Gizem Akinci, Matthias Teschner. - "Versatile Surface Tension and Adhesion for SPH Fluids". - In: ACM Transactions on Graphics 32.6 (2013). - [doi: 10.1145/2508363.2508395](https://doi.org/10.1145/2508363.2508395) """ struct SurfaceTensionAkinci{ELTYPE} <: AkinciTypeSurfaceTension surface_tension_coefficient::ELTYPE diff --git a/src/schemes/fluid/viscosity.jl b/src/schemes/fluid/viscosity.jl index b888faba0..09bde77f9 100644 --- a/src/schemes/fluid/viscosity.jl +++ b/src/schemes/fluid/viscosity.jl @@ -32,7 +32,7 @@ end @doc raw""" ArtificialViscosityMonaghan(; alpha, beta=0.0, epsilon=0.01) -Artificial viscosity by Monaghan (Monaghan 1992, Monaghan 1989), given by +Artificial viscosity by Monaghan ([Monaghan1992](@cite), [Monaghan1989](@cite)), given by ```math \Pi_{ab} = \begin{cases} @@ -50,7 +50,7 @@ where ``\alpha, \beta, \epsilon`` are parameters, ``c`` is the speed of sound, ` 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 +To do so, [Monaghan (2005)](@cite Monaghan2005) defined an equivalent effective physical kinematic viscosity ``\nu`` by ```math \nu = \frac{\alpha h c }{2d + 4}, ``` @@ -64,17 +64,6 @@ where ``d`` is the dimension. very high, eg. astrophysical calculation, good results can be obtained by choosing a value of `beta=2.0` and `alpha=1.0`. - `epsilon=0.01`: Parameter to prevent singularities. - -## References -- Joseph J. Monaghan. "Smoothed Particle Hydrodynamics". - In: Annual Review of Astronomy and Astrophysics 30.1 (1992), pages 543-574. - [doi: 10.1146/ANNUREV.AA.30.090192.002551](https://doi.org/10.1146/ANNUREV.AA.30.090192.002551) -- Joseph J. Monaghan. "Smoothed Particle Hydrodynamics". - In: Reports on Progress in Physics (2005), pages 1703-1759. - [doi: 10.1088/0034-4885/68/8/r01](http://dx.doi.org/10.1088/0034-4885/68/8/R01) -- Joseph J. Monaghan. "On the Problem of Penetration in Particle Methods". - In: Journal of Computational Physics 82.1, pages 1–15. - [doi: 10.1016/0021-9991(89)90032-6](https://doi.org/10.1016/0021-9991(89)90032-6) """ struct ArtificialViscosityMonaghan{ELTYPE} alpha :: ELTYPE @@ -89,7 +78,7 @@ end @doc raw""" ViscosityMorris(; nu, epsilon=0.01) -Viscosity by Morris et al. (1997). +Viscosity by [Morris (1997)](@cite Morris1997) also used by [Fourtakas (2019)](@cite Fourtakas2019). To the force ``f_{ab}`` between two particles ``a`` and ``b`` due to pressure gradients, an additional force term ``\tilde{f}_{ab}`` is added with @@ -102,17 +91,6 @@ of particle ``a`` and ``b`` respectively, and ``\nu`` is the kinematic viscosity # Keywords - `nu`: Kinematic viscosity - `epsilon=0.01`: Parameter to prevent singularities - -## References -- Joseph P. Morris, Patrick J. Fox, Yi Zhu. - "Modeling Low Reynolds Number Incompressible Flows Using SPH". - In: Journal of Computational Physics, Volume 136, Issue 1 (1997), pages 214--226. - [doi: doi.org/10.1006/jcph.1997.5776](https://doi.org/10.1006/jcph.1997.5776) -- Georgios Fourtakas, Jose M. Dominguez, Renato Vacondio, Benedict D. Rogers. - "Local uniform stencil (LUST) boundary condition for arbitrary - 3-D boundaries in parallel smoothed particle hydrodynamics (SPH) models". - In: Computers & Fluids, Volume 190 (2019), pages 346--361. - [doi: 10.1016/j.compfluid.2019.06.009](https://doi.org/10.1016/j.compfluid.2019.06.009) """ struct ViscosityMorris{ELTYPE} nu::ELTYPE @@ -199,14 +177,14 @@ end @doc raw""" ViscosityAdami(; nu, epsilon=0.01) -Viscosity by Adami (Adami et al. 2012). +Viscosity by [Adami (2012)](@cite Adami2012). The viscous interaction is calculated with the shear force for incompressible flows given by ```math f_{ab} = \sum_w \bar{\eta}_{ab} \left( V_a^2 + V_b^2 \right) \frac{v_{ab}}{||r_{ab}||^2+\epsilon h_{ab}^2} \nabla W_{ab} \cdot r_{ab}, ``` where ``r_{ab} = r_a - r_b`` is the difference of the coordinates of particles ``a`` and ``b``, ``v_{ab} = v_a - v_b`` is the difference of their velocities, ``h`` is the smoothing length and ``V`` is the particle volume. -The parameter ``\epsilon`` prevents singularities (see Ramachandran et al. 2019). +The parameter ``\epsilon`` prevents singularities (see [Ramachandran (2019)](@cite Ramachandran2019)). The inter-particle-averaged shear stress is ```math \bar{\eta}_{ab} =\frac{2 \eta_a \eta_b}{\eta_a + \eta_b}, @@ -216,14 +194,6 @@ where ``\eta_a = \rho_a \nu_a`` with ``\nu`` as the kinematic viscosity. # Keywords - `nu`: Kinematic viscosity - `epsilon=0.01`: Parameter to prevent singularities - -## References -- S. Adami et al. "A generalized wall boundary condition for smoothed particle hydrodynamics". - In: Journal of Computational Physics 231 (2012), pages 7057-7075. - [doi: 10.1016/j.jcp.2012.05.005](http://dx.doi.org/10.1016/j.jcp.2012.05.005) -- P. Ramachandran et al. "Entropically damped artificial compressibility for SPH". - In: Journal of Computers and Fluids 179 (2019), pages 579-594. - [doi: 10.1016/j.compfluid.2018.11.023](https://doi.org/10.1016/j.compfluid.2018.11.023) """ struct ViscosityAdami{ELTYPE} nu::ELTYPE diff --git a/src/schemes/fluid/weakly_compressible_sph/density_diffusion.jl b/src/schemes/fluid/weakly_compressible_sph/density_diffusion.jl index 2cd92b05a..c4ddc8b81 100644 --- a/src/schemes/fluid/weakly_compressible_sph/density_diffusion.jl +++ b/src/schemes/fluid/weakly_compressible_sph/density_diffusion.jl @@ -23,7 +23,7 @@ end @doc raw""" DensityDiffusionMolteniColagrossi(; delta) -The commonly used density diffusion term by Molteni & Colagrossi (2009). +The commonly used density diffusion term by [Molteni (2009)](@cite Molteni2009). The term ``\psi_{ab}`` in the continuity equation in [`DensityDiffusion`](@ref) is defined by @@ -35,12 +35,6 @@ and ``r_{ab} = r_a - r_b`` is the difference of the coordinates of particles ``a See [`DensityDiffusion`](@ref) for an overview and comparison of implemented density diffusion terms. - -## References -- Diego Molteni, Andrea Colagrossi. - "A Simple Procedure to Improve the Pressure Evaluation in Hydrodynamic Context Using the SPH." - In: Computer Physics Communications 180.6 (2009), pages 861--872. - [doi: 10.1016/j.cpc.2008.12.004](https://doi.org/10.1016/j.cpc.2008.12.004) """ struct DensityDiffusionMolteniColagrossi{ELTYPE} <: DensityDiffusion delta::ELTYPE @@ -58,7 +52,7 @@ end @doc raw""" DensityDiffusionFerrari() -A density diffusion term by Ferrari et al. (2009). +A density diffusion term by [Ferrari (2009)](@cite Ferrari2009). The term ``\psi_{ab}`` in the continuity equation in [`DensityDiffusion`](@ref) is defined by @@ -71,12 +65,6 @@ where ``\rho_a`` and ``\rho_b`` denote the densities of particles ``a`` and ``b` See [`DensityDiffusion`](@ref) for an overview and comparison of implemented density diffusion terms. - -## References -- Angela Ferrari, Michael Dumbser, Eleuterio F. Toro, Aronne Armanini. - "A New 3D Parallel SPH Scheme for Free Surface Flows." - In: Computers & Fluids 38.6 (2009), pages 1203--1217. - [doi: 10.1016/j.compfluid.2008.11.012](https://doi.org/10.1016/j.compfluid.2008.11.012). """ struct DensityDiffusionFerrari <: DensityDiffusion delta::Int @@ -95,9 +83,9 @@ end @doc raw""" DensityDiffusionAntuono(initial_condition; delta) -The commonly used density diffusion terms by Antuono et al. (2010), also referred to as -δ-SPH. The density diffusion term by Molteni & Colagrossi (2009) is extended by a second -term, which is nicely written down by Antuono et al. (2012). +The commonly used density diffusion terms by [Antuono (2010)](@cite Antuono2010), also referred to as +δ-SPH. The density diffusion term by [Molteni (2009)](@cite Molteni2009) is extended by a second +term, which is nicely written down by [Antuono (2012)](@cite Antuono2012). The term ``\psi_{ab}`` in the continuity equation in [`DensityDiffusion`](@ref) is defined by @@ -119,20 +107,6 @@ where ``d`` is the number of dimensions. See [`DensityDiffusion`](@ref) for an overview and comparison of implemented density diffusion terms. - -## References -- M. Antuono, A. Colagrossi, S. Marrone, D. Molteni. - "Free-Surface Flows Solved by Means of SPH Schemes with Numerical Diffusive Terms." - In: Computer Physics Communications 181.3 (2010), pages 532--549. - [doi: 10.1016/j.cpc.2009.11.002](https://doi.org/10.1016/j.cpc.2009.11.002) -- M. Antuono, A. Colagrossi, S. Marrone. - "Numerical Diffusive Terms in Weakly-Compressible SPH Schemes." - In: Computer Physics Communications 183.12 (2012), pages 2570--2580. - [doi: 10.1016/j.cpc.2012.07.006](https://doi.org/10.1016/j.cpc.2012.07.006) -- Diego Molteni, Andrea Colagrossi. - "A Simple Procedure to Improve the Pressure Evaluation in Hydrodynamic Context Using the SPH." - In: Computer Physics Communications 180.6 (2009), pages 861--872. - [doi: 10.1016/j.cpc.2008.12.004](https://doi.org/10.1016/j.cpc.2008.12.004) """ struct DensityDiffusionAntuono{NDIMS, ELTYPE, ARRAY2D, ARRAY3D} <: DensityDiffusion delta :: ELTYPE diff --git a/src/schemes/solid/discrete_element_method/system.jl b/src/schemes/solid/discrete_element_method/system.jl index eb30dfb34..937460cd0 100644 --- a/src/schemes/solid/discrete_element_method/system.jl +++ b/src/schemes/solid/discrete_element_method/system.jl @@ -23,8 +23,11 @@ specified material properties and contact mechanics. captured by standard DEM interactions, such as electromagnetic forces or user-defined perturbations. - `damping_coefficient=0.0001`: Set a damping coefficient for the collision interactions. - !!! warning "Experimental Implementation" +!!! warning "Experimental Implementation" This is an experimental feature and may change in a future releases. + +## References +[Bicanic2004](@cite), [Cundall1979](@cite), [DiRenzo2004](@cite) """ struct DEMSystem{NDIMS, ELTYPE <: Real, IC, ARRAY1D, ST} <: SolidSystem{NDIMS, IC} initial_condition :: IC