www.mooseframework.org
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PFFracBulkRate 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 <PFFracBulkRate.h>

Inheritance diagram for PFFracBulkRate:
[legend]

Public Member Functions

 PFFracBulkRate (const InputParameters &parameters)
 

Protected Member Functions

virtual Real precomputeQpResidual ()
 
virtual Real precomputeQpJacobian ()
 
virtual Real computeQpOffDiagJacobian (unsigned int jvar)
 

Protected Attributes

const MaterialProperty< Real > & _gc_prop
 Critical energy release rate for fracture. More...
 
const MaterialProperty< Real > & _G0_pos
 Contribution of umdamaged strain energy to damage evolution. More...
 
const MaterialProperty< RankTwoTensor > * _dG0_pos_dstrain
 Variation of undamaged strain energy driving damage evolution with strain. More...
 
const VariableValue & _betaval
 Auxiliary variable: beta = Laplacian of c. More...
 
const unsigned int _beta_var
 
const unsigned int _ndisp
 Coupled displacement variables. More...
 
std::vector< unsigned int > _disp_var
 
std::string _base_name
 
Real _l
 Characteristic length, controls damage zone thickness. More...
 
Real _visco
 Viscosity parameter ( visco -> 0, rate independent ) More...
 

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 24 of file PFFracBulkRate.h.

Constructor & Destructor Documentation

PFFracBulkRate::PFFracBulkRate ( const InputParameters &  parameters)

Definition at line 39 of file PFFracBulkRate.C.

40  : KernelValue(parameters),
41  _gc_prop(getMaterialProperty<Real>("gc_prop_var")),
42  _G0_pos(getMaterialProperty<Real>("G0_var")),
43  _dG0_pos_dstrain(isParamValid("dG0_dstrain_var")
44  ? &getMaterialProperty<RankTwoTensor>("dG0_dstrain_var")
45  : NULL),
46  _betaval(coupledValue("beta")),
47  _beta_var(coupled("beta")),
48  _ndisp(coupledComponents("displacements")),
50  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
51  _l(getParam<Real>("l")),
52  _visco(getParam<Real>("visco"))
53 {
54  mooseDeprecated("Use 'SplitPFFractureBulkRate'. Parameter name changes: l->width, "
55  "visco->viscosity, gc_prop_var->gc, G0_var->G0, dG0_dstrain_var->dG0_dstrain");
56  for (unsigned int i = 0; i < _ndisp; ++i)
57  _disp_var[i] = coupled("displacements", i);
58 }
const unsigned int _beta_var
Real _visco
Viscosity parameter ( visco -> 0, rate independent )
const VariableValue & _betaval
Auxiliary variable: beta = Laplacian of c.
const MaterialProperty< Real > & _gc_prop
Critical energy release rate for fracture.
std::string _base_name
Real _l
Characteristic length, controls damage zone thickness.
const MaterialProperty< Real > & _G0_pos
Contribution of umdamaged strain energy to damage evolution.
std::vector< unsigned int > _disp_var
const unsigned int _ndisp
Coupled displacement variables.
const MaterialProperty< RankTwoTensor > * _dG0_pos_dstrain
Variation of undamaged strain energy driving damage evolution with strain.

Member Function Documentation

Real PFFracBulkRate::computeQpOffDiagJacobian ( unsigned int  jvar)
protectedvirtual

Definition at line 82 of file PFFracBulkRate.C.

83 {
84  unsigned int c_comp;
85  bool disp_flag = false;
86 
87  const Real c = _u[_qp];
88  const Real gc = _gc_prop[_qp];
89 
90  const Real x = _l * _betaval[_qp] + 2.0 * (1.0 - c) * (_G0_pos[_qp] / gc) - c / _l;
91 
92  const Real signx = MathUtils::sign(x);
93 
94  Real xfacbeta = -((signx + 1.0) / 2.0) / _visco * _l;
95  Real xfac = -((signx + 1.0) / 2.0) / _visco * 2.0 * (1.0 - c) / gc;
96 
97  // Contribution of auxiliary variable to off diag Jacobian of c
98  for (unsigned int k = 0; k < _ndisp; ++k)
99  {
100  if (jvar == _beta_var)
101  return xfacbeta * _phi[_j][_qp] * _test[_i][_qp];
102  else if (jvar == _disp_var[k])
103  {
104  c_comp = k;
105  disp_flag = true;
106  }
107  else
108  return 0.0;
109  }
110 
111  // Contribution of displacements to off diag Jacobian of c
112  if (disp_flag && _dG0_pos_dstrain != NULL)
113  {
114  Real val = 0.0;
115  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
116  val += ((*_dG0_pos_dstrain)[_qp](c_comp, i) + (*_dG0_pos_dstrain)[_qp](i, c_comp)) / 2.0 *
117  _grad_phi[_j][_qp](i);
118 
119  return xfac * val * _test[_i][_qp];
120  }
121 
122  return 0.0;
123 }
Real sign(Real x)
Definition: MathUtils.h:24
const unsigned int _beta_var
Real _visco
Viscosity parameter ( visco -> 0, rate independent )
const VariableValue & _betaval
Auxiliary variable: beta = Laplacian of c.
const MaterialProperty< Real > & _gc_prop
Critical energy release rate for fracture.
Real _l
Characteristic length, controls damage zone thickness.
const MaterialProperty< Real > & _G0_pos
Contribution of umdamaged strain energy to damage evolution.
std::vector< unsigned int > _disp_var
const unsigned int _ndisp
Coupled displacement variables.
const MaterialProperty< RankTwoTensor > * _dG0_pos_dstrain
Variation of undamaged strain energy driving damage evolution with strain.
Real PFFracBulkRate::precomputeQpJacobian ( )
protectedvirtual

