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