www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AllenCahnPFFracture Class Reference

Phase field based fracture model This kernel computes the residual and jacobian for bulk free energy contribution to c Refer to Formulation: Miehe et. More...

#include <AllenCahnPFFracture.h>

Inheritance diagram for AllenCahnPFFracture:
[legend]

Public Member Functions

 AllenCahnPFFracture (const InputParameters &parameters)
 

Protected Member Functions

virtual Real computeQpResidual () override
 
virtual Real computeQpJacobian () override
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar) override
 

Protected Attributes

const MaterialProperty< Real > & _gc_prop
 Critical energy release rate for fracture. More...
 
const MaterialProperty< Real > & _l
 Characteristic length, controls damage zone thickness. More...
 
const MaterialProperty< Real > & _visco
 Viscosity parameter ( visco -> 0, rate independent ) More...
 
const VariableValue & _beta
 Coupled variable that is the laplacian of c. More...
 
const unsigned int _beta_var
 
const unsigned int _ndisp
 Displacement variables used for off-diagonal Jacobian. More...
 
std::vector< unsigned int > _disp_var
 
const MaterialProperty< Real > & _dFdc
 Free energy material properties and derivatives. More...
 
const MaterialProperty< Real > & _d2Fdc2
 
const MaterialProperty< RankTwoTensor > & _d2Fdcdstrain
 

Detailed Description

Phase field based fracture model This kernel computes the residual and jacobian for bulk free energy contribution to c Refer to Formulation: Miehe et.

al., Int. J. Num. Methods Engg., 2010, 83. 1273-1311 Equation 63

Definition at line 26 of file AllenCahnPFFracture.h.

Constructor & Destructor Documentation

AllenCahnPFFracture::AllenCahnPFFracture ( const InputParameters &  parameters)

Definition at line 30 of file AllenCahnPFFracture.C.

31  : DerivativeMaterialInterface<JvarMapKernelInterface<Kernel>>(parameters),
32  _gc_prop(getMaterialProperty<Real>("gc")),
33  _beta(coupledValue("beta")),
34  _beta_var(coupled("beta")),
35  _ndisp(coupledComponents("displacements")),
37  _l(getMaterialProperty<Real>("l_name")),
38  _visco(getMaterialProperty<Real>("visco_name")),
39  _dFdc(getMaterialPropertyDerivative<Real>("F_name", _var.name())),
40  _d2Fdc2(getMaterialPropertyDerivative<Real>("F_name", _var.name(), _var.name())),
41  _d2Fdcdstrain(getMaterialProperty<RankTwoTensor>("d2Fdcdstrain"))
42 {
43  for (unsigned int i = 0; i < _ndisp; ++i)
44  _disp_var[i] = coupled("displacements", i);
45 }
const MaterialProperty< Real > & _visco
Viscosity parameter ( visco -> 0, rate independent )
const MaterialProperty< Real > & _dFdc
Free energy material properties and derivatives.
const MaterialProperty< RankTwoTensor > & _d2Fdcdstrain
const unsigned int _beta_var
const MaterialProperty< Real > & _l
Characteristic length, controls damage zone thickness.
const unsigned int _ndisp
Displacement variables used for off-diagonal Jacobian.
const VariableValue & _beta
Coupled variable that is the laplacian of c.
std::vector< unsigned int > _disp_var
const MaterialProperty< Real > & _d2Fdc2
const MaterialProperty< Real > & _gc_prop
Critical energy release rate for fracture.

Member Function Documentation

Real AllenCahnPFFracture::computeQpJacobian ( )
overrideprotectedvirtual

Definition at line 56 of file AllenCahnPFFracture.C.

57 {
58  const Real x =
59  (_l[_qp] * _beta[_qp] - _dFdc[_qp] / _gc_prop[_qp] - _u[_qp] / _l[_qp]) * _test[_i][_qp];
60  const Real dx = (_d2Fdc2[_qp] - 1.0 / _l[_qp]) * _phi[_j][_qp] * _test[_i][_qp];
61  return -(MathUtils::sign(x) + 1.0) / 2.0 * dx / _visco[_qp];
62 }
const MaterialProperty< Real > & _visco
Viscosity parameter ( visco -> 0, rate independent )
Real sign(Real x)
Definition: MathUtils.h:24
const MaterialProperty< Real > & _dFdc
Free energy material properties and derivatives.
const MaterialProperty< Real > & _l
Characteristic length, controls damage zone thickness.
const VariableValue & _beta
Coupled variable that is the laplacian of c.
const MaterialProperty< Real > & _d2Fdc2
const MaterialProperty< Real > & _gc_prop
Critical energy release rate for fracture.
Real AllenCahnPFFracture::computeQpOffDiagJacobian ( unsigned int  jvar)
overrideprotectedvirtual

Definition at line 65 of file AllenCahnPFFracture.C.

