.. _materials-cohesive:

*****************************
Cohesive Zone Material Models
*****************************

Several material models are available for use with cohesive zone elements or with Dash contact. These models are described in this section.

Traction separation models used for cohesive surface elements are input within ``BEGIN MATERIAL`` blocks in the same manner as continuum models. Although density is not a property used by cohesive zone elements, because of their specification within this block, all of these models currently require a density to be provided as part of their input. Output variables for Cohesive Zones can be found in Table :numref:`output-tab-elevarcse`. NOTE: while some  of the variables do have x, y, and z components they are not related to the global  coordinate system, but instead are related to normal and tangential directions.

.. _materials-tractiondecay:

Traction Decay
==============

.. code-block:: sierrainput

   BEGIN PARAMETERS FOR MODEL TRACTION_DECAY
     NORMAL DECAY LENGTH = <real>
     TANGENTIAL DECAY LENGTH = <real>
   END [PARAMETERS FOR MODEL TRACTION_DECAY]

The Traction Decay cohesive model is a simple model that gets initialized with a traction upon activation or insertion of the cohesive element. The traction  then decays to zero over specified values of normal and tangential separation. This model is only valid to use in conjunction with dynamic cohesive zone activation through MPC deactivation or dynamic insertion of cohesive surface elements.

In the above command block:

- The density of the material is defined with the ``DENSITY`` command line. Although this is not used in the model, it is currently a required input parameter.

- The separation length over which the normal traction decays to zero is set by the ``NORMAL DECAY LENGTH`` command line.

- The separation length over which the tangential traction decays to zero is set by the ``TANGENTIAL DECAY LENGTH`` command line.

The state variables for this model are listed in Table :numref:`materials-tractiondecay`.

.. _output-tab-tdstvar:

.. csv-table:: State Variables for TRACTION DECAY Surface Model (:numref:`materials-tractiondecay`)
   :align: center
   :delim: &
   :header: Index, Name, Variable Description
   :widths: auto

   0  & ``MAX_SEPARATION_S`` & maximum separation in the first tangential direction
   1  & ``MAX_SEPARATION_T`` & maximum separation in the second tangential direction
   2  & ``MAX_SEPARATION_N`` & maximum separation in the normal direction

.. _materials-tvergaardhutchinson:

Tvergaard Hutchinson
====================

.. code-block:: sierrainput

   BEGIN PARAMETERS FOR MODEL TVERGAARD_HUTCHINSON
     INIT TRACTION METHOD = {IGNORE|ADD|EXTRINSIC} (IGNORE)
     LAMBDA_1 = <real>
     LAMBDA_2 = <real>
     NORMAL LENGTH SCALE = <real>
     TANGENTIAL LENGTH SCALE = <real>
     PEAK TRACTION = <real>
     PENETRATION STIFFNESS MULTIPLIER = <real>
     USE ELASTIC UNLOADING = {NO|YES} (YES)
   END [PARAMETERS FOR MODEL TVERGAARD_HUTCHINSON]

The Tvergaard Hutchinson cohesive model combines the normal and tangential separation into a single normalized separation and calculates a traction per unit length based on this value. This model then calculates normal and tangential traction based on the ratio of the normal and tangential length scales.

In the above command blocks:

- For dynamically activated or dynamically inserted cohesive surface elements, an initial traction can be used to initialize the traction-separation model based on element properties specified in the ``ELEMENT DEATH`` or ``XFEM`` block. This is  set via the ``INIT TRACTION METHOD``. The default behavior is to ignore any initial tractions and let the traction-separation law dictate the behavior. Note that this does not maintain equilibrium upon cohesive element insertion. The ``ADD`` method offsets the traction-separation law by the initiation traction, which is linearly scaled to zero under further loading. The ``EXTRINSIC`` method initializes the state of the traction-separation law along the hardening branch. In the case that the initialization traction is greater than the specified peak traction, the traction-separation law is evaluated from the beginning of the traction plateau with the peak traction value rese to the initialization traction. Both the ``ADD`` and ``EXTRINSIC`` methods maintain equilibrium upon cohesive element insertion.

- ``LAMBDA_1`` indicates the normalized separation at which the traction response flattens with an additional increase in separation.

- ``LAMBDA_2`` indicates the normalized separation at which the traction begins to degrade with an additional increase in separation.

- The separation at which failure occurs in the normal direction is prescribed using the ``NORMAL LENGTH SCALE`` command.

- The maximum traction is specified through the ``PEAK TRACTION`` command.

- The separation at which failure occurs in the tangential direction is prescribed using the ``TANGENTIAL LENGTH SCALE`` command.

- The ``PENETRATION STIFFNESS MULTIPLIER`` command artificially increases the normal traction to help prevent interpenetration of cohesive surfaces when crack closure occurs. However, cohesive elements are not equipped to handle compression, and this penalty stiffness is an ad hoc approach to contact.

