text: from abaqusConstants import *
  
  
  class DamageEvolution:
      """The DamageEvolution object specifies material properties to define the evolution of
      damage. 
  
      Notes
      -----
      This object can be accessed by:
      
      .. code-block:: python
          
          import material
          mdb.models[name].materials[name].ductileDamageInitiation.damageEvolution
          mdb.models[name].materials[name].fldDamageInitiation.damageEvolution
          mdb.models[name].materials[name].flsdDamageInitiation.damageEvolution
          mdb.models[name].materials[name].hashinDamageInitiation.damageEvolution
          mdb.models[name].materials[name].johnsonCookDamageInitiation.damageEvolution
          mdb.models[name].materials[name].maxeDamageInitiation.damageEvolution
          mdb.models[name].materials[name].maxpeDamageInitiation.damageEvolution
          mdb.models[name].materials[name].maxpsDamageInitiation.damageEvolution
          mdb.models[name].materials[name].maxsDamageInitiation.damageEvolution
          mdb.models[name].materials[name].mkDamageInitiation.damageEvolution
          mdb.models[name].materials[name].msfldDamageInitiation.damageEvolution
          mdb.models[name].materials[name].quadeDamageInitiation.damageEvolution
          mdb.models[name].materials[name].quadsDamageInitiation.damageEvolution
          mdb.models[name].materials[name].shearDamageInitiation.damageEvolution
          import odbMaterial
          session.odbs[name].materials[name].ductileDamageInitiation.damageEvolution
          session.odbs[name].materials[name].fldDamageInitiation.damageEvolution
          session.odbs[name].materials[name].flsdDamageInitiation.damageEvolution
          session.odbs[name].materials[name].hashinDamageInitiation.damageEvolution
          session.odbs[name].materials[name].johnsonCookDamageInitiation.damageEvolution
          session.odbs[name].materials[name].maxeDamageInitiation.damageEvolution
          session.odbs[name].materials[name].maxpeDamageInitiation.damageEvolution
          session.odbs[name].materials[name].maxpsDamageInitiation.damageEvolution
          session.odbs[name].materials[name].maxsDamageInitiation.damageEvolution
          session.odbs[name].materials[name].mkDamageInitiation.damageEvolution
          session.odbs[name].materials[name].msfldDamageInitiation.damageEvolution
          session.odbs[name].materials[name].quadeDamageInitiation.damageEvolution
          session.odbs[name].materials[name].quadsDamageInitiation.damageEvolution
          session.odbs[name].materials[name].shearDamageInitiation.damageEvolution
  
      The table data for this object are:
      
      - If *type*=DISPLACEMENT, and *softening*=LINEAR, and *mixedModeBehavior*=MODE_INDEPENDENT, the table data specify the following:
          - Equivalent total or Plastic displacement at failure, measured from the time of damage initiation.
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=ENERGY, and *softening*=LINEAR, and *mixedModeBehavior*=MODE_INDEPENDENT, the table data specify the following:
          - Fracture energy.
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=DISPLACEMENT, and *softening*=LINEAR, and *mixedModeBehavior*=TABULAR, the table data specify the following:
          - Total displacement at failure, measured from the time of damage initiation.
          - Appropriate mode mix ratio.
          - Appropriate mode mix ratio (if relevant, for three-dimensional problems with anisotropic shear behavior).
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=ENERGY, and *softening*=LINEAR, and *mixedModeBehavior*=TABULAR, the table data specify the following:
          - Fracture energy.
          - Appropriate mode mix ratio.
          - Appropriate mode mix ratio (if relevant, for three-dimensional problems with anisotropic shear behavior).
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=DISPLACEMENT, and *softening*=EXPONENTIAL, and *mixedModeBehavior*=MODE_INDEPENDENT, the table data specify the following:
          - Equivalent total or Plastic displacement at failure, measured from the time of damage initiation.
          - Exponential law parameter.
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=ENERGY, and *softening*=EXPONENTIAL, and *mixedModeBehavior*=MODE_INDEPENDENT, the table data specify the following:
          - Fracture energy.
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=DISPLACEMENT, and *softening*=EXPONENTIAL, and *mixedModeBehavior*=TABULAR, the table data specify the following:
          - Total displacement at failure, measured from the time of damage initiation.
          - Exponential law parameter.
          - Appropriate mode mix ratio.
          - Appropriate mode mix ratio (if relevant, for three-dimensional problems with anisotropic shear behavior).
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=ENERGY, and *softening*=EXPONENTIAL, and *mixedModeBehavior*=TABULAR, the table data specify the following:
          - Fracture energy.
          - Appropriate mode mix ratio.
          - Appropriate mode mix ratio (if relevant, for three-dimensional problems with anisotropic shear behavior).
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=DISPLACEMENT, and *softening*=TABULAR, and *mixedModeBehavior*=MODE_INDEPENDENT, the table data specify the following:
          - Damage variable.
          - Equivalent total or Plastic displacement, measured from the time of damage initiation.
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=DISPLACEMENT, and *softening*=TABULAR, and *mixedModeBehavior*=TABULAR, the table data specify the following:
          - Damage variable.
          - Equivalent total or Plastic displacement, measured from the time of damage initiation.
          - Appropriate mode mix ratio.
          - Appropriate mode mix ratio (if relevant, for three-dimensional problems with anisotropic shear behavior).
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=ENERGY, and *softening*=LINEAR or EXPONENTIAL, and *mixedModeBehavior*=POWER_LAW or BK, the table data specify the following:
          - Normal mode fracture energy.
          - Shear mode fracture energy for failure in the first shear direction.
          - Shear mode fracture energy for failure in the second shear direction.
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
      - If *type*=ENERGY, *softening*=LINEAR and constructor for [DamageInitiation](https://help.3ds.com/2022/english/DSSIMULIA_Established/SIMACAEKERRefMap/simaker-c-damageinitiationpyc.htm?ContextScope=all)=HashinDamageInitiation the table data specify the following:
          - Fiber tensile fracture energy.
          - Fiber compressive fracture energy.
          - Matrix tensile fracture energy.
          - Matrix compressive fracture energy.
          - Temperature, if the data depend on temperature.
          - Value of the first field variable, if the data depend on field variables.
          - Value of the second field variable.
          - Etc.
  
      The corresponding analysis keywords are:
  
      - DAMAGE EVOLUTION
  
      """
  
      def __init__(self, type: SymbolicConstant, table: tuple, degradation: SymbolicConstant = MAXIMUM,
                   temperatureDependency: Boolean = OFF, dependencies: int = 0,
                   mixedModeBehavior: SymbolicConstant = MODE_INDEPENDENT,
                   modeMixRatio: SymbolicConstant = ENERGY, power: float = None,
                   softening: SymbolicConstant = LINEAR):
          """This method creates a DamageEvolution object.
  
          Notes
          -----
              This function can be accessed by:
              
              .. code-block:: python
              
                  mdb.models[name].materials[name].ductileDamageInitiation\
              - .DamageEvolution
                  mdb.models[name].materials[name].fldDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].flsdDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].hashinDamageInitiation\
              - .DamageEvolution
                  mdb.models[name].materials[name].johnsonCookDamageInitiation\
              - .DamageEvolution
                  mdb.models[name].materials[name].maxeDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].maxpeDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].maxpsDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].maxsDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].mkDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].msfldDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].quadeDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].quadsDamageInitiation.DamageEvolution
                  mdb.models[name].materials[name].shearDamageInitiation.DamageEvolution
                  session.odbs[name].materials[name].ductileDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].fldDamageInitiation.DamageEvolution
                  session.odbs[name].materials[name].flsdDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].hashinDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].johnsonCookDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].maxeDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].maxpeDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].maxpsDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].maxsDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].mkDamageInitiation.DamageEvolution
                  session.odbs[name].materials[name].msfldDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].quadeDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].quadsDamageInitiation\
              - .DamageEvolution
                  session.odbs[name].materials[name].shearDamageInitiation\
              - .DamageEvolution
          
          Parameters
          ----------
          type
              A SymbolicConstant specifying the type of damage evolution. Possible values are 
              DISPLACEMENT and ENERGY. 
          table
              A sequence of sequences of Floats specifying the items described below. 
          degradation
              A SymbolicConstant specifying the degradation. Possible values are MAXIMUM and 
              MULTIPLICATIVE. The default value is MAXIMUM. 
          temperatureDependency
              A Boolean specifying whether the data depend on temperature. The default value is OFF. 
          dependencies
              An Int specifying the number of field variable dependencies. The default value is 0. 
          mixedModeBehavior
              A SymbolicConstant specifying the mixed mode behavior. Possible values are 
              MODE_INDEPENDENT, TABULAR, POWER_LAW, and BK. The default value is MODE_INDEPENDENT. 
          modeMixRatio
              A SymbolicConstant specifying the mode mix ratio. Possible values are ENERGY and 
              TRACTION. The default value is ENERGY. 
          power
              None or a Float specifying the exponent in the power law or the Benzeggagh-Kenane 
              criterion that defines the variation of fracture energy with mode mix for cohesive 
              elements. The default value is None. 
          softening
              A SymbolicConstant specifying the softening. Possible values are LINEAR, EXPONENTIAL, 
              and TABULAR. The default value is LINEAR. 
  
          Returns
          -------
              A DamageEvolution object. 
  
          Raises
          ------
          RangeError
          """
          pass
  
      def setValues(self):
          """This method modifies the DamageEvolution object.
  
          Raises
          ------
          RangeError
          """
          pass
  