https://mooseframework.inl.gov
AdvectionSUPG.C
Go to the documentation of this file.
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 "AdvectionSUPG.h"
11 #include "Function.h"
12 
13 registerMooseObject("NavierStokesTestApp", AdvectionSUPG);
14 
17 {
19 
20  params.addClassDescription("This class solves the scalar advection equation, "
21  "$\\vec{a}\\cdot\\nabla u = f$ with SUPG stabilization.");
22  params.addParam<FunctionName>("forcing_func", 0, "The forcing function, typically used for MMS.");
23  MooseEnum tau_type("opt mod");
25  "tau_type", tau_type, "The type of stabilization parameter to use.");
26  return params;
27 }
28 
30  : INSBase(parameters),
31  _ffn(getFunction("forcing_func")),
32  _tau_type(getParam<MooseEnum>("tau_type"))
33 {
34 }
35 
36 Real
38 {
39  Real tau_val = (_tau_type == "opt" ? tauNodal() : tau());
41  return (_test[_i][_qp] + tau_val * (U * _grad_test[_i][_qp])) *
42  (U * _grad_u[_qp] - _ffn.value(_t, _q_point[_qp]));
43 }
44 
45 Real
47 {
48  Real tau_val = (_tau_type == "opt" ? tauNodal() : tau());
50  return (_test[_i][_qp] + tau_val * (U * _grad_test[_i][_qp])) * (U * _grad_phi[_j][_qp]);
51 }
registerMooseObject("NavierStokesTestApp", AdvectionSUPG)
const VariableGradient & _grad_u
const Function & _ffn
Definition: AdvectionSUPG.h:33
virtual Real tau()
Definition: INSBase.C:321
virtual Real tauNodal()
Provides tau which yields superconvergence for 1D advection-diffusion.
Definition: INSBase.C:332
This class computes strong and weak components of the INS governing equations.
Definition: INSBase.h:18
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
const VariableValue & _u_vel
Definition: INSBase.h:93
static InputParameters validParams()
Definition: AdvectionSUPG.C:16
static InputParameters validParams()
Definition: INSBase.C:15
const VariablePhiGradient & _grad_phi
const VariableValue & _w_vel
Definition: INSBase.h:95
void addRequiredParam(const std::string &name, const std::string &doc_string)
const VariableTestValue & _test
virtual Real computeQpJacobian()
Definition: AdvectionSUPG.C:46
Real & _t
MooseEnum _tau_type
Definition: AdvectionSUPG.h:34
unsigned int _i
AdvectionSUPG(const InputParameters &parameters)
Definition: AdvectionSUPG.C:29
unsigned int _j
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const VariableTestGradient & _grad_test
virtual Real computeQpResidual()
Definition: AdvectionSUPG.C:37
void addClassDescription(const std::string &doc_string)
const VariableValue & _v_vel
Definition: INSBase.h:94
virtual Real value(Real t, const Point &p) const
This class is responsible for solving the scalar advection equation, possibly with a forcing function...
Definition: AdvectionSUPG.h:20
const MooseArray< Point > & _q_point
unsigned int _qp