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 "WallFrictionFunctionMaterial.h" 11 : #include "Function.h" 12 : 13 : registerMooseObject("ThermalHydraulicsApp", WallFrictionFunctionMaterial); 14 : 15 : InputParameters 16 8 : WallFrictionFunctionMaterial::validParams() 17 : { 18 8 : InputParameters params = Material::validParams(); 19 8 : params.addClassDescription("Defines a Darcy friction factor equal to the value of the function " 20 : "at the local coordinates and time"); 21 16 : params.addRequiredParam<MaterialPropertyName>("f_D", "Darcy friction factor material property"); 22 : 23 16 : params.addRequiredParam<FunctionName>("function", "Darcy friction factor function"); 24 : 25 16 : params.addCoupledVar("beta", "Volume fraction equation variable: beta"); 26 16 : params.addRequiredCoupledVar("arhoA", "Mass equation variable: alpha*rho*A"); 27 16 : params.addRequiredCoupledVar("arhouA", "Momentum equation variable: alpha*rho*u*A"); 28 16 : params.addRequiredCoupledVar("arhoEA", "Energy equation variable: alpha*rho*E*A"); 29 : 30 8 : return params; 31 0 : } 32 : 33 6 : WallFrictionFunctionMaterial::WallFrictionFunctionMaterial(const InputParameters & parameters) 34 : : DerivativeMaterialInterfaceTHM<Material>(parameters), 35 : 36 6 : _function(getFunction("function")), 37 : 38 6 : _f_D_name(getParam<MaterialPropertyName>("f_D")), 39 6 : _f_D(declareProperty<Real>(_f_D_name)), 40 12 : _df_D_dbeta(isCoupled("beta") ? &declarePropertyDerivativeTHM<Real>(_f_D_name, "beta") 41 : : nullptr), 42 6 : _df_D_darhoA(declarePropertyDerivativeTHM<Real>(_f_D_name, "arhoA")), 43 6 : _df_D_darhouA(declarePropertyDerivativeTHM<Real>(_f_D_name, "arhouA")), 44 12 : _df_D_darhoEA(declarePropertyDerivativeTHM<Real>(_f_D_name, "arhoEA")) 45 : { 46 6 : } 47 : 48 : void 49 52 : WallFrictionFunctionMaterial::computeQpProperties() 50 : { 51 52 : _f_D[_qp] = _function.value(_t, _q_point[_qp]); 52 : 53 52 : _df_D_darhoA[_qp] = 0; 54 52 : _df_D_darhouA[_qp] = 0; 55 52 : _df_D_darhoEA[_qp] = 0; 56 104 : if (isCoupled("beta")) 57 52 : (*_df_D_dbeta)[_qp] = 0; 58 52 : }