From f2bd03c10ce5da9d5a163ae6b4ebed4edaf9c829 Mon Sep 17 00:00:00 2001 From: Gary Hu Date: Tue, 16 Apr 2024 15:29:55 -0500 Subject: [PATCH 1/4] Add LDLNucleationMicroForce close #158 --- doc/content/bib/raccoon.bib | 10 +- .../KLBFNucleationMicroForce.md | 2 +- .../KLRNucleationMicroForce.md | 6 +- .../LDLNucleationMicroForce.md | 82 ++++++++++++++ include/materials/KLRNucleationMicroForce.h | 77 ------------- .../KLBFNucleationMicroForce.h | 31 ++++++ .../KLRNucleationMicroForce.h | 37 +++++++ .../LDLNucleationMicroForce.h | 35 ++++++ .../NucleationMicroForceBase.h} | 44 +++----- .../KLBFNucleationMicroForce.C | 46 ++------ .../KLRNucleationMicroForce.C | 52 ++------- .../LDLNucleationMicroForce.C | 104 ++++++++++++++++++ .../NucleationMicroForceBase.C | 51 +++++++++ 13 files changed, 381 insertions(+), 196 deletions(-) rename doc/content/source/materials/{ => nucleation_models}/KLBFNucleationMicroForce.md (95%) rename doc/content/source/materials/{ => nucleation_models}/KLRNucleationMicroForce.md (94%) create mode 100644 doc/content/source/materials/nucleation_models/LDLNucleationMicroForce.md delete mode 100644 include/materials/KLRNucleationMicroForce.h create mode 100644 include/materials/nucleation_models/KLBFNucleationMicroForce.h create mode 100644 include/materials/nucleation_models/KLRNucleationMicroForce.h create mode 100644 include/materials/nucleation_models/LDLNucleationMicroForce.h rename include/materials/{KLBFNucleationMicroForce.h => nucleation_models/NucleationMicroForceBase.h} (62%) rename src/materials/{ => nucleation_models}/KLBFNucleationMicroForce.C (58%) rename src/materials/{ => nucleation_models}/KLRNucleationMicroForce.C (56%) create mode 100644 src/materials/nucleation_models/LDLNucleationMicroForce.C create mode 100644 src/materials/nucleation_models/NucleationMicroForceBase.C diff --git a/doc/content/bib/raccoon.bib b/doc/content/bib/raccoon.bib index b7acd1f4c8a..b7769834f0d 100644 --- a/doc/content/bib/raccoon.bib +++ b/doc/content/bib/raccoon.bib @@ -8,7 +8,7 @@ @article{bourdin2007numerical year={2007} } -@Article{Kumar2022, +@Article{Kumar2022, author={Kumar, A. and Ravi-Chandar, K. and Lopez-Pamies, O.}, @@ -53,3 +53,11 @@ @article{Drucker-Prager volume = {10}, year = {1952} } + +@article{larsen2024, + title={A variational formulation of Griffith phase-field fracture with material strength}, + author={C. J. Larsen and J. E. Dolbow and O. Lopez-Pamies}, + journal = {Arxiv}, + year={2024}, + url={https://arxiv.org/abs/2401.13938}, +} diff --git a/doc/content/source/materials/KLBFNucleationMicroForce.md b/doc/content/source/materials/nucleation_models/KLBFNucleationMicroForce.md similarity index 95% rename from doc/content/source/materials/KLBFNucleationMicroForce.md rename to doc/content/source/materials/nucleation_models/KLBFNucleationMicroForce.md index f1092fc3e2c..80a1c516cf2 100644 --- a/doc/content/source/materials/KLBFNucleationMicroForce.md +++ b/doc/content/source/materials/nucleation_models/KLBFNucleationMicroForce.md @@ -8,7 +8,7 @@ In general, model KLR published in [!cite](Kumar2022) is recommended over model ### KLR (Kumar, Lopez, Ravi-Chandar) Model 2022 -Please see [KLRNucleationMicroForce](source/materials/KLRNucleationMicroForce.md) +Please see [KLRNucleationMicroForce](nucleation_models/KLRNucleationMicroForce.md) ### KLBF (Kumar, Lopez, Bourdin, Francfort) Model 2020 diff --git a/doc/content/source/materials/KLRNucleationMicroForce.md b/doc/content/source/materials/nucleation_models/KLRNucleationMicroForce.md similarity index 94% rename from doc/content/source/materials/KLRNucleationMicroForce.md rename to doc/content/source/materials/nucleation_models/KLRNucleationMicroForce.md index 51c35e2e572..064df7621fe 100644 --- a/doc/content/source/materials/KLRNucleationMicroForce.md +++ b/doc/content/source/materials/nucleation_models/KLRNucleationMicroForce.md @@ -74,13 +74,9 @@ l_e = \frac{l_0}{\sqrt{1+\delta}},\quad (\delta > -1) could deviate from $\ell$. The mesh should be able to resolve $l_e$ as well. -Here is an example input deck - -!listing /tutorials/surfing_boundary_problem/fracture.i block=Materials/kumar_material - ### KLBF (Kumar, Lopez, Bourdin, Francfort) Model 2020 -See [KLBFNucleationMicroForce](source/materials/KLBFNucleationMicroForce.md) +See [KLBFNucleationMicroForce](nucleation_models/KLBFNucleationMicroForce.md) ## Example Input File Syntax diff --git a/doc/content/source/materials/nucleation_models/LDLNucleationMicroForce.md b/doc/content/source/materials/nucleation_models/LDLNucleationMicroForce.md new file mode 100644 index 00000000000..dbcd098c5ad --- /dev/null +++ b/doc/content/source/materials/nucleation_models/LDLNucleationMicroForce.md @@ -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 \ No newline at end of file diff --git a/include/materials/KLRNucleationMicroForce.h b/include/materials/KLRNucleationMicroForce.h deleted file mode 100644 index 93fce169dc3..00000000000 --- a/include/materials/KLRNucleationMicroForce.h +++ /dev/null @@ -1,77 +0,0 @@ -//* This file is part of the RACCOON application -//* being developed at Dolbow lab at Duke University -//* http://dolbow.pratt.duke.edu - -#pragma once - -#include "Material.h" -#include "BaseNameInterface.h" -#include "DerivativeMaterialPropertyNameInterface.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. all parameters are required to be Material type, not - * double type - */ -class KLRNucleationMicroForce : public Material, - public BaseNameInterface, - public DerivativeMaterialPropertyNameInterface -{ -public: - static InputParameters validParams(); - - KLRNucleationMicroForce(const InputParameters & parameters); - -protected: - virtual void computeQpProperties() override; - - /// Name of the external driving force - const MaterialPropertyName _ex_driving_name; - - /// The external driving force - ADMaterialProperty & _ex_driving; - - ///@{ Phase field properties - /// The fracture toughness - const ADMaterialProperty & _Gc; - /// The normalization constant - const ADMaterialProperty & _c0; - /// phase field regularization length - const ADMaterialProperty & _L; - ///@} - - /// Lame's first parameter - const ADMaterialProperty & _lambda; - /// The shear modulus - const ADMaterialProperty & _mu; - - /// The critical tensile strength - const ADMaterialProperty & _sigma_ts; - - /// The critical compressive strength - const ADMaterialProperty & _sigma_cs; - - /// The materiel and model dependent parameter - const ADMaterialProperty & _delta; - - /// The stress tensor - const ADMaterialProperty & _stress; - - /// Name of the stress space balance - const MaterialPropertyName _stress_balance_name; - /// Quantifying how far is the stress state from stress surface - ADMaterialProperty & _stress_balance; - - ADMaterialProperty & _druck_prager_balance; - - /// Name of the phase-field variable - const VariableName _d_name; - // @{ The degradation function and its derivative w/r/t damage - const MaterialPropertyName _g_name; - const ADMaterialProperty & _g; - const ADMaterialProperty & _dg_dd; - // @} -}; diff --git a/include/materials/nucleation_models/KLBFNucleationMicroForce.h b/include/materials/nucleation_models/KLBFNucleationMicroForce.h new file mode 100644 index 00000000000..fd547326d3e --- /dev/null +++ b/include/materials/nucleation_models/KLBFNucleationMicroForce.h @@ -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 & _sigma_ts; + + /// The critical compressive strength + const ADMaterialProperty & _sigma_cs; + + /// The materiel and model dependent parameter + const ADMaterialProperty & _delta; +}; diff --git a/include/materials/nucleation_models/KLRNucleationMicroForce.h b/include/materials/nucleation_models/KLRNucleationMicroForce.h new file mode 100644 index 00000000000..88cdd60be0a --- /dev/null +++ b/include/materials/nucleation_models/KLRNucleationMicroForce.h @@ -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 & _sigma_ts; + + /// The critical compressive strength + const ADMaterialProperty & _sigma_cs; + + /// The materiel and model dependent parameter + const ADMaterialProperty & _delta; + + /// Quantifying how far is the stress state from Drucker Prager + ADMaterialProperty & _druck_prager_balance; +}; diff --git a/include/materials/nucleation_models/LDLNucleationMicroForce.h b/include/materials/nucleation_models/LDLNucleationMicroForce.h new file mode 100644 index 00000000000..20ea226dc51 --- /dev/null +++ b/include/materials/nucleation_models/LDLNucleationMicroForce.h @@ -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 & _sigma_ts; + + /// The critical hydrostatic strength + const ADMaterialProperty & _sigma_hs; + + /// The materiel and model dependent parameter + ADMaterialProperty & _delta; + + /// Whether to use h correction formula for delta + bool _h_correction; +}; \ No newline at end of file diff --git a/include/materials/KLBFNucleationMicroForce.h b/include/materials/nucleation_models/NucleationMicroForceBase.h similarity index 62% rename from include/materials/KLBFNucleationMicroForce.h rename to include/materials/nucleation_models/NucleationMicroForceBase.h index 21f87c71435..468bb5286bd 100644 --- a/include/materials/KLBFNucleationMicroForce.h +++ b/include/materials/nucleation_models/NucleationMicroForceBase.h @@ -8,30 +8,16 @@ #include "BaseNameInterface.h" #include "DerivativeMaterialPropertyNameInterface.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. - * all parameters are required to be Material type, not double type - */ -class KLBFNucleationMicroForce : public Material, +class NucleationMicroForceBase : public Material, public BaseNameInterface, public DerivativeMaterialPropertyNameInterface { public: static InputParameters validParams(); - - KLBFNucleationMicroForce(const InputParameters & parameters); + NucleationMicroForceBase(const InputParameters & parameters); protected: - virtual void computeQpProperties() override; - - /// Name of the external driving force - const MaterialPropertyName _ex_driving_name; - - /// The external driving force - ADMaterialProperty & _ex_driving; - - ///@{ Phase field properties + ///@{ fracture properties /// The fracture toughness const ADMaterialProperty & _Gc; /// The normalization constant @@ -45,20 +31,22 @@ class KLBFNucleationMicroForce : public Material, /// The shear modulus const ADMaterialProperty & _mu; - /// The critical tensile strength - const ADMaterialProperty & _sigma_ts; - - /// The critical compressive strength - const ADMaterialProperty & _sigma_cs; - - /// The materiel and model dependent parameter - const ADMaterialProperty & _delta; - /// The stress tensor const ADMaterialProperty & _stress; - /// Name of the stress space balance const MaterialPropertyName _stress_balance_name; /// Quantifying how far is the stress state from stress surface ADMaterialProperty & _stress_balance; -}; + + /// Name of the external driving force + const MaterialPropertyName _ex_driving_name; + /// The external nucleation driving force + ADMaterialProperty & _ex_driving; + + /// @{ The degradation function and its derivative w/r/t damage + const VariableName _d_name; + const MaterialPropertyName _g_name; + const ADMaterialProperty & _g; + const ADMaterialProperty & _dg_dd; + /// @} +}; \ No newline at end of file diff --git a/src/materials/KLBFNucleationMicroForce.C b/src/materials/nucleation_models/KLBFNucleationMicroForce.C similarity index 58% rename from src/materials/KLBFNucleationMicroForce.C rename to src/materials/nucleation_models/KLBFNucleationMicroForce.C index ee769ed7ff3..dc68886a711 100644 --- a/src/materials/KLBFNucleationMicroForce.C +++ b/src/materials/nucleation_models/KLBFNucleationMicroForce.C @@ -2,66 +2,34 @@ //* being developed at Dolbow lab at Duke University //* http://dolbow.pratt.duke.edu -#include "Function.h" #include "KLBFNucleationMicroForce.h" -registerADMooseObject("raccoonApp", KLBFNucleationMicroForce); +registerMooseObjectReplaced("raccoonApp", + KLBFNucleationMicroForce, + "12/31/2024 23:59", + LDLNucleationMicroForce); InputParameters KLBFNucleationMicroForce::validParams() { - InputParameters params = Material::validParams(); - params += BaseNameInterface::validParams(); + InputParameters params = NucleationMicroForceBase::validParams(); params.addClassDescription("This class computes the external driving force for nucleation given " "a Drucker-Prager strength envelope developed by Kumar et al. (2020)"); - - params.addParam( - "fracture_toughness", "Gc", "energy release rate or fracture toughness"); - params.addParam( - "normalization_constant", "c0", "The normalization constant $c_0$"); - params.addParam( - "regularization_length", "l", "the phase field regularization length"); - - params.addParam("lambda", "lambda", "Lame's first parameter lambda"); - params.addParam("shear_modulus", "G", "shear modulus mu or G"); - params.addRequiredParam( "tensile_strength", "The tensile strength of the material beyond which the material fails."); - params.addRequiredParam( "compressive_strength", "The compressive strength of the material beyond which the material fails."); - params.addRequiredParam("delta", "delta"); - params.addParam( - "external_driving_force_name", - "ex_driving", - "Name of the material that holds the external_driving_force"); - params.addParam( - "stress_balance_name", - "stress_balance", - "Name of the stress balance function $F= \\dfrac{J_2}{\\mu} + \\dfrac{I_1^2}{9\\kappa} - c_e " - "-\\dfrac{3\\Gc}{8\\delta}=0 $. This value tells how close the material is to stress " - "surface."); - params.addParam("stress_name", "stress", "Name of the stress tensor"); return params; } KLBFNucleationMicroForce::KLBFNucleationMicroForce(const InputParameters & parameters) - : Material(parameters), - BaseNameInterface(parameters), - _ex_driving(declareADProperty(prependBaseName("external_driving_force_name", true))), - _Gc(getADMaterialProperty(prependBaseName("fracture_toughness", true))), - _c0(getADMaterialProperty(prependBaseName("normalization_constant", true))), - _L(getADMaterialProperty(prependBaseName("regularization_length", true))), - _lambda(getADMaterialProperty(prependBaseName("lambda", true))), - _mu(getADMaterialProperty(prependBaseName("shear_modulus", true))), + : NucleationMicroForceBase(parameters), _sigma_ts(getADMaterialProperty(prependBaseName("tensile_strength", true))), _sigma_cs(getADMaterialProperty(prependBaseName("compressive_strength", true))), - _delta(getADMaterialProperty(prependBaseName("delta", true))), - _stress(getADMaterialProperty(prependBaseName("stress_name", true))), - _stress_balance(declareADProperty(prependBaseName("stress_balance_name", true))) + _delta(getADMaterialProperty(prependBaseName("delta", true))) { } diff --git a/src/materials/KLRNucleationMicroForce.C b/src/materials/nucleation_models/KLRNucleationMicroForce.C similarity index 56% rename from src/materials/KLRNucleationMicroForce.C rename to src/materials/nucleation_models/KLRNucleationMicroForce.C index 8287e403901..92f825fb2c2 100644 --- a/src/materials/KLRNucleationMicroForce.C +++ b/src/materials/nucleation_models/KLRNucleationMicroForce.C @@ -2,74 +2,36 @@ //* being developed at Dolbow lab at Duke University //* http://dolbow.pratt.duke.edu -#include "Function.h" #include "KLRNucleationMicroForce.h" -registerADMooseObject("raccoonApp", KLRNucleationMicroForce); +registerMooseObjectReplaced("raccoonApp", + KLRNucleationMicroForce, + "12/31/2024 23:59", + LDLNucleationMicroForce); InputParameters KLRNucleationMicroForce::validParams() { - InputParameters params = Material::validParams(); - params += BaseNameInterface::validParams(); + InputParameters params = NucleationMicroForceBase::validParams(); params.addClassDescription("This class computes the external driving force for nucleation given " "a Drucker-Prager strength envelope developed by Kumar et al. (2022)"); - params.addParam( - "fracture_toughness", "Gc", "energy release rate or fracture toughness"); - params.addParam( - "normalization_constant", "c0", "The normalization constant $c_0$"); - params.addParam( - "regularization_length", "l", "the phase field regularization length"); - - params.addParam("lambda", "lambda", "Lame's first parameter lambda"); - params.addParam("shear_modulus", "G", "shear modulus mu or G"); - params.addRequiredParam( "tensile_strength", "The tensile strength of the material beyond which the material fails."); - params.addRequiredParam( "compressive_strength", "The compressive strength of the material beyond which the material fails."); - params.addRequiredParam("delta", "delta"); - params.addParam( - "external_driving_force_name", - "ex_driving", - "Name of the material that holds the external_driving_force"); - params.addParam( - "stress_balance_name", - "stress_balance", - "Name of the stress balance function $F= \\dfrac{J_2}{\\mu} + \\dfrac{I_1^2}{9\\kappa} - c_e " - "-\\dfrac{3\\Gc}{8\\delta}=0 $. This value tells how close the material is to stress " - "surface."); - params.addParam("stress_name", "stress", "Name of the stress tensor"); - params.addRequiredCoupledVar("phase_field", "Name of the phase-field (damage) variable"); - - params.addParam("degradation_function", "g", "The degradation function"); return params; } KLRNucleationMicroForce::KLRNucleationMicroForce(const InputParameters & parameters) - : Material(parameters), - BaseNameInterface(parameters), - _ex_driving(declareADProperty(prependBaseName("external_driving_force_name", true))), - _Gc(getADMaterialProperty(prependBaseName("fracture_toughness", true))), - _c0(getADMaterialProperty(prependBaseName("normalization_constant", true))), - _L(getADMaterialProperty(prependBaseName("regularization_length", true))), - _lambda(getADMaterialProperty(prependBaseName("lambda", true))), - _mu(getADMaterialProperty(prependBaseName("shear_modulus", true))), + : NucleationMicroForceBase(parameters), _sigma_ts(getADMaterialProperty(prependBaseName("tensile_strength", true))), _sigma_cs(getADMaterialProperty(prependBaseName("compressive_strength", true))), _delta(getADMaterialProperty(prependBaseName("delta", true))), - _stress(getADMaterialProperty(prependBaseName("stress_name", true))), - _stress_balance(declareADProperty(prependBaseName("stress_balance_name", true))), - _druck_prager_balance(declareADProperty("druck_prager_balance")), - _d_name(getVar("phase_field", 0)->name()), - _g_name(prependBaseName("degradation_function", true)), - _g(getADMaterialProperty(_g_name)), - _dg_dd(getADMaterialProperty(derivativePropertyName(_g_name, {_d_name}))) + _druck_prager_balance(declareADProperty("druck_prager_balance")) { } diff --git a/src/materials/nucleation_models/LDLNucleationMicroForce.C b/src/materials/nucleation_models/LDLNucleationMicroForce.C new file mode 100644 index 00000000000..26a9ff272b7 --- /dev/null +++ b/src/materials/nucleation_models/LDLNucleationMicroForce.C @@ -0,0 +1,104 @@ +//* This file is part of the RACCOON application +//* being developed at Dolbow lab at Duke University +//* http://dolbow.pratt.duke.edu + +#include "LDLNucleationMicroForce.h" + +registerADMooseObject("raccoonApp", LDLNucleationMicroForce); + +InputParameters +LDLNucleationMicroForce::validParams() +{ + InputParameters params = NucleationMicroForceBase::validParams(); + + params.addClassDescription( + "This class computes the external driving force for nucleation given " + "a Drucker-Prager strength envelope developed by Larsen et al. (2024)"); + params.addRequiredParam( + "tensile_strength", "The tensile strength of the material beyond which the material fails."); + params.addRequiredParam( + "hydrostatic_strength", + "The hydrostatic strength of the material beyond which the material fails."); + params.addParam("delta", "delta", "Name of the unitless coefficient delta"); + params.addParam("h_correction", false, "Whether to use h correction formula for delta"); + return params; +} + +LDLNucleationMicroForce::LDLNucleationMicroForce(const InputParameters & parameters) + : NucleationMicroForceBase(parameters), + _sigma_ts(getADMaterialProperty(prependBaseName("tensile_strength", true))), + _sigma_hs(getADMaterialProperty(prependBaseName("hydrostatic_strength", true))), + _delta(declareADProperty(prependBaseName("delta", true))), + _h_correction(getParam("h_correction")) +{ +} + +void +LDLNucleationMicroForce::computeQpProperties() +{ + // The bulk modulus + ADReal K = _lambda[_qp] + 2.0 * _mu[_qp] / 3.0; + + // The Young's modulus + ADReal E = 9.0 * _mu[_qp] * K / (_mu[_qp] + 3.0 * K); + + // The mobility + ADReal M = _Gc[_qp] / _L[_qp] / _c0[_qp]; + + // Invariants of the stress + ADReal I1 = _stress[_qp].trace(); + ADRankTwoTensor stress_dev = _stress[_qp].deviatoric(); + ADReal J2 = 0.5 * stress_dev.doubleContraction(stress_dev); + + // Just to be extra careful... J2 is for sure non-negative but discretization and interpolation + // might bring surprise + if (J2 < 0) + mooseException("Negative J2"); + + // define zero J2's derivative + if (MooseUtils::absoluteFuzzyEqual(J2, 0)) + J2.value() = libMesh::TOLERANCE * libMesh::TOLERANCE; + + // Compute critical energy + ADReal W_ts = _sigma_ts[_qp] * _sigma_ts[_qp] / 2.0 / E; + ADReal W_hs = _sigma_hs[_qp] * _sigma_hs[_qp] / 2.0 / K; + + // Compute delta + if (!_h_correction) + { + // Use formula without h correction + _delta[_qp] = (_sigma_ts[_qp] + (1 + 2 * std::sqrt(3)) * _sigma_hs[_qp]) / + (8 + 3 * std::sqrt(3)) / _sigma_hs[_qp] * 3.0 / 16.0 * + (_Gc[_qp] / W_ts / _L[_qp]) + + 3.0 / 8.0; + } + else + { + // Get mesh size of current element + ADReal h = _current_elem->hmin(); + + // Use formula with h correction + _delta[_qp] = std::pow(1 + 3.0 / 8.0 * h / _L[_qp], -2) * + (_sigma_ts[_qp] + (1 + 2 * std::sqrt(3.0)) * _sigma_hs[_qp]) / + (8 + 3 * std::sqrt(3.0)) / _sigma_hs[_qp] * 3 / 16 * + (_Gc[_qp] / W_ts / _L[_qp]) + + std::pow(1 + 3.0 / 8.0 * h / _L[_qp], -1) * 2 / 5; + } + + // Parameters in the strength surface + ADReal alpha_1 = + -_delta[_qp] * _Gc[_qp] / 8.0 / _sigma_hs[_qp] / _L[_qp] + 2.0 / 3.0 * W_hs / _sigma_hs[_qp]; + ADReal alpha_2 = -(std::sqrt(3.0) / 8.0 * _delta[_qp] * (3.0 * _sigma_hs[_qp] - _sigma_ts[_qp]) / + (_sigma_hs[_qp] * _sigma_ts[_qp]) * _Gc[_qp] / _L[_qp] + + 2.0 / std::sqrt(3.0) * W_hs / _sigma_hs[_qp] - + 2.0 * std::sqrt(3.0) * W_ts / _sigma_ts[_qp]); + + // Compute the external driving force required to recover the desired strength envelope. + _ex_driving[_qp] = + alpha_2 * std::sqrt(J2) + alpha_1 * I1 + + (1.0 - std::sqrt(I1 * I1) / I1) / std::pow(_g[_qp], 1.5) * + (J2 / 2.0 / _mu[_qp] + I1 * I1 / 6.0 / (3.0 * _lambda[_qp] + 2.0 * _mu[_qp])); + + _stress_balance[_qp] = + J2 / _mu[_qp] + std::pow(I1, 2) / 9.0 / K - _ex_driving[_qp] - M * _delta[_qp]; +} \ No newline at end of file diff --git a/src/materials/nucleation_models/NucleationMicroForceBase.C b/src/materials/nucleation_models/NucleationMicroForceBase.C new file mode 100644 index 00000000000..50f6bd8fc01 --- /dev/null +++ b/src/materials/nucleation_models/NucleationMicroForceBase.C @@ -0,0 +1,51 @@ +//* This file is part of the RACCOON application +//* being developed at Dolbow lab at Duke University +//* http://dolbow.pratt.duke.edu + +#include "InputParameters.h" +#include "NucleationMicroForceBase.h" + +InputParameters +NucleationMicroForceBase::validParams() +{ + InputParameters params = Material::validParams(); + params += BaseNameInterface::validParams(); + + // common parameters + params.addParam( + "fracture_toughness", "Gc", "energy release rate or fracture toughness"); + params.addParam( + "normalization_constant", "c0", "The normalization constant $c_0$"); + params.addParam( + "regularization_length", "l", "the phase field regularization length"); + params.addParam("lambda", "lambda", "Lame's first parameter lambda"); + params.addParam("shear_modulus", "G", "shear modulus mu or G"); + params.addParam( + "stress_balance_name", "stress_balance", "Name of the stress balance function $F(\\sigma)$"); + params.addParam("stress_name", "stress", "Name of the stress tensor"); + params.addParam( + "external_driving_force_name", + "ex_driving", + "Name of the material that holds the external_driving_force"); + params.addRequiredCoupledVar("phase_field", "Name of the phase-field (damage) variable"); + params.addParam("degradation_function", "g", "The degradation function"); + return params; +} + +NucleationMicroForceBase::NucleationMicroForceBase(const InputParameters & parameters) + : Material(parameters), + BaseNameInterface(parameters), + _Gc(getADMaterialProperty(prependBaseName("fracture_toughness", true))), + _c0(getADMaterialProperty(prependBaseName("normalization_constant", true))), + _L(getADMaterialProperty(prependBaseName("regularization_length", true))), + _lambda(getADMaterialProperty(prependBaseName("lambda", true))), + _mu(getADMaterialProperty(prependBaseName("shear_modulus", true))), + _stress(getADMaterialProperty(prependBaseName("stress_name", true))), + _stress_balance(declareADProperty(prependBaseName("stress_balance_name", true))), + _ex_driving(declareADProperty(prependBaseName("external_driving_force_name", true))), + _d_name(getVar("phase_field", 0)->name()), + _g_name(prependBaseName("degradation_function", true)), + _g(getADMaterialProperty(_g_name)), + _dg_dd(getADMaterialProperty(derivativePropertyName(_g_name, {_d_name}))) +{ +} \ No newline at end of file From a78cff8e264624f2dc236a931abd89f29a6bd835 Mon Sep 17 00:00:00 2001 From: Gary Hu Date: Tue, 16 Apr 2024 15:31:25 -0500 Subject: [PATCH 2/4] Modify surfing tutorial --- .../surfing_boundary_problem/elasticity.i | 13 ++++----- tutorials/surfing_boundary_problem/fracture.i | 26 ++++++++++-------- .../gold/elasticity_out.e | Bin 193516 -> 195620 bytes tutorials/surfing_boundary_problem/tests | 2 +- 4 files changed, 21 insertions(+), 20 deletions(-) diff --git a/tutorials/surfing_boundary_problem/elasticity.i b/tutorials/surfing_boundary_problem/elasticity.i index d698ccaae2f..a64a614c447 100644 --- a/tutorials/surfing_boundary_problem/elasticity.i +++ b/tutorials/surfing_boundary_problem/elasticity.i @@ -15,9 +15,8 @@ Gc = 9.1e-2 # 91N/m l = 0.35 sigma_ts = 27 sigma_cs = 77 -# for model 2022 (KLR), select delta=0.2 -# for model 2020 (KLBF), select delta=1.16 -delta = 0.2 #1.16 +sigma_hs = '${fparse 2/3*sigma_ts*sigma_cs/(sigma_cs - sigma_ts)}' + c1 = '${fparse (1+nu)*sqrt(Gc)/sqrt(2*pi*E)}' c2 = '${fparse (3-nu)/(1+nu)}' ahead = 2 @@ -40,7 +39,7 @@ refine = 3 [fracture] type = TransientMultiApp input_files = fracture.i - cli_args = 'E=${E};K=${K};G=${G};Lambda=${Lambda};Gc=${Gc};l=${l};nx=${nx};ny=${ny};refine=${refine};sigma_ts=${sigma_ts};sigma_cs=${sigma_cs};delta=${delta}' + cli_args = 'E=${E};K=${K};G=${G};Lambda=${Lambda};Gc=${Gc};l=${l};nx=${nx};ny=${ny};refine=${refine};sigma_ts=${sigma_ts};sigma_hs=${sigma_hs}' execute_on = 'TIMESTEP_END' [] [] @@ -201,9 +200,9 @@ refine = 3 boundary = 'left top right bottom' [] [Jint_over_Gc] - type = ScalePostprocessor - value = 'Jint' - scaling_factor = '${fparse 1.0/Gc}' + type = ParsedPostprocessor + pp_names = 'Jint' + expression = 'Jint/${Gc}' [] [] diff --git a/tutorials/surfing_boundary_problem/fracture.i b/tutorials/surfing_boundary_problem/fracture.i index b9b360550fa..6eae16b1ba3 100644 --- a/tutorials/surfing_boundary_problem/fracture.i +++ b/tutorials/surfing_boundary_problem/fracture.i @@ -53,11 +53,10 @@ [Bounds] [conditional] - type = ConditionalBoundsAux + type = VariableOldValueBounds variable = bounds_dummy bounded_variable = d - fixed_bound_value = 0 - threshold_value = 0.95 + bound_type = lower [] [upper] type = ConstantBounds @@ -85,14 +84,15 @@ type = ADCoefMatSource variable = d prop_names = 'ce' + coefficient = 1.0 [] [] [Materials] [fracture_properties] type = ADGenericConstantMaterial - prop_names = 'E K G lambda Gc l sigma_ts sigma_cs delta' - prop_values = '${E} ${K} ${G} ${Lambda} ${Gc} ${l} ${sigma_ts} ${sigma_cs} ${delta}' + prop_names = 'E K G lambda Gc l sigma_ts sigma_hs' + prop_values = '${E} ${K} ${G} ${Lambda} ${Gc} ${l} ${sigma_ts} ${sigma_hs}' [] [degradation] type = PowerDegradationFunction @@ -111,21 +111,23 @@ [psi] type = ADDerivativeParsedMaterial property_name = psi - expression = 'g*psie_active+(Gc/c0/l)*alpha' + expression = 'g*psie_active+(Gc*delta/c0/l)*alpha' coupled_variables = 'd psie_active' - material_property_names = 'alpha(d) g(d) Gc c0 l' + material_property_names = 'delta alpha(d) g(d) Gc c0 l' derivative_order = 1 [] - [kumar_material] - type = KLRNucleationMicroForce + [nucleation_micro_force] + type = LDLNucleationMicroForce phase_field = d - # type = KLBFNucleationMicroForce + degradation_function = g + regularization_length = l normalization_constant = c0 + fracture_toughness = Gc tensile_strength = sigma_ts - compressive_strength = sigma_cs + hydrostatic_strength = sigma_hs delta = delta + h_correction = true external_driving_force_name = ce - output_properties = 'ce' [] [strain] type = ADComputePlaneSmallStrain diff --git a/tutorials/surfing_boundary_problem/gold/elasticity_out.e b/tutorials/surfing_boundary_problem/gold/elasticity_out.e index 77e4620ab8b3dfd3424462e174acaff40794dbd5..5bce570a52939fd10acaae2abce8e985f2c82025 100644 GIT binary patch literal 195620 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�H%9O=#`vUP{lE9bLG2R~VJ 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 literal 193516 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

