www.mooseframework.org
PrimaryConvection.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 "PrimaryConvection.h"
11 
12 registerMooseObject("ChemicalReactionsApp", PrimaryConvection);
13 
14 template <>
15 InputParameters
17 {
18  InputParameters params = validParams<Kernel>();
19  params.addRequiredCoupledVar("p", "Pressure");
20  RealVectorValue g(0, 0, 0);
21  params.addParam<RealVectorValue>("gravity", g, "Gravity vector (default is (0, 0, 0))");
22  params.addClassDescription("Convection of primary species");
23  return params;
24 }
25 
26 PrimaryConvection::PrimaryConvection(const InputParameters & parameters)
27  : DerivativeMaterialInterface<Kernel>(parameters),
28  _cond(getMaterialProperty<Real>("conductivity")),
29  _gravity(getParam<RealVectorValue>("gravity")),
30  _density(getDefaultMaterialProperty<Real>("density")),
31  _grad_p(coupledGradient("p")),
32  _pvar(coupled("p"))
33 
34 {
35 }
36 
37 Real
39 {
40  RealVectorValue darcy_vel = -_cond[_qp] * (_grad_p[_qp] - _density[_qp] * _gravity);
41 
42  return _test[_i][_qp] * (darcy_vel * _grad_u[_qp]);
43 }
44 
45 Real
47 {
48  RealVectorValue darcy_vel = -_cond[_qp] * (_grad_p[_qp] - _density[_qp] * _gravity);
49 
50  return _test[_i][_qp] * (darcy_vel * _grad_phi[_j][_qp]);
51 }
52 
53 Real
55 {
56  if (jvar == _pvar)
57  {
58  RealVectorValue ddarcy_vel_dp = -_cond[_qp] * _grad_phi[_j][_qp];
59  return _test[_i][_qp] * (ddarcy_vel_dp * _grad_u[_qp]);
60  }
61  else
62  return 0.0;
63 }
PrimaryConvection::_density
const MaterialProperty< Real > & _density
Fluid density.
Definition: PrimaryConvection.h:41
PrimaryConvection
Define the Kernel for a PrimaryConvection operator that looks like: cond * grad_pressure * grad_u.
Definition: PrimaryConvection.h:24
PrimaryConvection.h
validParams< PrimaryConvection >
InputParameters validParams< PrimaryConvection >()
Definition: PrimaryConvection.C:16
PrimaryConvection::PrimaryConvection
PrimaryConvection(const InputParameters &parameters)
Definition: PrimaryConvection.C:26
PrimaryConvection::_grad_p
const VariableGradient & _grad_p
Pressure gradient.
Definition: PrimaryConvection.h:44
PrimaryConvection::_gravity
const RealVectorValue _gravity
Gravity.
Definition: PrimaryConvection.h:38
PrimaryConvection::computeQpJacobian
virtual Real computeQpJacobian() override
Definition: PrimaryConvection.C:46
PrimaryConvection::computeQpResidual
virtual Real computeQpResidual() override
Definition: PrimaryConvection.C:38
PrimaryConvection::computeQpOffDiagJacobian
virtual Real computeQpOffDiagJacobian(unsigned int jvar) override
Definition: PrimaryConvection.C:54
PrimaryConvection::_cond
const MaterialProperty< Real > & _cond
Hydraulic conductivity.
Definition: PrimaryConvection.h:35
registerMooseObject
registerMooseObject("ChemicalReactionsApp", PrimaryConvection)
PrimaryConvection::_pvar
const unsigned int _pvar
Pressure variable number.
Definition: PrimaryConvection.h:47