www.mooseframework.org
INSTemperature.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 "INSTemperature.h"
11 #include "MooseMesh.h"
12 
13 registerMooseObject("NavierStokesApp", INSTemperature);
14 
15 template <>
16 InputParameters
18 {
19  InputParameters params = validParams<Kernel>();
20 
21  params.addClassDescription("This class computes the residual and Jacobian contributions for the "
22  "incompressible Navier-Stokes temperature (energy) equation.");
23  // Coupled variables
24  params.addRequiredCoupledVar("u", "x-velocity");
25  params.addCoupledVar("v", "y-velocity"); // only required in 2D and 3D
26  params.addCoupledVar("w", "z-velocity"); // only required in 3D
27 
28  // Optional parameters
29  params.addParam<MaterialPropertyName>("rho_name", "rho", "density name");
30  params.addParam<MaterialPropertyName>("k_name", "k", "thermal conductivity name");
31  params.addParam<MaterialPropertyName>("cp_name", "cp", "specific heat name");
32 
33  return params;
34 }
35 
36 INSTemperature::INSTemperature(const InputParameters & parameters)
37  : Kernel(parameters),
38 
39  // Coupled variables
40  _u_vel(coupledValue("u")),
41  _v_vel(_mesh.dimension() >= 2 ? coupledValue("v") : _zero),
42  _w_vel(_mesh.dimension() == 3 ? coupledValue("w") : _zero),
43 
44  // Variable numberings
45  _u_vel_var_number(coupled("u")),
46  _v_vel_var_number(_mesh.dimension() >= 2 ? coupled("v") : libMesh::invalid_uint),
47  _w_vel_var_number(_mesh.dimension() == 3 ? coupled("w") : libMesh::invalid_uint),
48 
49  // Material Properties
50  _rho(getMaterialProperty<Real>("rho_name")),
51  _k(getMaterialProperty<Real>("k_name")),
52  _cp(getMaterialProperty<Real>("cp_name"))
53 {
54 }
55 
56 Real
58 {
59  // The convection part, rho * cp u.grad(T) * v.
60  // Note: _u is the temperature variable, _grad_u is its gradient.
61  Real convective_part = _rho[_qp] * _cp[_qp] *
62  (_u_vel[_qp] * _grad_u[_qp](0) + _v_vel[_qp] * _grad_u[_qp](1) +
63  _w_vel[_qp] * _grad_u[_qp](2)) *
64  _test[_i][_qp];
65 
66  // Thermal conduction part, k * grad(T) * grad(v)
67  Real conduction_part = _k[_qp] * _grad_u[_qp] * _grad_test[_i][_qp];
68 
69  return convective_part + conduction_part;
70 }
71 
72 Real
74 {
75  RealVectorValue U(_u_vel[_qp], _v_vel[_qp], _w_vel[_qp]);
76 
77  Real convective_part = _rho[_qp] * _cp[_qp] * (U * _grad_phi[_j][_qp]) * _test[_i][_qp];
78  Real conduction_part = _k[_qp] * (_grad_phi[_j][_qp] * _grad_test[_i][_qp]);
79 
80  return convective_part + conduction_part;
81 }
82 
83 Real
85 {
86  if (jvar == _u_vel_var_number)
87  {
88  Real convective_part = _rho[_qp] * _cp[_qp] * _phi[_j][_qp] * _grad_u[_qp](0) * _test[_i][_qp];
89  return convective_part;
90  }
91 
92  else if (jvar == _v_vel_var_number)
93  {
94  Real convective_part = _rho[_qp] * _cp[_qp] * _phi[_j][_qp] * _grad_u[_qp](1) * _test[_i][_qp];
95  return convective_part;
96  }
97 
98  else if (jvar == _w_vel_var_number)
99  {
100  Real convective_part = _rho[_qp] * _cp[_qp] * _phi[_j][_qp] * _grad_u[_qp](2) * _test[_i][_qp];
101  return convective_part;
102  }
103  else
104  return 0;
105 }
INSTemperature::_v_vel_var_number
unsigned _v_vel_var_number
Definition: INSTemperature.h:43
INSTemperature::computeQpJacobian
virtual Real computeQpJacobian()
Definition: INSTemperature.C:73
libMesh
Definition: RANFSNormalMechanicalContact.h:24
INSTemperature::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned jvar)
Definition: INSTemperature.C:84
INSTemperature::_k
const MaterialProperty< Real > & _k
Definition: INSTemperature.h:48
registerMooseObject
registerMooseObject("NavierStokesApp", INSTemperature)
INSTemperature
This class computes the residual and Jacobian contributions for the incompressible Navier-Stokes temp...
Definition: INSTemperature.h:24
INSTemperature::_v_vel
const VariableValue & _v_vel
Definition: INSTemperature.h:38
INSTemperature.h
INSTemperature::_cp
const MaterialProperty< Real > & _cp
Definition: INSTemperature.h:49
INSTemperature::_u_vel
const VariableValue & _u_vel
Definition: INSTemperature.h:37
INSTemperature::_w_vel_var_number
unsigned _w_vel_var_number
Definition: INSTemperature.h:44
validParams< INSTemperature >
InputParameters validParams< INSTemperature >()
Definition: INSTemperature.C:17
INSTemperature::_rho
const MaterialProperty< Real > & _rho
Definition: INSTemperature.h:47
INSTemperature::_w_vel
const VariableValue & _w_vel
Definition: INSTemperature.h:39
INSTemperature::INSTemperature
INSTemperature(const InputParameters &parameters)
Definition: INSTemperature.C:36
INSTemperature::computeQpResidual
virtual Real computeQpResidual()
Definition: INSTemperature.C:57
INSTemperature::_u_vel_var_number
unsigned _u_vel_var_number
Definition: INSTemperature.h:42