www.mooseframework.org
PorousFlowHeatMassTransfer.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 
11 
12 #include "MooseVariable.h"
13 
15 
16 template <>
17 InputParameters
19 {
20  InputParameters params = validParams<Kernel>();
21 
22  params.addClassDescription(
23  "Calculate heat or mass transfer from a coupled variable v to the variable u. "
24  "No mass lumping is performed here.");
25  params.addRequiredCoupledVar(
26  "v", "The variable which is tranfsered to u using a transfer coefficient");
27  params.addCoupledVar("transfer_coefficient",
28  1.0,
29  "Transfer coefficient for heat or mass transferred between variables");
30 
31  return params;
32 }
33 
34 PorousFlowHeatMassTransfer::PorousFlowHeatMassTransfer(const InputParameters & parameters)
35  : Kernel(parameters),
36  _v_var(coupled("v")),
37  _v(coupledValue("v")),
38  _coef_var(coupledValue("transfer_coefficient"))
39 {
40 }
41 
42 Real
44 {
45  return _coef_var[_qp] * (_u[_qp] - _v[_qp]) * _test[_i][_qp];
46 }
47 
48 Real
50 {
51  return jac(_var.number());
52 }
53 
54 Real
56 {
57  return jac(jvar);
58 }
59 
60 Real
61 PorousFlowHeatMassTransfer::jac(unsigned int jvar) const
62 {
63  if (jvar == _var.number())
64  return _coef_var[_qp] * _phi[_j][_qp] * _test[_i][_qp];
65  else if (jvar == _v_var)
66  return -_coef_var[_qp] * _phi[_j][_qp] * _test[_i][_qp];
67  return 0.0;
68 }
registerMooseObject
registerMooseObject("PorousFlowApp", PorousFlowHeatMassTransfer)
PorousFlowHeatMassTransfer::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition: PorousFlowHeatMassTransfer.C:55
PorousFlowHeatMassTransfer::_v
const VariableValue & _v
Definition: PorousFlowHeatMassTransfer.h:41
PorousFlowHeatMassTransfer::_coef_var
const VariableValue & _coef_var
Definition: PorousFlowHeatMassTransfer.h:42
PorousFlowHeatMassTransfer
Calculate heat or mass transfer from a coupled variable to u.
Definition: PorousFlowHeatMassTransfer.h:28
PorousFlowHeatMassTransfer::PorousFlowHeatMassTransfer
PorousFlowHeatMassTransfer(const InputParameters &parameters)
Definition: PorousFlowHeatMassTransfer.C:34
PorousFlowHeatMassTransfer.h
PorousFlowHeatMassTransfer::jac
virtual Real jac(unsigned int jvar) const
Definition: PorousFlowHeatMassTransfer.C:61
PorousFlowHeatMassTransfer::_v_var
const unsigned int _v_var
Definition: PorousFlowHeatMassTransfer.h:40
PorousFlowHeatMassTransfer::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: PorousFlowHeatMassTransfer.C:49
PorousFlowHeatMassTransfer::computeQpResidual
virtual Real computeQpResidual() override
Definition: PorousFlowHeatMassTransfer.C:43
validParams< PorousFlowHeatMassTransfer >
InputParameters validParams< PorousFlowHeatMassTransfer >()
Definition: PorousFlowHeatMassTransfer.C:18