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