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 : #include "CHBulkPFCTrad.h" 11 : 12 : registerMooseObject("PhaseFieldApp", CHBulkPFCTrad); 13 : 14 : InputParameters 15 39 : CHBulkPFCTrad::validParams() 16 : { 17 39 : InputParameters params = CHBulk<Real>::validParams(); 18 39 : params.addClassDescription( 19 : "Cahn-Hilliard kernel for a polynomial phase field crystal free energy."); 20 39 : return params; 21 0 : } 22 : 23 20 : CHBulkPFCTrad::CHBulkPFCTrad(const InputParameters & parameters) 24 : : CHBulk<Real>(parameters), 25 20 : _C0(getMaterialProperty<Real>("C0")), 26 40 : _a(getMaterialProperty<Real>("a")), 27 60 : _b(getMaterialProperty<Real>("b")) 28 : { 29 20 : } 30 : 31 : RealGradient 32 3759700 : CHBulkPFCTrad::computeGradDFDCons(PFFunctionType type) 33 : { 34 3759700 : Real d2fdc2 = 1.0 - _C0[_qp] - _a[_qp] * _u[_qp] + _b[_qp] * _u[_qp] * _u[_qp]; 35 : 36 3759700 : switch (type) 37 : { 38 2149300 : case Residual: 39 2149300 : return d2fdc2 * _grad_u[_qp]; 40 : 41 1610400 : case Jacobian: 42 : { 43 1610400 : Real d3fdc3 = -_a[_qp] + 2.0 * _b[_qp] * _u[_qp]; 44 1610400 : return d2fdc2 * _grad_phi[_j][_qp] + d3fdc3 * _grad_u[_qp] * _phi[_j][_qp]; 45 : } 46 : } 47 : 48 0 : mooseError("Invalid type passed in"); 49 : }