- Set the ``USE ELASTIC UNLOADING`` command to ``YES`` to force this model to unload elastically.

The state variables for this model are listed in Table :numref:`output-tab-thstvar`.

.. _output-tab-thstvar:

.. csv-table:: State Variables for TVERGAARD HUTCHINSON Surface Model (:numref:`materials-tvergaardhutchinson`)
   :align: center
   :delim: &
   :header: Index, Name, Variable Description
   :widths: auto

   1  & ``PEAK_TRACTION``          & maximum traction the model can experience
   2  & ``LAMBDA_MAX``             & maximum lambda the model has experienced
   3  & ``TRACTION_AT_LAMBDA_MAX`` & traction at LAMBDA_MAX
   4  & ``G_AT_LAMBDA_MAX``        & the area under the traction separation curve up to LAMBDA_MAX

.. _materials-thoulessparmigiani:

Thouless Parmigiani
===================

.. code-block:: sierrainput

   BEGIN PARAMETERS FOR MODEL THOULESS_PARMIGIANI
     INIT TRACTION METHOD = {IGNORE|ADD|EXTRINSIC} (IGNORE)
     LAMBDA_1_N = <real>
     LAMBDA_1_T = <real>
     LAMBDA_2_N = <real>
     LAMBDA_2_T = <real>
     NORMAL LENGTH SCALE = <real>
     PEAK NORMAL TRACTION = <real>
     TANGENTIAL LENGTH SCALE = <real>
     PEAK TANGENTIAL TRACTION = <real>
     PENETRATION STIFFNESS MULTIPLIER = <real>
     USE ELASTIC UNLOADING = {NO|YES} (YES)
   END [PARAMETERS FOR MODEL THOULESS_PARMIGIANI]

The Thouless Parmigiani model supports mixed-mode fracture more accurately than the Tvergaard Hutchinson model by separating the normal and tangential components, allowing one to fail independently of the other. Failure of this model is dependent on the energy release of both normal and tangential components. The shape of the traction-separation curve for this model is hardening, followed by a plateau, followed by softening.

In the above command block:

- For dynamically activated or dynamically inserted cohesive surface elements, an initial traction can be used to initialize the traction-separation model based on element properties specified in the ``ELEMENT DEATH`` or ``XFEM`` block. This is  set via the ``INIT TRACTION METHOD``. The default behavior is to ignore any initial tractions and let the traction-separation law dictate the behavior. Note that this does not maintain equilibrium upon cohesive element insertion. The ``ADD`` method offsets the traction-separation law by the initiation traction, which is linearly scaled to zero under further loading. The ``EXTRINSIC`` method initializes the state of the traction-separation law along the hardening branch. In the case that the initialization traction is greater than the specified peak traction, the traction-separation law is evaluated from the beginning of the traction plateau with the peak traction value rese to the initialization traction. Both the ``ADD`` and ``EXTRINSIC`` methods maintain equilibrium upon cohesive element insertion.

- ``LAMBDA_1_N`` indicates the normalized normal separation at which the traction response flattens with an additional increase in separation.

- ``LAMBDA_1_T`` indicates the normalized tangential separation at which the traction response flattens with an additional increase in separation.

- ``LAMBDA_2_N`` indicates the normalized normal separation at which the traction begins to decrease with an additional increase in separation.

- ``LAMBDA_2_T`` indicates the normalized tangential separation at which the traction begins to decrease with an additional increase in separation.

- The separation at which failure occurs in the normal direction is prescribed using the ``NORMAL LENGTH SCALE`` command.

- The maximum normal traction is specified through the ``PEAK NORMAL TRACTION`` command.

- The separation at which failure occurs in the tangential direction is prescribed using the ``TANGENTIAL LENGTH SCALE`` command.

- The maximum tangential traction is specified through the ``PEAK TANGENTIAL TRACTION`` command.

- The ``PENETRATION STIFFNESS MULTIPLIER`` command artificially increases the normal traction to help prevent interpenetration of cohesive surfaces when crack closure occurs. However, cohesive elements are not equipped to handle compression, and this penalty stiffness is an ad hoc approach to contact.

- Set the ``USE ELASTIC UNLOADING`` command to ``YES`` to force this model to unload elastically.

The state variables for this model are listed in Table :numref:`output-tab-tpstvar`.

.. _output-tab-tpstvar:

