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 "PINSFEFluidPressureTimeDerivative.h" 11 : 12 : registerMooseObject("NavierStokesApp", PINSFEFluidPressureTimeDerivative); 13 : registerMooseObjectRenamed("NavierStokesApp", 14 : PMFluidPressureTimeDerivative, 15 : "02/01/2024 00:00", 16 : PINSFEFluidPressureTimeDerivative); 17 : 18 : InputParameters 19 114 : PINSFEFluidPressureTimeDerivative::validParams() 20 : { 21 114 : InputParameters params = TimeKernel::validParams(); 22 114 : params.addClassDescription( 23 : "Adds the transient term of the porous-media mass conservation equation"); 24 228 : params.addRequiredCoupledVar("temperature", "coupled temperature"); 25 228 : params.addRequiredCoupledVar("porosity", "porosity"); 26 228 : params.addRequiredParam<UserObjectName>("eos", "The name of equation of state object to use."); 27 : 28 114 : return params; 29 0 : } 30 : 31 60 : PINSFEFluidPressureTimeDerivative::PINSFEFluidPressureTimeDerivative( 32 60 : const InputParameters & parameters) 33 : : TimeKernel(parameters), 34 60 : _temperature(coupledValue("temperature")), 35 60 : _temperature_dot(coupledDot("temperature")), 36 60 : _d_temperaturedot_du(coupledDotDu("temperature")), 37 60 : _temperature_var_number(coupled("temperature")), 38 60 : _porosity(coupledValue("porosity")), 39 120 : _eos(getUserObject<SinglePhaseFluidProperties>("eos")) 40 : { 41 60 : } 42 : 43 : Real 44 39047680 : PINSFEFluidPressureTimeDerivative::computeQpResidual() 45 : { 46 : Real rho, drho_dp, drho_dT; 47 39047680 : _eos.rho_from_p_T(_u[_qp], _temperature[_qp], rho, drho_dp, drho_dT); 48 39047680 : return _porosity[_qp] * (drho_dT * _temperature_dot[_qp] + drho_dp * _u_dot[_qp]) * 49 39047680 : _test[_i][_qp]; 50 : } 51 : 52 : Real 53 4328960 : PINSFEFluidPressureTimeDerivative::computeQpJacobian() 54 : { 55 : Real rho, drho_dp, drho_dT; 56 4328960 : _eos.rho_from_p_T(_u[_qp], _temperature[_qp], rho, drho_dp, drho_dT); 57 4328960 : return _porosity[_qp] * drho_dp * _du_dot_du[_qp] * _phi[_j][_qp] * _test[_i][_qp]; 58 : } 59 : 60 : Real 61 10352640 : PINSFEFluidPressureTimeDerivative::computeQpOffDiagJacobian(unsigned int jvar) 62 : { 63 10352640 : if (jvar == _temperature_var_number) 64 : { 65 : Real rho, drho_dp, drho_dT; 66 1694720 : _eos.rho_from_p_T(_u[_qp], _temperature[_qp], rho, drho_dp, drho_dT); 67 1694720 : return _porosity[_qp] * drho_dT * _d_temperaturedot_du[_qp] * _phi[_j][_qp] * _test[_i][_qp]; 68 : } 69 : else 70 : return 0; 71 : }