- cName of damage variable
C++ Type:std::vector
Description:Name of damage variable
Compute Quasi-birttle Linear Elastic Phase Field Fracture Stress
Description
This material implements the unified phase-field model for mechanics of damage and quasi-brittle failure from Jian-Ying Wu Wu (2017).
Crack Surface Energy
The regularized functional is given as
The crack surface density function is expressed in terms of the crack phase-field and its spatial gradient as where the geometric function characterizes homogeneous evolution of the crack phase-field. is an internal length scale regularizing the sharp crack. is a scaling parameter such that the regularized functional represents the crack surface.
The crack geometric function generally satisfies the following properties,
In the classical phase-field models the modeling crack geometric function have been widely adopted for brittle fracture_energy
Elastic Energy
The elastic energy is defined as
The monotonically decreasing energetic function describes degradation of the initial strain energy as the crack phase-field evolves, satisfying the following properties Miehe et al. (2015)
The variation of the elastic energy gives constitutive relations where the thermodynamic force drives evolution of the crack phase-field with the reference energy related to the strain field .
Energetic Degradation Function
A genetic expression for degradation function is given as for and continuous function Q(d) > 0. Jian-Ying Wu considers following polynomials where the coefficients are calibrated from standard material properties.
The energetic function recovers some particular examples used in the literature, such as when and .
Decomposition Approaches
The elastic energy is usually decomposed additively to distinguish between tensile and compressive contributions. Three decomposition approaches are implemented.
Strain Spectral Decomposition
The total strain energy density is defined as where is the strain energy due to tensile stress, is the strain energy due to compressive stress. where is the th eigenvalue of the strain tensor and is an operator that provides the positive or negative part.
To be thermodynamically consistent, the stress is related to the deformation energy density according to Thus, where is the th eigenvector. The stress becomes
Strain Volumetric and Deviatoric Decomposition
The approach is based on the orthogonal decomposition of the linearized strain tensor in its spherical and deviatoric components: werhe deontes the n-dimensional identity tensor.
and is defined as
The stress is defined as and
Stress Spectral Decomposition
and is defined as
The compressive and tensile parts of the stress are computed from postive and negative projection tensors (computed from the spectral decomposition) according to
To be thermodynamically consistent, the stress is related to the deformation energy density according to Since then,
The Jacobian matrix for the stress is where is the elasticity tensor.
Note that stress spectral decomposition approach can be used for anisotropic elasticity tensor.
Evolution Equation (Allen-Cahn)
To avoid crack healing, a history variable is defined that is the maximum energy density over the time interval , where is the current time step, i.e.
Now, the total free energy is redefined as: with and
Its derivatives are
To further avoid crack phase-field going to negative, should overcome a barrier energy. The barrier energy is determined by and the is modified as
The evolution equation for the damage parameter follows the Allen-Cahn equation where and .The is scaled by the which is consistent with the definition given by Miehe at.al Miehe et al. (2015).
This equation follows the standard Allen-Cahn and thus can be implemented in MOOSE using the standard Allen-Cahn kernels, TimeDerivative, AllenCahn, and ACInterface. There is now an action that automatically generates these kernels: NonconservedAction. See the PhaseField module documentation for more information.
Example Input File Syntax
[./damage_stress]
type = ComputeLinearElasticPFFractureStress
c = c
E_name = 'elastic_energy'
D_name = 'degradation'
F_name = 'local_fracture_energy'
decomposition_type = strain_spectral
[../]
(modules/combined/test/tests/phase_field_fracture/crack2d_iso.i)Input Parameters
- D_namedegradationName of material property for energetic degradation function.
Default:degradation
C++ Type:MaterialPropertyName
Description:Name of material property for energetic degradation function.
- E_nameelastic_energyName of material property for elastic energy
Default:elastic_energy
C++ Type:MaterialPropertyName
Description:Name of material property for elastic energy
- F_namelocal_fracture_energyName of material property for local fracture energy function.
Default:local_fracture_energy
C++ Type:MaterialPropertyName
Description:Name of material property for local fracture energy function.
- barrier_energyName of material property for fracture energy barrier.
C++ Type:MaterialPropertyName
Description:Name of material property for fracture energy barrier.
- base_nameOptional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
C++ Type:std::string
Description:Optional parameter that allows the user to define multiple mechanics material systems on the same block, i.e. for multiple phases
- blockThe list of block ids (SubdomainID) that this object will be applied
C++ Type:std::vector
Description:The list of block ids (SubdomainID) that this object will be applied
- boundaryThe list of boundary IDs from the mesh where this boundary condition applies
C++ Type:std::vector
Description:The list of boundary IDs from the mesh where this boundary condition applies
- computeTrueWhen false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
Default:True
C++ Type:bool
Description:When false, MOOSE will not call compute methods on this material. The user must call computeProperties() after retrieving the MaterialBase via MaterialBasePropertyInterface::getMaterialBase(). Non-computed MaterialBases are not sorted for dependencies.
- constant_onNONEWhen ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeSubdomainProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
Default:NONE
C++ Type:MooseEnum
Description:When ELEMENT, MOOSE will only call computeQpProperties() for the 0th quadrature point, and then copy that value to the other qps.When SUBDOMAIN, MOOSE will only call computeSubdomainProperties() for the 0th quadrature point, and then copy that value to the other qps. Evaluations on element qps will be skipped
- decomposition_typenoneDecomposition approaches. Choices are: strain_spectral strain_vol_dev stress_spectral none
Default:none
C++ Type:MooseEnum
Description:Decomposition approaches. Choices are: strain_spectral strain_vol_dev stress_spectral none
- use_current_history_variableFalseUse the current value of the history variable.
Default:False
C++ Type:bool
Description:Use the current value of the history variable.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Description:Set the enabled status of the MooseObject.
- implicitTrueDetermines whether this object is calculated using an implicit or explicit form
Default:True
C++ Type:bool
Description:Determines whether this object is calculated using an implicit or explicit form
- seed0The seed for the master random number generator
Default:0
C++ Type:unsigned int
Description:The seed for the master random number generator
Advanced Parameters
- output_propertiesList of material properties, from this material, to output (outputs must also be defined to an output type)
C++ Type:std::vector
Description:List of material properties, from this material, to output (outputs must also be defined to an output type)
- outputsnone Vector of output names were you would like to restrict the output of variables(s) associated with this object
Default:none
C++ Type:std::vector
Description:Vector of output names were you would like to restrict the output of variables(s) associated with this object
Outputs Parameters
Input Files
- modules/combined/test/tests/phase_field_fracture/crack2d_iso_wo_time.i
- modules/combined/test/tests/phase_field_fracture/crack2d_aniso_hist_false.i
- modules/combined/test/tests/phase_field_fracture/void2d_iso.i
- modules/combined/test/tests/phase_field_fracture/crack2d_vol_dev.i
- modules/combined/test/tests/phase_field_fracture/crack2d_linear_fracture_energy.i
- modules/combined/test/tests/phase_field_fracture/crack2d_iso.i
- modules/combined/test/tests/phase_field_fracture/crack2d_aniso.i
References
- Christian Miehe, Lisa-Marie Schรคnzel, and Heike Ulmer.
Phase field modeling of fracture in multi-physics problems. part i. balance of crack surface and failure criteria for brittle crack propagation in thermo-elastic solids.
Computer Methods in Applied Mechanics and Engineering, 294:449 – 485, 2015.
URL: http://www.sciencedirect.com/science/article/pii/S0045782514004423, doi:https://doi.org/10.1016/j.cma.2014.11.016.[BibTeX]
- Jian-Ying Wu.
A unified phase-field theory for the mechanics of damage and quasi-brittle failure.
Journal of the Mechanics and Physics of Solids, 103:72 – 99, 2017.
URL: http://www.sciencedirect.com/science/article/pii/S0022509616308341, doi:https://doi.org/10.1016/j.jmps.2017.03.015.[BibTeX]