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");
const ADTemplateVariableTestGradient< T > & _grad_test
void accumulateTaggedLocalResidual()
T & getUserObject(const std::string &name, unsigned int tid=0) const
std::vector< MooseVariableFEBase *> _save_in
const MooseArray< Real > & _JxW
unsigned int number() const
void set(const std::string &name, const T &value, SubdomainID sub_id)
Set the internal parameter name to value.
virtual const std::vector< dof_id_type > & dofIndices() const
This class computes the momentum equation residual and Jacobian contributions for the viscous term of...
const ADMaterialProperty< Real > & _mu
const ADTemplateVariableValue< T > & _u
const Moose::CoordinateSystemType & _coord_sys
virtual const std::set< SubdomainID > & blockIDs() const
const ADTemplateVariableTestValue< T > & _test
const unsigned int _rz_radial_coord
The radial coordinate index for RZ coordinate systems.
TensorValue< Real > RealTensorValue
std::vector< ADReal > _residuals
registerMooseObject("NavierStokesApp", INSADMomentumViscous)
libMesh::CompareTypes< T, T2 >::supertype dotProduct(const W< T > &a, const W2< T2 > &b)
const QBase *const & _qrule
FEProblemBase & _fe_problem
ADRealVectorValue qpAdditionalRZTerm()
Computes an additional contribution to the viscous term present of RZ coordinate systems (assumes axi...
const OutputTools< T >::VariableTestGradient & _regular_grad_test
const MooseArray< ADPoint > & _ad_q_point
virtual const OutputTools< T >::VariableValue & value()
const MooseArray< ADReal > & _ad_JxW
static InputParameters validParams()
void computeResidualsForJacobian() override
const MooseArray< Real > & _coord
const bool _use_displaced_mesh
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const ADTemplateVariableGradient< T > & _grad_u
INSADMomentumViscous(const InputParameters ¶meters)
DenseVector< Number > _local_re
const MooseEnum _form
Either traction or laplace.
ADRealTensorValue qpViscousTerm()
Computes the cartesian coordinate system viscous term.
void mooseError(Args &&... args) const
MooseVariableFE< T > & _var
ADReal computeQpResidual() override
void prepareVectorTag(Assembly &assembly, unsigned int ivar)
static InputParameters validParams()
Object for tracking what kernels have been added to an INSAD simulation.
void computeResidual() override
const MooseArray< ADReal > & _ad_coord