Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : /// Considers cleavage plane anisotropy in the crack propagation 11 : 12 : #include "ACInterfaceChangedVariable.h" 13 : 14 : registerMooseObject("PhaseFieldApp", ACInterfaceChangedVariable); 15 : 16 : InputParameters 17 391 : ACInterfaceChangedVariable::validParams() 18 : { 19 391 : InputParameters params = ACInterface::validParams(); 20 391 : params.addClassDescription("Gradient energy Allen-Cahn Kernel using a change of variable"); 21 782 : params.addRequiredParam<MaterialPropertyName>( 22 : "order_parameter", "Order parameter material defnining the change of variable function"); 23 391 : return params; 24 0 : } 25 : 26 204 : ACInterfaceChangedVariable::ACInterfaceChangedVariable(const InputParameters & parameters) 27 : : ACInterface(parameters), 28 204 : _dopdu(getMaterialPropertyDerivative<Real>("order_parameter", _var.name())), 29 408 : _d2opdu2(getMaterialPropertyDerivative<Real>("order_parameter", _var.name(), _var.name())) 30 : { 31 204 : } 32 : 33 : void 34 204 : ACInterfaceChangedVariable::initialSetup() 35 : { 36 612 : validateCoupling<Real>("order_parameter"); 37 204 : } 38 : 39 : Real 40 125702400 : ACInterfaceChangedVariable::computeQpResidual() 41 : { 42 125702400 : return ACInterface::computeQpResidual() * _dopdu[_qp]; 43 : } 44 : 45 : Real 46 85414400 : ACInterfaceChangedVariable::computeQpJacobian() 47 : { 48 85414400 : return ACInterface::computeQpJacobian() * _dopdu[_qp] + 49 85414400 : ACInterface::computeQpResidual() * _d2opdu2[_qp] * _phi[_j][_qp]; 50 : }