Line data Source code
1 : /****************************************************************************/ 2 : /* DO NOT MODIFY THIS HEADER */ 3 : /* */ 4 : /* MALAMUTE: MOOSE Application Library for Advanced Manufacturing UTilitiEs */ 5 : /* */ 6 : /* Copyright 2021 - 2024, Battelle Energy Alliance, LLC */ 7 : /* ALL RIGHTS RESERVED */ 8 : /****************************************************************************/ 9 : 10 : #include "MushyZoneMaterial.h" 11 : 12 : registerMooseObject("MalamuteApp", MushyZoneMaterial); 13 : 14 : InputParameters 15 20 : MushyZoneMaterial::validParams() 16 : { 17 20 : InputParameters params = ADMaterial::validParams(); 18 20 : params.addClassDescription("Computes material properties in the mushy zone."); 19 40 : params.addRequiredCoupledVar("temperature", "Temperature variable"); 20 40 : params.addRequiredParam<Real>("rho_s", "Solid density."); 21 40 : params.addRequiredParam<Real>("rho_l", "Liquid density."); 22 40 : params.addRequiredParam<Real>("solidus_temperature", "Solidus temperature."); 23 40 : params.addRequiredParam<Real>("liquidus_temperature", "Liquidus temperature."); 24 20 : return params; 25 0 : } 26 : 27 15 : MushyZoneMaterial::MushyZoneMaterial(const InputParameters & parameters) 28 : : ADMaterial(parameters), 29 15 : _temp(adCoupledValue("temperature")), 30 30 : _solidus_temperature(getParam<Real>("solidus_temperature")), 31 30 : _liquidus_temperature(getParam<Real>("liquidus_temperature")), 32 15 : _f_l(declareADProperty<Real>("liquid_mass_fraction")), 33 15 : _f_s(declareADProperty<Real>("solid_mass_fraction")), 34 15 : _g_l(declareADProperty<Real>("liquid_volume_fraction")), 35 15 : _g_s(declareADProperty<Real>("solid_volume_fraction")), 36 30 : _rho_s(getParam<Real>("rho_s")), 37 45 : _rho_l(getParam<Real>("rho_l")) 38 : { 39 15 : } 40 : 41 : void 42 490800 : MushyZoneMaterial::computeQpProperties() 43 : { 44 490800 : _f_l[_qp] = 1; 45 : 46 490800 : if (_temp[_qp] < _solidus_temperature) 47 490800 : _f_l[_qp] = 0; 48 0 : else if (_temp[_qp] >= _solidus_temperature && _temp[_qp] <= _liquidus_temperature) 49 : _f_l[_qp] = 50 0 : (_temp[_qp] - _solidus_temperature) / (_liquidus_temperature - _solidus_temperature); 51 : 52 981600 : _f_s[_qp] = 1.0 - _f_l[_qp]; 53 : 54 1963200 : _g_l[_qp] = _f_l[_qp] / _rho_l / ((1 - _f_l[_qp]) / _rho_s + _f_l[_qp] / _rho_l); 55 981600 : _g_s[_qp] = 1.0 - _g_l[_qp]; 56 490800 : }