66 {
67  const Real x =
68  (_l[_qp] * _beta[_qp] - _dFdc[_qp] / _gc_prop[_qp] - _u[_qp] / _l[_qp]) * _test[_i][_qp];
69 
70  if (jvar == _beta_var)
71  return -(MathUtils::sign(x) + 1.0) / 2.0 / _visco[_qp] * _l[_qp] * _phi[_j][_qp] *
72  _test[_i][_qp];
73  else
74  for (unsigned int c_comp = 0; c_comp < _ndisp; ++c_comp)
75  if (jvar == _disp_var[c_comp])
76  {
77  const Real dxddFdc = -1.0 / _gc_prop[_qp] * _test[_i][_qp];
78  const Real d2Fdcdstrain_comp =
79  (_d2Fdcdstrain[_qp].column(c_comp) + _d2Fdcdstrain[_qp].row(c_comp)) / 2.0 *
80  _grad_phi[_j][_qp];
81  return -(MathUtils::sign(x) + 1.0) / 2.0 / _visco[_qp] * dxddFdc * d2Fdcdstrain_comp;
82  }
83 
84  return 0.0;
85 }
const MaterialProperty< Real > & _visco
Viscosity parameter ( visco -> 0, rate independent )
Real sign(Real x)
Definition: MathUtils.h:24
const MaterialProperty< Real > & _dFdc
Free energy material properties and derivatives.
const MaterialProperty< RankTwoTensor > & _d2Fdcdstrain
const unsigned int _beta_var
const MaterialProperty< Real > & _l
Characteristic length, controls damage zone thickness.
const unsigned int _ndisp
Displacement variables used for off-diagonal Jacobian.
const VariableValue & _beta
Coupled variable that is the laplacian of c.
std::vector< unsigned int > _disp_var
const MaterialProperty< Real > & _gc_prop
Critical energy release rate for fracture.
Real AllenCahnPFFracture::computeQpResidual ( )
overrideprotectedvirtual

Definition at line 48 of file AllenCahnPFFracture.C.

49 {
50  const Real x =
51  (_l[_qp] * _beta[_qp] - _dFdc[_qp] / _gc_prop[_qp] - _u[_qp] / _l[_qp]) * _test[_i][_qp];
52  return -(std::abs(x) + x) / 2.0 / _visco[_qp];
53 }
const MaterialProperty< Real > & _visco
Viscosity parameter ( visco -> 0, rate independent )
const MaterialProperty< Real > & _dFdc
Free energy material properties and derivatives.
const MaterialProperty< Real > & _l
Characteristic length, controls damage zone thickness.
const VariableValue & _beta
Coupled variable that is the laplacian of c.
const MaterialProperty< Real > & _gc_prop
Critical energy release rate for fracture.

Member Data Documentation

const VariableValue& AllenCahnPFFracture::_beta
protected

Coupled variable that is the laplacian of c.

Definition at line 40 of file AllenCahnPFFracture.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

const unsigned int AllenCahnPFFracture::_beta_var
protected

Definition at line 41 of file AllenCahnPFFracture.h.

Referenced by computeQpOffDiagJacobian().

const MaterialProperty<Real>& AllenCahnPFFracture::_d2Fdc2
protected

Definition at line 57 of file AllenCahnPFFracture.h.

Referenced by computeQpJacobian().

const MaterialProperty<RankTwoTensor>& AllenCahnPFFracture::_d2Fdcdstrain
protected

Definition at line 58 of file AllenCahnPFFracture.h.

Referenced by computeQpOffDiagJacobian().

const MaterialProperty<Real>& AllenCahnPFFracture::_dFdc
protected

Free energy material properties and derivatives.

Definition at line 56 of file AllenCahnPFFracture.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

std::vector<unsigned int> AllenCahnPFFracture::_disp_var
protected

Definition at line 46 of file AllenCahnPFFracture.h.

Referenced by AllenCahnPFFracture(), and computeQpOffDiagJacobian().

const MaterialProperty<Real>& AllenCahnPFFracture::_gc_prop
protected

Critical energy release rate for fracture.

Definition at line 37 of file AllenCahnPFFracture.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

const MaterialProperty<Real>& AllenCahnPFFracture::_l
protected

Characteristic length, controls damage zone thickness.

Definition at line 50 of file AllenCahnPFFracture.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().

const unsigned int AllenCahnPFFracture::_ndisp
protected

Displacement variables used for off-diagonal Jacobian.

Definition at line 45 of file AllenCahnPFFracture.h.

Referenced by AllenCahnPFFracture(), and computeQpOffDiagJacobian().

const MaterialProperty<Real>& AllenCahnPFFracture::_visco
protected

Viscosity parameter ( visco -> 0, rate independent )

Definition at line 53 of file AllenCahnPFFracture.h.

Referenced by computeQpJacobian(), computeQpOffDiagJacobian(), and computeQpResidual().


The documentation for this class was generated from the following files: