-
Notifications
You must be signed in to change notification settings - Fork 45
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
add LDLNucleationMicroForce with tests in surfing (#159)
* Add LDLNucleationMicroForce * Modify surfing tutorial close #158 --------- Co-authored-by: Gary Hu <[email protected]>
- Loading branch information
1 parent
1e3a38e
commit 202c2a7
Showing
18 changed files
with
402 additions
and
215 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
82 changes: 82 additions & 0 deletions
82
doc/content/source/materials/nucleation_models/LDLNucleationMicroForce.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
# LDLNucleationMicroForce | ||
|
||
!syntax description /Materials/LDLNucleationMicroForce | ||
|
||
See *A variational formulation of Griffith phase-field fracture with material strength* by [!cite](larsen2024) | ||
|
||
This is a variational recast of the phase-field fracture formulation put forth by Kumar, Francfort and Lopez-Pamies (2018), where $\delta$ is explicitly evaluated. | ||
|
||
## Overview | ||
|
||
### LDL (Larsen, Dolbow, Lopez) Model 2024 | ||
|
||
The fracture functional reads | ||
|
||
\begin{equation} | ||
\mathcal{E}_f^l(\boldsymbol{u}, d):= \int_\Omega g(d) \psi_e(\boldsymbol{\varepsilon}(\boldsymbol{u})) \;\mathrm{dV} + \frac{\delta^l G_c}{c_0}\int_\Omega\left(\frac{\alpha(d)}{l} + l\nabla d\cdot \nabla d\right) \;\mathrm{dV} + \int_\Omega\left(\int_0^1 g(d) \;\mathrm{dd}\right)\widehat{c_e}(\boldsymbol{\varepsilon}(\boldsymbol{u})) \;\mathrm{dV}. | ||
\end{equation} | ||
|
||
The governing equation for fracture is | ||
\begin{equation} | ||
-\nabla\cdot \dfrac{2 G_c l \delta^l}{c_0}\nabla d + \dfrac{\partial}{\partial d}\left( \alpha \dfrac{\delta^l G_c}{c_0 l} - g(d)\psi_e\right) - g(d)\widehat{c_e} \ge 0. | ||
\end{equation} | ||
|
||
Note that the following derivation follows settings of `AT-1`, i.e., $\alpha(d)=d$ and $c_0=\dfrac{8}{3}$. In this model, the strict irreversibility condition for $d$ is adopted. | ||
|
||
The "undamaged" nucleation driving force is defined as | ||
\begin{equation} | ||
\widehat{c_e}(\boldsymbol{\varepsilon}(\boldsymbol{u}))= \alpha_2 \sqrt{J_2} + \alpha_1 I_1 - (1-d)\left(1 - \dfrac{\sqrt{I_1^2}}{I_1}\right)\psi_e. | ||
\end{equation} | ||
|
||
In this recast, $\delta^l$ is evaluated explicitly as | ||
\begin{equation} | ||
\text{without h correction:}\quad\delta^l=\left(\frac{\sigma_{ts}+ (1+2\sqrt{3})\sigma_{hs}}{(8+3\sqrt{3})\sigma_{hs}}\right)\frac{3G_c}{16 \psi_{ts} l} + \frac{3}{8}, | ||
\end{equation} | ||
|
||
\begin{equation} | ||
\text{with h correction:}\quad\delta^l=\left(1+\frac{3 h}{8 l}\right)^{-2}\left(\frac{\sigma_{ts}+(1+2\sqrt{3})\sigma_{hs}}{(8+3\sqrt{3})\sigma_{hs}}\right)\frac{3G_c}{16 \psi_{ts} l} + \left(1 + \frac{3h}{8l}\right)^{-1}\frac{2}{5}, | ||
\end{equation} | ||
|
||
where | ||
\begin{equation} | ||
\alpha_1 = - \frac{1}{\sigma_{hs}}\delta^l \frac{G_c}{8l} + \frac{2\psi_{hs}}{3\sigma_{hs}}, \qquad \alpha_2= - \frac{\sqrt{3}(3\sigma_{hs} - \sigma_{ts})}{\sigma_{hs}\sigma_{ts}}\delta^l \frac{G_c}{8l} - \frac{2\psi_{hs}}{\sqrt{3}\sigma_{hs}} + \frac{2\sqrt{3}\psi_{ts}}{\sigma_{ts}}, | ||
\end{equation} | ||
|
||
with | ||
\begin{equation} | ||
\psi_{ts}=\frac{\sigma^2_{ts}}{2E}, \quad \psi_{hs}=\frac{\sigma^2_{hs}}{2\kappa}. | ||
\end{equation} | ||
|
||
The material properties used are the bulk modulus $\kappa$ and Young's modulus $E$ and the shear modulus $\mu$. | ||
|
||
The strength surface is presented with uniaxial tensile $\sigma_{ts}$ and hydrostatic strength $\sigma_{hs}$, where $\sigma_{hs}=\dfrac{2}{3} \dfrac{\sigma_{ts}\sigma_{cs}}{\sigma_{cs} - \sigma_{ts}}$. | ||
|
||
### KLR (Kumar, Lopez, Ravi-Chandar) Model 2022 | ||
|
||
Please see [KLRNucleationMicroForce](nucleation_models/KLRNucleationMicroForce.md) | ||
|
||
### KLBF (Kumar, Lopez, Bourdin, Francfort) Model 2020 | ||
|
||
Please see [KLBFNucleationMicroForce](nucleation_models/KLBFNucleationMicroForce.md) | ||
|
||
## Example Input File Syntax | ||
|
||
``` | ||
[Materials] | ||
[micro_force] | ||
type = LDLNucleationMicroForce | ||
regularization_length = l | ||
normalization_constant = c0 | ||
tensile_strength = sigma_ts | ||
hydrostatic_strength = sigma_hs | ||
external_driving_force_name = ce | ||
h_correction = true | ||
[] | ||
[] | ||
``` | ||
|
||
!syntax parameters /Materials/LDLNucleationMicroForce | ||
|
||
!syntax inputs /Materials/LDLNucleationMicroForce | ||
|
||
!syntax children /Materials/LDLNucleationMicroForce |
This file was deleted.
Oops, something went wrong.
31 changes: 31 additions & 0 deletions
31
include/materials/nucleation_models/KLBFNucleationMicroForce.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
//* This file is part of the RACCOON application | ||
//* being developed at Dolbow lab at Duke University | ||
//* http://dolbow.pratt.duke.edu | ||
|
||
#pragma once | ||
|
||
#include "NucleationMicroForceBase.h" | ||
|
||
/** | ||
* The class implements the external driving force to recover a Drucker-Prager | ||
* strength envelope. See Kumar et. al. https://doi.org/10.1016/j.jmps.2020.104027 for model 2020. | ||
*/ | ||
class KLBFNucleationMicroForce : public NucleationMicroForceBase | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
KLBFNucleationMicroForce(const InputParameters & parameters); | ||
|
||
protected: | ||
virtual void computeQpProperties() override; | ||
|
||
/// The critical tensile strength | ||
const ADMaterialProperty<Real> & _sigma_ts; | ||
|
||
/// The critical compressive strength | ||
const ADMaterialProperty<Real> & _sigma_cs; | ||
|
||
/// The materiel and model dependent parameter | ||
const ADMaterialProperty<Real> & _delta; | ||
}; |
37 changes: 37 additions & 0 deletions
37
include/materials/nucleation_models/KLRNucleationMicroForce.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
//* This file is part of the RACCOON application | ||
//* being developed at Dolbow lab at Duke University | ||
//* http://dolbow.pratt.duke.edu | ||
|
||
#pragma once | ||
|
||
#include "NucleationMicroForceBase.h" | ||
|
||
/** | ||
* The class implements the external driving force to recover a Drucker-Prager | ||
* strength envelope developed by Kumar et al. in 2022. See Kumar, A., Ravi-Chandar, K. & | ||
* Lopez-Pamies, O. The revisited phase-field approach to brittle fracture: application to | ||
* indentation and notch problems. Int J Fract 237, 83–100 (2022). | ||
* https://doi.org/10.1007/s10704-022-00653-z. | ||
*/ | ||
class KLRNucleationMicroForce : public NucleationMicroForceBase | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
KLRNucleationMicroForce(const InputParameters & parameters); | ||
|
||
protected: | ||
virtual void computeQpProperties() override; | ||
|
||
/// The critical tensile strength | ||
const ADMaterialProperty<Real> & _sigma_ts; | ||
|
||
/// The critical compressive strength | ||
const ADMaterialProperty<Real> & _sigma_cs; | ||
|
||
/// The materiel and model dependent parameter | ||
const ADMaterialProperty<Real> & _delta; | ||
|
||
/// Quantifying how far is the stress state from Drucker Prager | ||
ADMaterialProperty<Real> & _druck_prager_balance; | ||
}; |
35 changes: 35 additions & 0 deletions
35
include/materials/nucleation_models/LDLNucleationMicroForce.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
//* This file is part of the RACCOON application | ||
//* being developed at Dolbow lab at Duke University | ||
//* http://dolbow.pratt.duke.edu | ||
|
||
#pragma once | ||
|
||
#include "NucleationMicroForceBase.h" | ||
|
||
/** | ||
* The class implements the external driving force to recover a Drucker-Prager | ||
* strength envelope. See Larsen et. al. https://doi.org/10.48550/arXiv.2401.13938 for model 2024. | ||
*/ | ||
|
||
class LDLNucleationMicroForce : public NucleationMicroForceBase | ||
{ | ||
public: | ||
static InputParameters validParams(); | ||
|
||
LDLNucleationMicroForce(const InputParameters & parameters); | ||
|
||
protected: | ||
virtual void computeQpProperties() override; | ||
|
||
/// The critical tensile strength | ||
const ADMaterialProperty<Real> & _sigma_ts; | ||
|
||
/// The critical hydrostatic strength | ||
const ADMaterialProperty<Real> & _sigma_hs; | ||
|
||
/// The materiel and model dependent parameter | ||
ADMaterialProperty<Real> & _delta; | ||
|
||
/// Whether to use h correction formula for delta | ||
bool _h_correction; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.