From 918223b196db48885d67d5f267dae482f82d4577 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 26 Mar 2024 08:11:40 +0100 Subject: [PATCH] docu --- docs/src/refs.bib | 18 ++++++++ docs/src/theory/theory_bondbased.md | 44 ++++++++++++++++++- .../Material/BondBased/Bondbased_Elastic.jl | 4 +- 3 files changed, 63 insertions(+), 3 deletions(-) diff --git a/docs/src/refs.bib b/docs/src/refs.bib index e33c2c809..0dc6d6dc8 100644 --- a/docs/src/refs.bib +++ b/docs/src/refs.bib @@ -157,6 +157,24 @@ @article{BrighentiR2021 doi = {10.1155/2021/7782326}, } +@article{TrageserJ2020, +author={Trageser, Jeremy +and Seleson, Pablo}, +title={{Bond-Based Peridynamics: a Tale of Two Poisson's Ratios}}, +journal={Journal of Peridynamics and Nonlocal Modeling}, +year={2020}, +month={Sep}, +day={01}, +volume={2}, +number={3}, +pages={278-288}, +issn={2522-8978}, +doi={10.1007/s42102-019-00021-x}, +url={https://doi.org/10.1007/s42102-019-00021-x} +} + + + @inproceedings{LittlewoodDJ2013, title={Estimation of the Critical Time Step for Peridynamic Models.}, author={David J. Littlewood and Jesse D. Thomas and Timothy Shelton}, diff --git a/docs/src/theory/theory_bondbased.md b/docs/src/theory/theory_bondbased.md index 6279b155d..86b870c5a 100644 --- a/docs/src/theory/theory_bondbased.md +++ b/docs/src/theory/theory_bondbased.md @@ -1,2 +1,44 @@ # Bond-based -TODO + + +# Bond-Based Peridynamics + +Bond-based Peridynamics is a nonlocal extension of classical continuum mechanics, designed to address discontinuities like cracks within materials. Unlike traditional methods, which use partial differential equations (PDEs) and are based on local interactions, Peridynamics operates on integral equations and accounts for long-range forces. + +## Fundamental Concepts + +In bond-based Peridynamics, the material is considered as a continuum of particles that interact with each other through bonds. These interactions are not limited to immediate neighbors, allowing the framework to naturally handle the initiation and propagation of cracks. + +### Equation of Motion + +The equation of motion in Peridynamics is an integral equation, differing from the local PDEs in classical mechanics. For a particle at position $\mathbf{x}$, the equation is: + +$$ \rho(\mathbf{x}) \ddot{\mathbf{u}}(\mathbf{x}, t) = \int_{\mathcal{H}} \mathbf{f}(\mathbf{x}', \mathbf{x}, t) \, dV + \mathbf{b}(\mathbf{x}, t) $$ + +where: +- $\rho(\mathbf{x})$ is the mass density at $\mathbf{x}$. +- $\ddot{\mathbf{u}}(\mathbf{x}, t)$ is the acceleration at point $\mathbf{x}$. +- $\mathcal{H}$ represents the horizon around $\mathbf{x}$, within which interactions occur. +- $\mathbf{b}(\mathbf{x}, t)$ is the body force term. + + +### Interaction + +The fundamental interaction in bond-based Peridynamics is between pairs of points or particles within a certain horizon distance. The force vector between two points, $x$ and $x'$, is given by: + +$$ \mathbf{f}(\mathbf{x}', \mathbf{x}) = \underline{\omega}\langle \boldsymbol{\xi} \rangle c \, (\mathbf{u}(\mathbf{x}') - \mathbf{u}(\mathbf{x})) $$ + +where: +- $\mathbf{f}(\mathbf{x}', \mathbf{x})$ is the force vector exerted by the particle at $\mathbf{x}'$ on the particle at $\mathbf{x}$. +- $c$ is a bond modulus representing the stiffness of the bond. +- $\underline{\omega}\langle \boldsymbol{\xi} \rangle$ is a bond-associated influence function. +- $\mathbf{u}(\mathbf{x})$ is the displacement of the particle at $\mathbf{x}$. + +### Bond Moduli +From [TrageserJ2020](@cite) we get + +- plane strain: $c = \frac{48 E}{\pi 5 \delta^3}$ with a fixed $\nu=0.25$ +- plane stress: $c = \frac{9 E}{\pi \delta^3}$ with a fixed $\nu=1/3$ +- 3D: $c = \frac{18 K}{\pi \delta^4}$ with a fixed $\nu=0.25$ + + \ No newline at end of file diff --git a/src/Physics/Material/BondBased/Bondbased_Elastic.jl b/src/Physics/Material/BondBased/Bondbased_Elastic.jl index f34cacd0f..8c03ef099 100644 --- a/src/Physics/Material/BondBased/Bondbased_Elastic.jl +++ b/src/Physics/Material/BondBased/Bondbased_Elastic.jl @@ -87,9 +87,9 @@ function compute_forces(datamanager::Module, nodes::Union{SubArray,Vector{Int64} E = material_parameter["Young's Modulus"] for iID in nodes if symmetry == "plane stress" - constant = 12.0 * E / (pi * (1 + 1.0 / 3) * horizon[iID]^3) + constant = 9.0 * E / (pi * horizon[iID]^3) elseif symmetry == "plane strain" - constant = 12.0 * E / (pi * (1.25) * horizon[iID]^3) + constant = 48 * E / (5 * pi * horizon[iID]^3) else constant = 18.0 * K / (pi * horizon[iID]^4) end