Definition at line 71 of file PFFracBulkRate.C.

72 {
73  const Real gc = _gc_prop[_qp];
74  const Real c = _u[_qp];
75  const Real x = _l * _betaval[_qp] + 2.0 * (1.0 - c) * _G0_pos[_qp] / gc - c / _l;
76 
77  return (MathUtils::sign(x) + 1.0) / 2.0 * (2.0 * _G0_pos[_qp] / gc + 1.0 / _l) / _visco *
78  _phi[_j][_qp];
79 }
Real sign(Real x)
Definition: MathUtils.h:24
Real _visco
Viscosity parameter ( visco -> 0, rate independent )
const VariableValue & _betaval
Auxiliary variable: beta = Laplacian of c.
const MaterialProperty< Real > & _gc_prop
Critical energy release rate for fracture.
Real _l
Characteristic length, controls damage zone thickness.
const MaterialProperty< Real > & _G0_pos
Contribution of umdamaged strain energy to damage evolution.
Real PFFracBulkRate::precomputeQpResidual ( )
protectedvirtual

Definition at line 61 of file PFFracBulkRate.C.

62 {
63  const Real gc = _gc_prop[_qp];
64  const Real c = _u[_qp];
65  const Real x = _l * _betaval[_qp] + 2.0 * (1.0 - c) * _G0_pos[_qp] / gc - c / _l;
66 
67  return -((std::abs(x) + x) / 2.0) / _visco;
68 }
Real _visco
Viscosity parameter ( visco -> 0, rate independent )
const VariableValue & _betaval
Auxiliary variable: beta = Laplacian of c.
const MaterialProperty< Real > & _gc_prop
Critical energy release rate for fracture.
Real _l
Characteristic length, controls damage zone thickness.
const MaterialProperty< Real > & _G0_pos
Contribution of umdamaged strain energy to damage evolution.

Member Data Documentation

std::string PFFracBulkRate::_base_name
protected

Definition at line 50 of file PFFracBulkRate.h.

const unsigned int PFFracBulkRate::_beta_var
protected

Definition at line 45 of file PFFracBulkRate.h.

Referenced by computeQpOffDiagJacobian().

const VariableValue& PFFracBulkRate::_betaval
protected

Auxiliary variable: beta = Laplacian of c.

Definition at line 44 of file PFFracBulkRate.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), and precomputeQpResidual().

const MaterialProperty<RankTwoTensor>* PFFracBulkRate::_dG0_pos_dstrain
protected

Variation of undamaged strain energy driving damage evolution with strain.

Definition at line 41 of file PFFracBulkRate.h.

Referenced by computeQpOffDiagJacobian().

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

Definition at line 49 of file PFFracBulkRate.h.

Referenced by computeQpOffDiagJacobian(), and PFFracBulkRate().

const MaterialProperty<Real>& PFFracBulkRate::_G0_pos
protected

Contribution of umdamaged strain energy to damage evolution.

Definition at line 38 of file PFFracBulkRate.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), and precomputeQpResidual().

const MaterialProperty<Real>& PFFracBulkRate::_gc_prop
protected

Critical energy release rate for fracture.

Definition at line 35 of file PFFracBulkRate.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), and precomputeQpResidual().

Real PFFracBulkRate::_l
protected

Characteristic length, controls damage zone thickness.

Definition at line 53 of file PFFracBulkRate.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), and precomputeQpResidual().

const unsigned int PFFracBulkRate::_ndisp
protected

Coupled displacement variables.

Definition at line 48 of file PFFracBulkRate.h.

Referenced by computeQpOffDiagJacobian(), and PFFracBulkRate().

Real PFFracBulkRate::_visco
protected

Viscosity parameter ( visco -> 0, rate independent )

Definition at line 56 of file PFFracBulkRate.h.

Referenced by computeQpOffDiagJacobian(), precomputeQpJacobian(), and precomputeQpResidual().


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