.. _failure-bcj:

Modular BCJ Failure
===================

The modular BCJ (Bammann-Chiesa-Johnson [:footcite:`mat:ref:bamm1`]) failure model develops the damage variable through a micromechanical representation of the void evolution process. In this model, damage is defined as void volume fraction as function of void size :math:`v_v` and count :math:`f` in a nominal unit volume :math:`V_0` [:footcite:`Karlson2019`]:

.. math::

   d = \frac{v_v f V_0}{V_0 + v_v f V_0} = \frac{v_v f}{1 + v_v f} .

Void evolution is determined by incrementation of *void nucleation* and *void growth* models. Implemented void nucleation models include Horstemeyer-Gokhale (HG) [:footcite:`Horstemeyer1999`] and Chu-Needleman strain distribution (CNSD) [:footcite:`Chu1980`]:

.. math::
   :label: mat:eq:modularfailure_BCJ_nucleation_HG

   (\dot{f})^{\text{HG}} = f \dot{\bar{\varepsilon}}^p N_4 \left( N_1 \left[ \frac{4}{27} - \frac{{J_3}^2}{{J_2}^3} \right] + N_2 \left[ \frac{J_3}{{J_2}^{\frac32}} \right] + N_3 \left[ \frac{|p|}{\sigma_{vm}} \right]  \right),

where :math:`\{N_1, N_2, N_3, N_4\}` are fitting constants, :math:`\{J_2, J_3\}` are deviatoric stress tensor invariants, :math:`p` is the mean hydrostatic stress, and :math:`\sigma_{vm}` is the von-Mises stress. The :math:`N_1` term premultiplies a term indicating a shear-dominated stress state (maximal in torsion); the :math:`N_2` term premultiplies a term indicating uniaxial stress state (maximal in uniaxial tension); the :math:`N_3` term premultiplies a term indicating stress triaxiality (maximal in hydrostatic tension/compression).

.. math::

   (\dot{f})^{\text{CNSD}} = \frac{1}{(1-d)^2} \left[ \frac{\psi}{s v_0 \sqrt{2\pi}} \right] \exp\left( -\frac12 \left( \frac{\bar{\varepsilon}^p-\varepsilon_N}{s} \right)^2 \right), 

where :math:`\psi` is the void amplitude, :math:`\varepsilon_N` is the mean of the nucleation strain distribution, and :math:`s` is the standard deviation of the nucleation strain distribution.

The Cocks-Ashby (CA) model [:footcite:`mat:ref:cocks`] is the only growth model implemented to date:

.. math::
   :label: mat:eq:modularfailure_BCJ_growth_CA

   (\dot{v}_v)^{\text{CA}} = \sqrt{\frac23} \dot{\bar{\varepsilon}}^p \left( \frac{1 - (1-d)^{m+1}}{(1-d)^m} \right) \sinh\left[ \frac{2(2m-1)}{2m+1} \frac{p}{\sigma_{vm}} \right] , 

where :math:`m` is the damage growth exponent. 

The void nucleation and growth models are combined to develop the full expression for void evolution,

.. %  \dot{d} = \dot{v_v} + (1-d)^2 \dot{f} v_0 , 

.. math::
   :label: mat:eq:lame_modular_failure_voidevolution
   
   \dot{d} = \dot{v_v} w_1^G(\dot{\bar{\varepsilon}}^p) w_2^G(T) + (1-d)^2 \dot{f} v_0 w_1^N(\dot{\bar{\varepsilon}}^p) w_2^N(T) ,

where optional functions :math:`w_i^X` are introduced to account for strain-rate and temperature effects. Implemented functions provide for strain-rate and temperature effects using the :math:`D_4` and :math:`D_5` terms of the Johnson-Cook failure model :eq:`mat:eq:modularfailure_johnsoncook`. 

Note that the void evolution equation is defined implicitly, as void nucleation and growth expressions may each depend on damage. A model parameter :math:`\beta` exposes the option to control the temporal integration of :eq:`mat:eq:lame_modular_failure_voidevolution`, with :math:`\beta=0` representing forward Euler integration (explicit), :math:`\beta = 1` representing backward Euler integration (implicit), and :math:`\beta = 0.5` (default) representing trapezoidal integration (implicit). Other common parameters include the initial damage :math:`d_0` and initial void size :math:`v_0`.  

User Guide
----------

.. code-block:: sierrainput

   #
   # MODULAR_BCJ_FAILURE Failure model definitions
   #
   INITIAL DAMAGE    = <real>
   INITIAL VOID SIZE = <real>
   DAMAGE BETA       = <real> (0.5)
   GROWTH MODEL      = COCKS_ASHBY | NO_GROWTH (NO_GROWTH)
   NUCLEATION MODEL  = HORSTEMEYER_GOKHALE | CHU_NEEDLEMAN_STRAIN
                       | NO_NUCLEATION (NO_NUCLEATION)
   #
   GROWTH RATE FAIL MULTIPLIER        = JOHNSON_COOK | USER_DEFINED
                                        | RATE_INDEPENDENT 
                                        (RATE_INDEPENDENT)
   GROWTH TEMPERATURE FAIL MULTIPLIER = JOHNSON_COOK | USER_DEFINED
                                        | TEMPERATURE_INDEPENDENT
                                        (TEMPERATURE_INDEPENDENT)
   #
   NUCLEATION RATE FAIL MULTIPLIER        = JOHNSON_COOK | USER_DEFINED
                                            | RATE_INDEPENDENT 
                                            (RATE_INDEPENDENT)
   NUCLEATION TEMPERATURE FAIL MULTIPLIER = JOHNSON_COOK | USER_DEFINED
                                            | TEMPERATURE_INDEPENDENT
                                            (TEMPERATURE_INDEPENDENT)
   #
   # Definitions for individual growth and nucleation models
   #
   GROWTH MODEL = COCKS_ASHBY
   DAMAGE EXPONENT = <real> (0.5)
   #
   NUCLEATION MODEL      = HORSTEMEYER_GOKHALE
   NUCLEATION PARAMETER1 = <real> (0.0)
   NUCLEATION PARAMETER2 = <real> (0.0)
   NUCLEATION PARAMETER3 = <real> (0.0)
   #
   NUCLEATION MODEL          = CHU_NEEDLEMAN_STRAIN
   NUCLEATION AMPLITUDE      = <real>
   MEAN NUCLEATION STRAIN    = <real>
   NUCLEATION STRAIN STD DEV = <real>
   #
   # Definitions for rate and temperature fail multiplier
   #   Note: only showing definitions for growth.  
   #    Nucleation terms are the same just with NUCLEATION instead 
   #    of GROWTH
   #
   GROWTH RATE FAIL MULTIPLIER = JOHNSON_COOK
   GROWTH JOHNSON COOK D4      = <real>
   GROWTH REFERENCE RATE       = <real>
   #
   GROWTH RATE FAIL MULTIPLIER          = USER_DEFINED
   GROWTH RATE FAIL MULTIPLIER FUNCTION = <string> growth_rate_fail_mult_func
   #
   GROWTH TEMPERATURE FAIL MULTIPLIER = JOHNSON_COOK
   GROWTH JOHNSON COOK D5             = <real>
   GROWTH REFERENCE TEMPERATURE       = <real>
   GROWTH MELTING TEMPERATURE         = <real>
   #
   GROWTH TEMPERATURE FAIL MULTIPLIER          = USER_DEFINED
   GROWTH TEMPERATURE FAIL MULTIPLIER FUNCTION = <string> temp_fail_mult_func
   #

.. raw::
   html

   <hr>

.. footbibliography::
