15#include "metaphysicl/raw_type.h"
26 params.
addParam<MaterialPropertyName>(
27 "mu_name",
"mu",
"The name of the viscosity material property");
28 MooseEnum viscous_form(
"traction laplace",
"laplace");
31 "The form of the viscous term. Options are 'traction' or 'laplace'");
37 _mu(getADMaterialProperty<Real>(
"mu_name")),
38 _coord_sys(_assembly.coordSystem()),
39 _form(getParam<
MooseEnum>(
"viscous_form")),
40 _rz_radial_coord(_mesh.getAxisymmetricRadialCoord())
44 for (
const auto block_id :
blockIDs())
45 obj_tracker.
set(
"viscous_form",
_form, block_id);
51 if (
_form ==
"laplace")
66 if (
_form ==
"traction")
85 for (
_i = 0;
_i < n_test;
_i++)
93 for (
_i = 0;
_i < n_test;
_i++)
102 Threads::spin_mutex::scoped_lock lock(Threads::spin_mtx);
103 for (
unsigned int i = 0; i <
_save_in.size(); i++)
112 "How are the there are different number of test and grad_test objects?");
113 const auto n_test =
_test.size();
133 for (
_i = 0;
_i < n_test;
_i++)
150 for (
_i = 0;
_i < n_test;
_i++)
159 mooseError(
"computeQpResidual is not used in the INSADMomentumViscous class");
DualNumber< Real, DNDerivativeType, true > ADReal
registerMooseObject("NavierStokesApp", INSADMomentumViscous)
const MooseArray< ADPoint > & _ad_q_point
const ADTemplateVariableValue< T > & _u
const ADTemplateVariableTestValue< T > & _test
const ADTemplateVariableTestGradient< T > & _grad_test
static InputParameters validParams()
std::vector< ADReal > _residuals
MooseVariableFE< T > & _var
const OutputTools< T >::VariableTestGradient & _regular_grad_test
const MooseArray< ADReal > & _ad_JxW
virtual const std::vector< dof_id_type > & dofIndices() const
const ADTemplateVariableGradient< T > & _grad_u
const MooseArray< ADReal > & _ad_coord
virtual const std::set< SubdomainID > & blockIDs() const
T & getUserObject(const std::string &name, unsigned int tid=0) const
This class computes the momentum equation residual and Jacobian contributions for the viscous term of...
ADReal computeQpResidual() override
INSADMomentumViscous(const InputParameters ¶meters)
ADRealVectorValue qpAdditionalRZTerm()
Computes an additional contribution to the viscous term present of RZ coordinate systems (assumes axi...
ADRealTensorValue qpViscousTerm()
Computes the cartesian coordinate system viscous term.
const unsigned int _rz_radial_coord
The radial coordinate index for RZ coordinate systems.
void computeResidual() override
void computeResidualsForJacobian() override
static InputParameters validParams()
const ADMaterialProperty< Real > & _mu
const Moose::CoordinateSystemType & _coord_sys
const MooseEnum _form
Either traction or laplace.
Object for tracking what kernels have been added to an INSAD simulation.
void set(const std::string &name, const T &value, SubdomainID sub_id)
Set the internal parameter name to value.
std::vector< MooseVariableFEBase * > _save_in
const bool _use_displaced_mesh
const MooseArray< Real > & _coord
const MooseArray< Real > & _JxW
const QBase *const & _qrule
void mooseError(Args &&... args) const
unsigned int number() const
virtual const OutputTools< T >::VariableValue & value()
FEProblemBase & _fe_problem
void accumulateTaggedLocalResidual()
void prepareVectorTag(Assembly &assembly, unsigned int ivar)
DenseVector< Number > _local_re
libMesh::CompareTypes< T, T2 >::supertype dotProduct(const W< T > &a, const W2< T2 > &b)