.. csv-table:: State Variables for THOULESS PARMIGIANI Surface Model (:numref:`materials-thoulessparmigiani`)
   :align: center
   :delim: &
   :header: Index, Name, Variable Description
   :widths: auto

   1  & ``FRACTION_OF_FAILURE``      & current fraction of failure
   2  & ``PEAK_TRACTION_N``          & maximum normal traction the model can experience
   3  & ``PEAK_TRACTION_T``          & maximum tangential traction the model can experience
   4  & ``LAMBDA_MAX_N``             & maximum normal lambda the model has experienced
   5  & ``TRACTION_AT_LAMBDA_MAX_N`` & normal traction at LAMBDA_MAX_N
   6  & ``LAMBDA_MAX_T``             & maximum tangential lambda the model has experienced
   7  & ``TRACTION_AT_LAMBDA_MAX_T`` & tangential traction at LAMBDA_MAX_T
   8  & ``G_AT_LAMBDA_MAX_N``        & the area under the normal traction separation curve up to LAMBDA_MAX_N
   9  & ``G_AT_LAMBDA_MAX_T``        & the area under the tangential traction separation curve up to LAMBDA_MAX_T

.. _materials-functionalinterfacetraction:

Functional Interface Traction
=============================

.. code-block:: sierrainput

   BEGIN PARAMETERS FOR MODEL FUNCTIONAL_INTERFACE_TRACTION
     NORMAL LENGTH SCALE = <real> (1.0)
     TANGENTIAL LENGTH SCALE = <real> (1.0)
     NORMAL TRACTION FUNCTION = <string>
     TANGENTIAL TRACTION FUNCTION = <string>
   END [PARAMETERS FOR MODEL FUNCTIONAL_INTERFACE_TRACTION]

The Functional Interface Traction model allows a general normal and tangential traction response law. The normal and tangential components of the traction are defined as functions of the normal and tangential components, respectively, of the separation displacement (appropriately normalized). The traction is evaluated given a separation displacement and subsequently applied. (Note: This model does not presently support some of the features of the other cohesive zone material models, such as elastic unloading and failure.)

The command block for the Functional Interface Traction model starts with the
line:

.. code-block:: sierrainput

   BEGIN PARAMETERS FOR MODEL FUNCTIONAL_INTERFACE_TRACTION

and terminates with the line:

.. code-block:: sierrainput

   END [PARAMETERS FOR MODEL FUNCTIONAL_INTERFACE_TRACTION]

In the above command block:

- The density of the material is defined with the ``DENSITY`` command line. Although this is not used in the model, it is currently a required input parameter.

- The separation scale in the normal direction is specified using the ``NORMAL LENGTH SCALE`` command. This is not strictly necessary as this scaling may instead be effected directly within the normal traction response function. It is only provided for similarity with the other cohesive zone material models.

- The separation scale in the tangential direction is specified using the ``TANGENTIAL LENGTH SCALE`` command. This is not strictly necessary as this scaling may instead be effected directly within the tangential traction response function. It is only provided for similarity with the other cohesive zone material models.

- The normal traction response as a function of the (normalized) normal component of the separation displacement is specified through the ``NORMAL TRACTION FUNCTION`` command.

- The tangential traction response as a function of the (normalized) tangential component of the separation displacement is specified through the ``TANGENTIAL TRACTION FUNCTION`` command.

.. _materials-alvesroehl:

Alves-Roehl
===========

.. code-block:: sierrainput

   begin parameters for model quadshell_model_alves_roehl
     NORMAL LENGTH SCALE = <real>
     TANGENTIAL LENGTH SCALE 1 = <real>
     TANGENTIAL LENGTH SCALE 2 = <real>
     ROTATIONAL LENGTH SCALE = <real>
   
     # normal work of separation
     NORMAL WOS = <real>
   
     # tangential work of separation
     TANGENTIAL WOS 1 = <real>
     TANGENTIAL WOS 2 = <real>
   
     # rotational work of separation
     ROTATIONAL WOS = <real>
   
     USE ELASTIC UNLOADING = {NO|YES} (YES)
   end

In the above command block:

- The separation at which failure occurs in the normal direction is prescribed using the ``NORMAL LENGTH SCALE`` command.

- The separation scale in the tangential direction 1 is specified using the ``TANGENTIAL LENGTH SCALE 1`` command. 

- The separation scale in the tangential direction 2 is specified using the ``TANGENTIAL LENGTH SCALE 1`` command. 

- The characteristic length for rotational bending is prescribed using the ``ROTATIONAL LENGTH SCALE`` command.

- The normal work of separation (WOS) in the normal direction is set using the ``NORMAL WOS`` command.

- The tangential work of separation in the tangential direction 1 is set using the ``TANGENTIAL WOS 1`` command.

- The tangential work of separation in the tangential direction 2 is set using the ``TANGENTIAL WOS 2`` command.

- The rotational work of separation (WOS) is set using the ``ROTATIONAL WOS`` command.

- Set the ``USE ELASTIC UNLOADING`` command to ``YES`` to force this model to unload elastically.
