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 "NSMomentumInviscidSpecifiedPressureBC.h" 11 : 12 : registerMooseObject("NavierStokesApp", NSMomentumInviscidSpecifiedPressureBC); 13 : 14 : InputParameters 15 38 : NSMomentumInviscidSpecifiedPressureBC::validParams() 16 : { 17 38 : InputParameters params = NSMomentumInviscidBC::validParams(); 18 38 : params.addClassDescription("Momentum equation boundary condition in which pressure is specified " 19 : "(given) and the value of the convective part is allowed to vary (is " 20 : "computed implicitly)."); 21 38 : return params; 22 0 : } 23 : 24 20 : NSMomentumInviscidSpecifiedPressureBC::NSMomentumInviscidSpecifiedPressureBC( 25 20 : const InputParameters & parameters) 26 40 : : NSMomentumInviscidBC(parameters), _specified_pressure(getParam<Real>("specified_pressure")) 27 : { 28 20 : } 29 : 30 : Real 31 154112 : NSMomentumInviscidSpecifiedPressureBC::computeQpResidual() 32 : { 33 : // Velocity vector object 34 154112 : RealVectorValue vel(_u_vel[_qp], _v_vel[_qp], _w_vel[_qp]); 35 : 36 : // Velocity vector dotted with normal 37 154112 : Real u_dot_n = vel * _normals[_qp]; 38 : 39 : // The current value of the vector (rho*u)(u.n) 40 154112 : RealVectorValue rhou_udotn = u_dot_n * _rho[_qp] * vel; 41 : 42 154112 : return pressureQpResidualHelper(_specified_pressure) + 43 154112 : convectiveQpResidualHelper(rhou_udotn(_component)); 44 : } 45 : 46 : Real 47 93696 : NSMomentumInviscidSpecifiedPressureBC::computeQpJacobian() 48 : { 49 : // There is no Jacobian for the pressure term when the pressure is specified, 50 : // so all we have left is the convective part. The on-diagonal variable number 51 : // is _component+1 52 93696 : return convectiveQpJacobianHelper(_component + 1); 53 : } 54 : 55 : Real 56 281088 : NSMomentumInviscidSpecifiedPressureBC::computeQpOffDiagJacobian(unsigned jvar) 57 : { 58 281088 : if (isNSVariable(jvar)) 59 281088 : return convectiveQpJacobianHelper(mapVarNumber(jvar)); 60 : else 61 : return 0.0; 62 : }