https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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
13registerMooseObject("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
36Real
38{
39 Real tau_val = (_tau_type == "opt" ? tauNodal() : tau());
40 RealVectorValue U(_u_vel[_qp], _v_vel[_qp], _w_vel[_qp]);
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
45Real
47{
48 Real tau_val = (_tau_type == "opt" ? tauNodal() : tau());
49 RealVectorValue U(_u_vel[_qp], _v_vel[_qp], _w_vel[_qp]);
50 return (_test[_i][_qp] + tau_val * (U * _grad_test[_i][_qp])) * (U * _grad_phi[_j][_qp]);
51}
registerMooseObject("NavierStokesTestApp", AdvectionSUPG)
This class is responsible for solving the scalar advection equation, possibly with a forcing function...
MooseEnum _tau_type
const Function & _ffn
AdvectionSUPG(const InputParameters &parameters)
virtual Real computeQpJacobian()
static InputParameters validParams()
virtual Real computeQpResidual()
virtual Real value(Real t, const Point &p) const
This class computes strong and weak components of the INS governing equations.
Definition INSBase.h:19
const VariableValue & _w_vel
Definition INSBase.h:95
virtual Real tau()
Definition INSBase.C:321
static InputParameters validParams()
Definition INSBase.C:15
virtual Real tauNodal()
Provides tau which yields superconvergence for 1D advection-diffusion.
Definition INSBase.C:332
const VariableValue & _u_vel
Definition INSBase.h:93
const VariableValue & _v_vel
Definition INSBase.h:94
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addParam(const std::string &name, const std::initializer_list< typename T::value_type > &value, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
unsigned int _qp
const MooseArray< Point > & _q_point
unsigned int _j
unsigned int _i
const VariableGradient & _grad_u
const VariableTestValue & _test
const VariablePhiGradient & _grad_phi
const VariableTestGradient & _grad_test
Real & _t