Line data Source code
1 : /**********************************************************************/ 2 : /* DO NOT MODIFY THIS HEADER */ 3 : /* MAGPIE - Mesoscale Atomistic Glue Program for Integrated Execution */ 4 : /* */ 5 : /* Copyright 2017 Battelle Energy Alliance, LLC */ 6 : /* ALL RIGHTS RESERVED */ 7 : /**********************************************************************/ 8 : 9 : #include "PolarPFMBetaS0.h" 10 : 11 : registerMooseObject("MagpieApp", PolarPFMBetaS0); 12 : 13 : InputParameters 14 38 : PolarPFMBetaS0::validParams() 15 : { 16 38 : InputParameters params = DerivativeParsedMaterialHelper::validParams(); 17 38 : params.addClassDescription("Material property betaSO"); 18 76 : params.addRequiredCoupledVar("theta", "Theta order parameter"); 19 76 : params.addRequiredParam<Real>("a_beta", "Interpolation coefficient a_beta"); 20 76 : params.addRequiredParam<Real>("beta10", "Gradient energy coefficient between solid 1 and melt"); 21 76 : params.addRequiredParam<Real>("beta20", "Gradient energy coefficient between solid 2 and melt"); 22 38 : return params; 23 0 : } 24 : 25 30 : PolarPFMBetaS0::PolarPFMBetaS0(const InputParameters & parameters) 26 : : DerivativeParsedMaterialHelper(parameters), 27 30 : _theta("theta"), 28 60 : _a_beta(getParam<Real>("a_beta")), 29 60 : _beta10(getParam<Real>("beta10")), 30 90 : _beta20(getParam<Real>("beta20")) 31 : { 32 : // All equation numbers from Physical Review B 89, 184102 (2014) 33 : 34 : // interpolating function (8) 35 60 : EBTerm q = _a_beta * _theta * _theta - 2 * (_a_beta - 2) * _theta * _theta * _theta + 36 90 : (_a_beta - 3) * _theta * _theta * _theta * _theta; 37 : 38 : // solid-melt gradient energy coefficient (7) 39 30 : EBTerm betaS0 = _beta10 + (_beta20 - _beta10) * q; 40 : 41 30 : functionParse(betaS0); 42 30 : }