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 "LevelSetFluidMaterial.h" 11 : 12 : registerADMooseObject("MalamuteApp", LevelSetFluidMaterial); 13 : 14 : InputParameters 15 16 : LevelSetFluidMaterial::validParams() 16 : { 17 16 : InputParameters params = ADMaterial::validParams(); 18 16 : params.addClassDescription("Computes fluid properties in melt pool heat equations."); 19 32 : params.addRequiredParam<Real>("rho_g", "Gas density."); 20 32 : params.addRequiredParam<Real>("rho_s", "Solid density."); 21 32 : params.addRequiredParam<Real>("rho_l", "Liquid density."); 22 32 : params.addRequiredParam<Real>("mu_g", "Gas viscosity."); 23 32 : params.addRequiredParam<Real>("mu_l", "Liquid viscosity."); 24 32 : params.addRequiredParam<Real>("permeability_constant", "Permeability constant"); 25 16 : return params; 26 0 : } 27 : 28 12 : LevelSetFluidMaterial::LevelSetFluidMaterial(const InputParameters & parameters) 29 : : ADMaterial(parameters), 30 12 : _heaviside_function(getADMaterialProperty<Real>("heaviside_function")), 31 12 : _rho(declareADProperty<Real>("rho")), 32 12 : _mu(declareADProperty<Real>("mu")), 33 24 : _rho_g(getParam<Real>("rho_g")), 34 24 : _rho_l(getParam<Real>("rho_l")), 35 24 : _rho_s(getParam<Real>("rho_s")), 36 24 : _mu_g(getParam<Real>("mu_g")), 37 24 : _mu_l(getParam<Real>("mu_l")), 38 24 : _f_l(getADMaterialProperty<Real>("liquid_mass_fraction")), 39 24 : _f_s(getADMaterialProperty<Real>("solid_mass_fraction")), 40 24 : _g_l(getADMaterialProperty<Real>("liquid_volume_fraction")), 41 24 : _g_s(getADMaterialProperty<Real>("solid_volume_fraction")), 42 12 : _permeability(declareADProperty<Real>("permeability")), 43 36 : _K0(getParam<Real>("permeability_constant")) 44 : { 45 12 : } 46 : 47 : void 48 362800 : LevelSetFluidMaterial::computeQpProperties() 49 : { 50 725600 : ADReal rho_m = _g_s[_qp] * _rho_s + _g_l[_qp] * _rho_l; 51 1088400 : _rho[_qp] = (1 - _heaviside_function[_qp]) * rho_m + _heaviside_function[_qp] * _rho_g; 52 : 53 362800 : ADReal mu_m = _mu_l * rho_m / _rho_l; 54 1088400 : _mu[_qp] = (1 - _heaviside_function[_qp]) * mu_m + _heaviside_function[_qp] * _mu_g; 55 : 56 1088400 : ADReal f_l = _f_l[_qp] * (1 - _heaviside_function[_qp]); 57 : 58 1088400 : _permeability[_qp] = mu_m / _K0 * Utility::pow<2>(1 - f_l) / (Utility::pow<3>(f_l) + 1.0e-3); 59 362800 : }