keSROGJ#QJ+TfmO)1$JyiM5c#fvk^9poh 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νcGT)Uc;DbtHdX5HUnKAQ zco&T;+n-Ik_X+!-ezZb-MJV=G|%BUa-qvyyc!lT-|6ieAyQ1!R19JCu)OI3%iDb*4uRz?0a(uN0?VHauzVE&%U2Mv+*tw3RWh(#@qy)y*&`|7X)>@p zodTA#g&^RlNe)xEm zz;ZASSU#?Tp#Ke}fbIX=z;dAqY~Pmw+xM%1<)ISTe(w!}e%F}=0uHVJ#5J z{%skGH#M*6I6nYoFE~rC$c{n@wJ&3?PGa`fB>SJe{3aVEM!iy5sOyi?OW*sB3uN{+ zjd*%wQvY<6+UfM@4`^b)y(&Lk^+iL9{V=A`8JB~$7b7)eNoK$@%R}t^H5Yl>|2-1Fci%w znsULu5=9nmbA5Ys1&X|#e#&GyvnTRL#_EyRRZ+z2XGL$nZzw#s_w|z#6jAt0`-r2{ zn0-jyt+U^KPC;RNlkW}pZBS@K>72QNRVZ{Z5(0Jvp^$#%mZe$ZC=@jB_2=Rie)qc0 zuLkoJ`Q0y6v+kXm%I|vea`EENTln4m7liLH8piK3(b_CCMvUJz1%EXM8S*>VHU?(7 zZRB@esPs167r^iMd11S(2eThgZ{zDasXTti)L7q-9)p;DT32{izv}VZKkTYkZ=AvJ z=rw!sGdV|ods3?V&gK?=`=))7W2}$!+m$yv?7PV98Ph#KCf=cp-*#(E+JQ6Xl`UZen>m+K7Yqe63VQNBn! z_8M+prto$k%4Lf$_;LIz%G8X0cmZNjddy|BbNa$4`EB}3bKV=2IMc`0ySxs?i<|hK z*{UdZL9XPs>_!xAQXaBTS{FsF_8!Q#7=$8gji(JVx`D#24-q={49;47)-Hf?;hfzrOWRrBOP+TW z<$kTWDIcSSGM9|XPkJ|@)c48L%to$5$+<5jJi4=(KGuGHyZ?CygXn7&%EMqlO^3JuyL zd~ZWJzdLzeUkmjTepkh&L0=PF_+64Gmae-0k>43T`tU9dbAHFA=P%yQTEg$JXx*&~ z>-p`4p)OWYhxzRTr+>cen#6C*O5OH$$SLgm!h7Rq=KWWip*)2#aW7HTdi<+K7k%vQ zmGvfvc|VkLpOi78?Ww3#b?$uX!8q)#V&)Y3x)qglwzt+TypFwI?+$x2*%)Q(5`0E4 zu|nxnt*;)s?MBINm!peRSEIyEC#m~GXQOyh@5jz!XHhI=_-hU2W)$6hp)PT2EQ-AL z?9l!gha$FNp7EW_m_2KqwlcF-QMjM}9Z|)PD6}VY(Y^jLC}bMA^k>*&h94zdcXu_v z>qh;{)@EkUn!5V8thfdI&Y5?=%IskFgx)jnWiS=_9d--PW=D`7$_-$z>t7Ribp!a&6%8;l2==0$a-*6P*$lq5Ee4XBaE=M(d$4y#*4ijIr-7&v} z=Jp*@zxC{~uSvgiLtb{FviXuPS;?1CVNvL!gAFn$=i!nvbUY8GTP_ZG`PLVu^rj3t z5p)wJPL8Y6tGtimt5lblSB^xnRSC0qEww?>!^d`99e)NzK0hnIvp@nxT=gCaC+ni{ zp{c7*%05P6?X>L1-cl&EUplR#r51%OHNQ4)a^ZJxNnB^L={~>ffva8U&u9Fu0ju9` z|8Ricne0Dx#=t53jz_y@Eo)@<$~x+QKUDOCIrrUh_Op=R-lvc8qNxh}wiHz(2gP=( z_h_njZI60aQoZLOG6qGFr>NesRPTXQ?{ccQ8}Yq|_*Nml=M&#o ziSI1p+n)F~CcgI*-|ED7Gx5EW_-5vofbR>$H?t4zKlqmJ!FMm>JA(KYCBB(`nF78` ziSLudcNg*9One&?-}8uXW?!a&@1w+b3h{lH^n4HLd1VhhpF?_{%IdkO2x>G>DZ z^C(u&_1b&r`7_ePAkBSSn)gvO z=L=}Qd(vF@r+I#j=6E&D@Ac%<%*nTvlRq;cU&iQ?z>fuz4>KbF#q9SM_^vVJw=&3Q z`H;WbLB1-U{FD;;sQ%=ijQ{v1)-Or@@ky*d${=4L`I=PL&$LLBk7*|VqJ!$YLi}=mZ^j`8yUo&eenb7sN~wj{18|7b z`VpFQexmPYrHzfpqOh;@y^1fBPNQynR`z#hf1=Kzt&g{f^hHnakB77!C9#iFa$WT) z=J|e(;qJw&6ma0RHNHpdWzp@RVqsT}1*(`ysQYbEN3C`@s}JH^v7hA?kqK8@(dnXc z-6WHBsPv(~6#w2#RMUM@Ts>p~s!heZ;UyhtckSXVsnmQ_uKz7O<&rUKipTlnF3rF` z0~HLl<;76rNYE3}kRVjv$$JdE&zl};IBZalK;!)-L3*NpR15wdy_T7Wq z%~0|9tiV~`6Hq~})xf}HJ1U;=D}FdA0Og}49&BqZMfuGJ3eBHSpJeOb5p`mgmU zrEIt{bWSZwwQv49FcnbJ*E#gS?kC@#F| z^laI4C??xkSN+fs#gq>Aop^`YcUSP_cip}*DAvbEChbxaiaJX)UUPbfqVDaLJ8$`- zNWEMBwOc^-HbkYWeb;Aqj02(xWswp`(ie}JvofoBRRlO^Vg7K6poF% zldHV|gh93#TwT_FB;>PIyhyLLmneB#qgpD^!2ch|lkutJnN|kQ=|NpW*Kz*RL|K zJ<_jeG5h5&e*bz~Scczu7pHJM*L3QE0YQi z>F_%qM2k9qRLu*-P9! zxkISoG@tqFhHP#szahkL2l2g) zxV0m0HHha*;xKq zc)HSqmy^WNLgFNhIC)0=3?V)mh>vjMrjfY#Nn8vgUYv=CYsAA0;^Yc(;7J@*6CdY# z^#4iXg4v(?uf8w(PJJ&$JQ%Y5zNQ!TyESppi~78j`g{WQKeJEr|K8sVn0>~AzMo2c zEk=EPnfiSp_qoo$k^NNF-+TCb5C6J>zkTqx5B~PSUk?7ab-;q3G*+&ysj z!bL96MJ~@pF3&|S&qXfJMJ~@pF3&|S&qXfJMJ~@pF3&|S&qXfJMJ~@pF3&|S&qXfJ zMJ~@pF3&|S&qXfJMJ~@pF3&|S&qXfJMJ~@pF3&|S&qXfJMJ~@pF3&|S&qXfJMJ~@p zF3&|S&qXfJMK1p*&NAHI?ylnlu|Jgarj(RHc$V$Dj-X~3chfFiR=ApZf6TD&e#{=b zvG0z*-Jv)I{0-a6WX3Fm(TCF(=exOs*EhvgXA&2K$MVXk$XDs$miMb~<&ewZ;%nvM z6>bSm(~5HL#TA0Xt>WXx9(}=X^fS!U9S0+9imd7zc`!Vws^h8Be6VWt9L3LH4VF8d zu4}gIfW^#43>nXSG(WCWQfZ48n9r-;Xdx{GX8BLcTUPA=)9T2P1>bIiN%U(2FI96e z?tgyHm=*P4*xVFpol*k^bvap$5nV9!%hpzF^II^~SS;Dbb|=jAe=+pbqJzM5ujya9 zf@j0q z`8nfe!pQv_J5_28z_qQ>`u&)t;QZkB+}hN+;H0J)74dEzIE;JS>*eEUux-mvKXioI zqu3!1YMS?9xQ9)M^Q7fqb>s6j>FuAva%t5_hcPRe_tnV!sCHrYzJxefJ+3+m<_QLq z)Kas+Y{%(Y;$yAA^n`1WQo1IX1jm2!Ysd!U-USb`B|m`S=g-OUVOC)9Qsj=#dubT@ zafU;NY%dt9a^aTq^hTJjF`<2Y@?+oy7w#7Qv;ZRdM95A5$6X3bv4ykBY8Hl48W4`6fZWXZyTZ((@fYIVPFzrd;}B)=rU z5-j88#KX6XfQ9GI05RoTFwE2M$YPBbU>==2Q}}lqm~DK#)*+<=ObdU_o3wKmnD`n@ z$mxF$j1?@6HN%*FG9NG7hli$u!3+D!g`Zqt=v(n!D$l-v{*N~*tIq_&lnrJo7E68r zPk!m*iai++IpKrN_(NkLBxvh+#UmyV@Z3}N*8Kp z(`|V$wC2V$eZ>;cuZ=G>spv=NZKU(Aqw@yPd5!73!F1k6Ir33T3OIQO&G zr+!YRe%9{M&-&EQ52&Bjsh@4BpZ%$y)!2TX+(rG&?4uI&^I+=dbn544)X&eUpPQ(k zjoE(Q)^{HJaVLYbdcte9L*zdnnzwVkAi3(Wzam*rFpc7<`J`hOE8a^J(+@egfx#B zeg*SLk>=4)b{?f_v-2o&5Y40CG>^(4;nK^A(W~rWO3CM!OV9xOcXs_ zY@~M%0@b?qu2otD{+ceEBTDrkFvCzS$!!|=-L!dQGkQ1pPL^}8?~nnnZ548pyUM}W zW}L+0uNT3~{>s;;hyyUn=1{Glx(19~7}UB(^cC}YnBCGFdCZ4o2P^8UhitJJKEqtFQsTN*eY z&E4a((-@qZ`?k)w@@`)uVSsq%-xZbjQD3pq8g-5RBO zWQQG$C>nog^wW!AyC(EoFUD7l$o+bJOzt|cxjyToR?RDizBawE>@`>~TJ|j1#R`U-C5!GjsSegDt&JX5*TCvd^wz!h@nB^%^GXt= zgVptVMNQ4oV5OgGAKbYBEH|2odW{tYi>{pu2Jjg@TKiLZT2wn&w4VysQvV7TNlU7) zj64X#zCOM<&t?-?Bo3LXy~Y5BeJMYuAMXOgX6669m9PcO+iM5BFx?HqX4bDS=gEM1 zn`iC_eOEAFQ*ps#r4g79&|76~vjognCuoQVJp=RpznY58;=!z9(bl~+Tfi*1LaKLS z449qFJTW{V9n6BB&q_@Z1JmZE4N0SRfvJ)J1{wA?98kd!I{A@)uLx6rj)S7+G2%#lqqD zr+eZkKxd3~i!+g8-mq=ZTS^MG#jiCqi2SWXVpD7;n=eaSg4)@9xApt#D)|Q{kf~{u zexg4Yaq^?~OZhv&b&%HWy3 zqvt%U;8hB*vG9Bbo)h4;2wqLR=T~3gxeZ>Q!|P6Xo`vT&c(uZ7IXs8Jvk6{(;ME4t zk??GTS2uX=hvy-9mcy$GURmdGo>Squ7+!zEs~w(Q;W-#yW$>zm=W2K^gI6iMD&e^S zo-5&X6kc=SneC3nn4|ARi;dKmN*`7(x^Hq4Z!)v0$ zE9bdT1kYleH-!Eb`d8>*p?`(`75ewjeVx$1{C({I@8A4f&xebVn@KZV6%{d_LhYuL z*Uai#`J-cxl7fosV90&(}kiUD`zz&Vd%WUbODK ztfJfL5pN!B{7l8E1>x0(g@5`tPhy{ZIZ!3^uh73j|FZt&yTQW Date: Tue, 16 Apr 2024 15:34:27 -0500 Subject: [PATCH 3/4] Add newline before EOF --- include/materials/nucleation_models/LDLNucleationMicroForce.h | 2 +- include/materials/nucleation_models/NucleationMicroForceBase.h | 2 +- src/materials/nucleation_models/LDLNucleationMicroForce.C | 2 +- src/materials/nucleation_models/NucleationMicroForceBase.C | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/materials/nucleation_models/LDLNucleationMicroForce.h b/include/materials/nucleation_models/LDLNucleationMicroForce.h index 20ea226dc51..e8fb4688c5c 100644 --- a/include/materials/nucleation_models/LDLNucleationMicroForce.h +++ b/include/materials/nucleation_models/LDLNucleationMicroForce.h @@ -32,4 +32,4 @@ class LDLNucleationMicroForce : public NucleationMicroForceBase /// Whether to use h correction formula for delta bool _h_correction; -}; \ No newline at end of file +}; diff --git a/include/materials/nucleation_models/NucleationMicroForceBase.h b/include/materials/nucleation_models/NucleationMicroForceBase.h index 468bb5286bd..05f2a63b032 100644 --- a/include/materials/nucleation_models/NucleationMicroForceBase.h +++ b/include/materials/nucleation_models/NucleationMicroForceBase.h @@ -49,4 +49,4 @@ class NucleationMicroForceBase : public Material, const ADMaterialProperty & _g; const ADMaterialProperty & _dg_dd; /// @} -}; \ No newline at end of file +}; diff --git a/src/materials/nucleation_models/LDLNucleationMicroForce.C b/src/materials/nucleation_models/LDLNucleationMicroForce.C index 26a9ff272b7..4460be65cfa 100644 --- a/src/materials/nucleation_models/LDLNucleationMicroForce.C +++ b/src/materials/nucleation_models/LDLNucleationMicroForce.C @@ -101,4 +101,4 @@ LDLNucleationMicroForce::computeQpProperties() _stress_balance[_qp] = J2 / _mu[_qp] + std::pow(I1, 2) / 9.0 / K - _ex_driving[_qp] - M * _delta[_qp]; -} \ No newline at end of file +} diff --git a/src/materials/nucleation_models/NucleationMicroForceBase.C b/src/materials/nucleation_models/NucleationMicroForceBase.C index 50f6bd8fc01..53b4a556791 100644 --- a/src/materials/nucleation_models/NucleationMicroForceBase.C +++ b/src/materials/nucleation_models/NucleationMicroForceBase.C @@ -48,4 +48,4 @@ NucleationMicroForceBase::NucleationMicroForceBase(const InputParameters & param _g(getADMaterialProperty(_g_name)), _dg_dd(getADMaterialProperty(derivativePropertyName(_g_name, {_d_name}))) { -} \ No newline at end of file +} From 867e9d9b3754699e607b46be779c47ab447d5944 Mon Sep 17 00:00:00 2001 From: Yangyuanchen Liu Date: Mon, 22 Apr 2024 14:14:12 -0400 Subject: [PATCH 4/4] add missing requried param in test --- test/tests/nucleation_models/klbf.i | 1 + 1 file changed, 1 insertion(+) diff --git a/test/tests/nucleation_models/klbf.i b/test/tests/nucleation_models/klbf.i index 047006a35b8..77f847cdb0f 100644 --- a/test/tests/nucleation_models/klbf.i +++ b/test/tests/nucleation_models/klbf.i @@ -130,6 +130,7 @@ [] [kumar_material] type = KLBFNucleationMicroForce + phase_field = d normalization_constant = c0 tensile_strength = sigma_ts compressive_strength = sigma_cs