https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
LinearFVTKESourceSink Class Reference

Kernel that adds contributions to the source and the sink of the turbulent kinetic energy discretized using the finite volume method to a linear system. More...

#include <LinearFVTKESourceSink.h>

Inheritance diagram for LinearFVTKESourceSink:
[legend]

Public Types

enum  ResidualTagType
 
typedef DataFileName DataFileParameterType
 

Public Member Functions

 LinearFVTKESourceSink (const InputParameters &params)
 Class constructor.
 
virtual void initialSetup () override
 
virtual Real computeMatrixContribution () override
 
virtual Real computeRightHandSideContribution () override
 
virtual void addMatrixContribution () override
 
virtual void addRightHandSideContribution () override
 
virtual void setCurrentElemInfo (const ElemInfo *elem_info)
 
void setCurrentElemVolume (const Real volume)
 
virtual const MooseLinearVariableFV< Real > & variable () const override
 
void linkTaggedVectorsAndMatrices (const std::set< TagID > &vector_tags, const std::set< TagID > &matrix_tags)
 
virtual bool enabled () const
 
std::shared_ptr< MooseObjectgetSharedPtr ()
 
std::shared_ptr< const MooseObjectgetSharedPtr () const
 
bool isKokkosObject () const
 
MooseAppgetMooseApp () const
 
const std::string & type () const
 
const std::string & name () const
 
std::string typeAndName () const
 
MooseObjectParameterName uniqueParameterName (const std::string &parameter_name) const
 
MooseObjectName uniqueName () const
 
const InputParametersparameters () const
 
const hit::Node * getHitNode () const
 
bool hasBase () const
 
const std::string & getBase () const
 
const TgetParam (const std::string &name) const
 
std::vector< std::pair< T1, T2 > > getParam (const std::string &param1, const std::string &param2) const
 
const TqueryParam (const std::string &name) const
 
const TgetRenamedParam (const std::string &old_name, const std::string &new_name) const
 
T getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 
bool isParamValid (const std::string &name) const
 
bool isParamSetByUser (const std::string &name) const
 
void connectControllableParams (const std::string &parameter, const std::string &object_type, const std::string &object_name, const std::string &object_parameter) const
 
void paramError (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramWarning (const std::string &param, Args... args) const
 
void paramInfo (const std::string &param, Args... args) const
 
std::string messagePrefix (const bool hit_prefix=true) const
 
std::string errorPrefix (const std::string &) const
 
void mooseError (Args &&... args) const
 
void mooseDocumentedError (const std::string &repo_name, const unsigned int issue_num, Args &&... args) const
 
void mooseErrorNonPrefixed (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarning (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseWarningNonPrefixed (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecated (Args &&... args) const
 
void mooseDeprecatedNoTrace (Args &&... args) const
 
void mooseInfo (Args &&... args) const
 
void callMooseError (std::string msg, const bool with_prefix, const hit::Node *node=nullptr, const bool show_trace=true) const
 
std::string getDataFileName (const std::string &param) const
 
std::string getDataFileNameByName (const std::string &relative_path) const
 
std::string getDataFilePath (const std::string &relative_path) const
 
virtual void timestepSetup ()
 
virtual void jacobianSetup ()
 
virtual void residualSetup ()
 
virtual void subdomainSetup ()
 
virtual void customSetup (const ExecFlagType &)
 
const ExecFlagEnumgetExecuteOnEnum () const
 
const FunctiongetFunction (const std::string &name) const
 
const FunctiongetFunctionByName (const FunctionName &name) const
 
bool hasFunction (const std::string &param_name) const
 
bool hasFunctionByName (const FunctionName &name) const
 
Moose::Kokkos::Function getKokkosFunction (const std::string &name) const
 
const TgetKokkosFunction (const std::string &name) const
 
Moose::Kokkos::Function getKokkosFunctionByName (const FunctionName &name) const
 
const TgetKokkosFunctionByName (const FunctionName &name) const
 
bool hasKokkosFunction (const std::string &param_name) const
 
bool hasKokkosFunctionByName (const FunctionName &name) const
 
UserObjectName getUserObjectName (const std::string &param_name) const
 
const TgetUserObject (const std::string &param_name, bool is_dependency=true) const
 
const TgetUserObjectByName (const UserObjectName &object_name, bool is_dependency=true) const
 
const UserObjectBasegetUserObjectBase (const std::string &param_name, bool is_dependency=true) const
 
const UserObjectBasegetUserObjectBaseByName (const UserObjectName &object_name, bool is_dependency=true) const
 
bool isImplicit ()
 
Moose::StateArg determineState () const
 
bool isDefaultPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessor (const std::string &param_name, const unsigned int index=0) const
 
bool hasPostprocessorByName (const PostprocessorName &name) const
 
std::size_t coupledPostprocessors (const std::string &param_name) const
 
const PostprocessorName & getPostprocessorName (const std::string &param_name, const unsigned int index=0) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name, bool needs_broadcast) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const VectorPostprocessorValuegetVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name, bool needs_broadcast) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValue (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOld (const std::string &param_name, const std::string &vector_name) const
 
const ScatterVectorPostprocessorValuegetScatterVectorPostprocessorValueOldByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
bool hasVectorPostprocessor (const std::string &param_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool hasVectorPostprocessorByName (const VectorPostprocessorName &name) const
 
const VectorPostprocessorName & getVectorPostprocessorName (const std::string &param_name) const
 
void setRandomResetFrequency (ExecFlagType exec_flag)
 
unsigned long getRandomLong () const
 
Real getRandomReal () const
 
unsigned int getSeed (std::size_t id)
 
unsigned int getMasterSeed () const
 
bool isNodal () const
 
ExecFlagType getResetOnTime () const
 
void setRandomDataPointer (RandomData *random_data)
 
virtual void meshChanged ()
 
void useVectorTag (const TagName &tag_name, VectorTagsKey)
 
void useVectorTag (TagID tag_id, VectorTagsKey)
 
void useMatrixTag (const TagName &tag_name, MatrixTagsKey)
 
void useMatrixTag (TagID tag_id, MatrixTagsKey)
 
bool isVectorTagged ()
 
bool isMatrixTagged ()
 
bool hasVectorTags () const
 
const std::set< TagID > & getVectorTags (VectorTagsKey) const
 
const std::set< TagID > & getMatrixTags (MatrixTagsKey) const
 
const std::vector< SubdomainName > & blocks () const
 
unsigned int numBlocks () const
 
virtual const std::set< SubdomainID > & blockIDs () const
 
unsigned int blocksMaxDimension () const
 
bool hasBlocks (const SubdomainName &name) const
 
bool hasBlocks (const std::vector< SubdomainName > &names) const
 
bool hasBlocks (const std::set< SubdomainName > &names) const
 
bool hasBlocks (SubdomainID id) const
 
bool hasBlocks (const std::vector< SubdomainID > &ids) const
 
bool hasBlocks (const std::set< SubdomainID > &ids) const
 
bool isBlockSubset (const std::set< SubdomainID > &ids) const
 
bool isBlockSubset (const std::vector< SubdomainID > &ids) const
 
bool hasBlockMaterialProperty (const std::string &prop_name)
 
const std::set< SubdomainID > & meshBlockIDs () const
 
virtual bool blockRestricted () const
 
virtual void checkVariable (const MooseVariableFieldBase &variable) const
 
const Moose::Functor< Real > * defaultFunctor (const std::string &name)
 
const Moose::Functor< ADReal > * defaultFunctor (const std::string &name)
 
MooseVariableBasemooseVariableBase () const
 
MooseVariableField< Real > & mooseVariableField ()
 
MooseVariableFE< Real > * mooseVariable () const
 
MooseVariableFV< Real > * mooseVariableFV () const
 
MooseLinearVariableFV< Real > * mooseLinearVariableFV () const
 
const std::set< MooseVariableFieldBase * > & getMooseVariableDependencies () const
 
std::set< MooseVariableFieldBase * > checkAllVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_omit={})
 
virtual std::set< MooseVariableFieldBase * > checkVariables (const libMesh::Node &node, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
std::set< MooseVariableFieldBase * > checkVariables (const libMesh::Elem &element, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
void addMooseVariableDependency (MooseVariableFieldBase *var)
 
void addMooseVariableDependency (const std::vector< MooseVariableFieldBase * > &vars)
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObject (const std::string &param_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
bool hasUserObjectByName (const UserObjectName &object_name) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValue (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOld (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
const PostprocessorValuegetPostprocessorValueOlder (const std::string &param_name, const unsigned int index=0) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
virtual const PostprocessorValuegetPostprocessorValueByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOldByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
const PostprocessorValuegetPostprocessorValueOlderByName (const PostprocessorName &name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributed (const std::string &param_name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
bool isVectorPostprocessorDistributedByName (const VectorPostprocessorName &name) const
 
const Parallel::Communicator & comm () const
 
processor_id_type n_processors () const
 
processor_id_type processor_id () const
 

Static Public Member Functions

static InputParameters validParams ()
 
static void callMooseError (MooseApp *const app, const InputParameters &params, std::string msg, const bool with_prefix, const hit::Node *node, const bool show_trace=true)
 
static std::string deduceFunctorName (const std::string &name, const InputParameters &params)
 
static void setRMParamsAdvection (const InputParameters &obj_params, InputParameters &rm_params, const unsigned short conditional_extended_layers)
 
static void setRMParamsDiffusion (const InputParameters &obj_params, InputParameters &rm_params, const unsigned short conditional_extended_layers)
 

Public Attributes

 usingCombinedWarningSolutionWarnings
 
const ConsoleStream _console
 

Static Public Attributes

static const std::string type_param
 
static const std::string name_param
 
static const std::string unique_name_param
 
static const std::string app_param
 
static const std::string moose_base_param
 
static const std::string kokkos_object_param
 

Protected Member Functions

std::string deduceFunctorName (const std::string &name) const
 
void requestVariableCellGradient (const std::string &variable_name)
 
void flagInvalidSolutionInternal (const InvalidSolutionID invalid_solution_id) const
 
InvalidSolutionID registerInvalidSolutionInternal (const std::string &message, const bool warning) const
 
virtual void addUserObjectDependencyHelper (const UserObjectBase &) const
 
virtual void addPostprocessorDependencyHelper (const PostprocessorName &) const
 
virtual void addVectorPostprocessorDependencyHelper (const VectorPostprocessorName &) const
 
TdeclareRestartableData (const std::string &data_name, Args &&... args)
 
ManagedValue< TdeclareManagedRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
const TgetRestartableData (const std::string &data_name) const
 
TdeclareRestartableDataWithContext (const std::string &data_name, void *context, Args &&... args)
 
TdeclareRecoverableData (const std::string &data_name, Args &&... args)
 
TdeclareRestartableDataWithObjectName (const std::string &data_name, const std::string &object_name, Args &&... args)
 
TdeclareRestartableDataWithObjectNameWithContext (const std::string &data_name, const std::string &object_name, void *context, Args &&... args)
 
std::string restartableName (const std::string &data_name) const
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTag (Assembly &assembly, unsigned int ivar, ResidualTagType tag_type)
 
void prepareVectorTagNeighbor (Assembly &assembly, unsigned int ivar)
 
void prepareVectorTagLower (Assembly &assembly, unsigned int ivar)
 
void prepareMatrixTag (Assembly &assembly, unsigned int ivar, unsigned int jvar)
 
void prepareMatrixTag (Assembly &assembly, unsigned int ivar, unsigned int jvar, DenseMatrix< Number > &k) const
 
void prepareMatrixTagNonlocal (Assembly &assembly, unsigned int ivar, unsigned int jvar)
 
void prepareMatrixTagNeighbor (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type)
 
void prepareMatrixTagNeighbor (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type, DenseMatrix< Number > &k) const
 
void prepareMatrixTagLower (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::ConstraintJacobianType type)
 
void accumulateTaggedLocalResidual ()
 
void assignTaggedLocalResidual ()
 
void accumulateTaggedLocalMatrix ()
 
void accumulateTaggedLocalMatrix (Assembly &assembly, unsigned int ivar, unsigned int jvar, const DenseMatrix< Number > &k)
 
void accumulateTaggedLocalMatrix (Assembly &assembly, unsigned int ivar, unsigned int jvar, Moose::DGJacobianType type, const DenseMatrix< Number > &k)
 
void accumulateTaggedNonlocalMatrix ()
 
void assignTaggedLocalMatrix ()
 
void addResiduals (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResiduals (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, const std::vector< Real > &scaling_factors)
 
void addResiduals (Assembly &assembly, const DenseVector< T > &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResiduals (Assembly &assembly, const ADResidualsPacket &packet)
 
void addResidualsAndJacobian (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResidualsAndJacobian (Assembly &assembly, const ADResidualsPacket &packet)
 
void addJacobian (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addJacobian (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, const std::vector< Real > &scaling_factors)
 
void addJacobian (Assembly &assembly, const ADResidualsPacket &packet)
 
void addJacobian (Assembly &assembly, const DenseMatrix< Real > &local_k, const std::vector< dof_id_type > &row_indices, const std::vector< dof_id_type > &column_indices, Real scaling_factor)
 
void addResidualsWithoutConstraints (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addResidualsAndJacobianWithoutConstraints (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addJacobianWithoutConstraints (Assembly &assembly, const Residuals &residuals, const Indices &dof_indices, Real scaling_factor)
 
void addJacobianElement (Assembly &assembly, Real value, dof_id_type row_index, dof_id_type column_index, Real scaling_factor)
 
void setResidual (SystemBase &sys, const T &residual, MooseVariableFE< T > &var)
 
void setResidual (SystemBase &sys, Real residual, dof_id_type dof_index)
 
void setResidual (SystemBase &sys, SetResidualFunctor set_residual_functor)
 
virtual bool hasBlockMaterialPropertyHelper (const std::string &prop_name)
 
void initializeBlockRestrictable (const MooseObject *moose_object)
 
void initializeKokkosBlockRestrictable ()
 
Moose::CoordinateSystemType getBlockCoordSystem ()
 
KOKKOS_FUNCTION dof_id_type numKokkosBlockElements () const
 
KOKKOS_FUNCTION dof_id_type numKokkosBlockNodes () const
 
KOKKOS_FUNCTION dof_id_type numKokkosBlockSides () const
 
KOKKOS_FUNCTION ContiguousElementID kokkosBlockElementID (Moose::Kokkos::ThreadID tid) const
 
KOKKOS_FUNCTION ContiguousElementID kokkosBlockNodeID (Moose::Kokkos::ThreadID tid) const
 
KOKKOS_FUNCTION auto kokkosBlockElementSideID (Moose::Kokkos::ThreadID tid) const
 
const Moose::Functor< T > & getFunctor (const std::string &name)
 
const Moose::Functor< T > & getFunctor (const std::string &name, THREAD_ID tid)
 
const Moose::Functor< T > & getFunctor (const std::string &name, SubProblem &subproblem)
 
const Moose::Functor< T > & getFunctor (const std::string &name, SubProblem &subproblem, THREAD_ID tid)
 
bool isFunctor (const std::string &name) const
 
bool isFunctor (const std::string &name, const SubProblem &subproblem) const
 
Moose::ElemArg makeElemArg (const Elem *elem, bool correct_skewnewss=false) const
 
void checkFunctorSupportsSideIntegration (const std::string &name, bool qp_integration)
 
const Moose::Functor< T > & getFunctorByName (const std::string &name)
 
virtual const OutputTools< Real >::VariableValuevalue ()
 
virtual const OutputTools< Real >::VariableValuevalueOld ()
 
virtual const OutputTools< Real >::VariableValuevalueOlder ()
 
virtual const OutputTools< Real >::VariableValuedot ()
 
virtual const OutputTools< Real >::VariableValuedotDot ()
 
virtual const OutputTools< Real >::VariableValuedotOld ()
 
virtual const OutputTools< Real >::VariableValuedotDotOld ()
 
virtual const VariableValuedotDu ()
 
virtual const VariableValuedotDotDu ()
 
virtual const OutputTools< Real >::VariableGradientgradient ()
 
virtual const OutputTools< Real >::VariableGradientgradientOld ()
 
virtual const OutputTools< Real >::VariableGradientgradientOlder ()
 
virtual const OutputTools< Real >::VariableSecondsecond ()
 
virtual const OutputTools< Real >::VariableSecondsecondOld ()
 
virtual const OutputTools< Real >::VariableSecondsecondOlder ()
 
virtual const OutputTools< Real >::VariableTestSecondsecondTest ()
 
virtual const OutputTools< Real >::VariableTestSecondsecondTestFace ()
 
virtual const OutputTools< Real >::VariablePhiSecondsecondPhi ()
 
virtual const OutputTools< Real >::VariablePhiSecondsecondPhiFace ()
 

Protected Attributes

const unsigned int _dim
 The dimension of the domain.
 
const Moose::Functor< Real > & _u_var
 x-velocity
 
const Moose::Functor< Real > * _v_var
 y-velocity
 
const Moose::Functor< Real > * _w_var
 z-velocity
 
const Moose::Functor< Real > & _epsilon
 epsilon - dissipation rate of TKE
 
const Moose::Functor< Real > & _rho
 Density.
 
const Moose::Functor< Real > & _mu
 Dynamic viscosity.
 
const Moose::Functor< Real > & _mu_t
 Turbulent dynamic viscosity.
 
const std::vector< BoundaryName > & _wall_boundary_names
 Wall boundaries.
 
const NS::WallTreatmentEnum _wall_treatment
 Method used for wall treatment.
 
const Real _C_mu
 C_mu constant.
 
const Real _C_pl
 Production Limiter Constant.
 
const ElemInfo_current_elem_info
 
Real _current_elem_volume
 
dof_id_type _dof_id
 
MooseLinearVariableFV< Real > & _var
 
const unsigned int _var_num
 
const unsigned int _sys_num
 
FEProblemBase_fe_problem
 
SystemBase_sys
 
libMesh::LinearImplicitSystem_linear_system
 
const THREAD_ID _tid
 
MooseMesh_mesh
 
std::vector< NumericVector< Number > * > _vectors
 
std::vector< SparseMatrix< Number > * > _matrices
 
const bool & _enabled
 
MooseApp_app
 
Factory_factory
 
ActionFactory_action_factory
 
const std::string & _type
 
const std::string & _name
 
const InputParameters_pars
 
const ExecFlagEnum_execute_enum
 
const ExecFlagType_current_execute_flag
 
const InputParameters_ti_params
 
FEProblemBase_ti_feproblem
 
bool _is_implicit
 
Real & _t
 
const Real & _t_old
 
int_t_step
 
Real & _dt
 
Real & _dt_old
 
bool _is_transient
 
MooseApp_restartable_app
 
const std::string _restartable_system_name
 
const THREAD_ID _restartable_tid
 
const bool _restartable_read_only
 
FEProblemBase_mci_feproblem
 
SubProblem_subproblem
 
DenseVector< Number > _local_re
 
DenseMatrix< Number > _local_ke
 
DenseMatrix< Number > _nonlocal_ke
 
const MaterialData_blk_material_data
 
bool _nodal
 
MooseVariableFE< Real > * _variable
 
MooseVariableFV< Real > * _fv_variable
 
MooseLinearVariableFV< Real > * _linear_fv_variable
 
MooseVariableField< Real > * _field_variable
 
Assembly_mvi_assembly
 
const Parallel::Communicator & _communicator
 
std::unordered_set< const Elem * > _wall_bounded
 
std::map< const Elem *, std::vector< Real > > _dist
 
std::map< const Elem *, std::vector< const FaceInfo * > > _face_infos
 

Private Member Functions

const Moose::Functor< T > * defaultFunctor (const std::string &name)
 
const Moose::Functor< Real > * defaultFunctor (const std::string &name)
 
const Moose::Functor< ADReal > * defaultFunctor (const std::string &name)
 
const Moose::Functor< T > & getFunctorByName (const std::string &name, SubProblem &subproblem, THREAD_ID tid)
 
const Moose::FunctionBasegetKokkosFunctionByNameHelper (const FunctionName &name) const
 
const UserObjectBasegetUserObjectFromFEProblem (const UserObjectName &object_name, const THREAD_ID tid=0) const
 
const TcastUserObject (const UserObjectBase &uo_base, const std::string &param_name="") const
 
void mooseObjectError (const std::string &param_name, std::stringstream &oss) const
 
const std::string & userObjectType (const UserObjectBase &uo) const
 
const std::string & userObjectName (const UserObjectBase &uo) const
 
const PostprocessorName & getPostprocessorNameInternal (const std::string &param_name, const unsigned int index, const bool allow_default_value=true) const
 
bool isDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
PostprocessorValue getDefaultPostprocessorValueByName (const PostprocessorName &name) const
 
void checkParam (const std::string &param_name, const unsigned int index=std::numeric_limits< unsigned int >::max()) const
 
bool postprocessorsAdded () const
 
const VectorPostprocessorValuegetVectorPostprocessorByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name, bool broadcast, std::size_t t_index) const
 
const VectorPostprocessorContext< VectorPostprocessorValue > & getVectorPostprocessorContextByNameHelper (const VectorPostprocessorName &name, const std::string &vector_name) const
 
bool vectorPostprocessorsAdded () const
 
RestartableDataValueregisterRestartableDataOnApp (std::unique_ptr< RestartableDataValue > data, THREAD_ID tid) const
 
void registerRestartableNameWithFilterOnApp (const std::string &name, Moose::RESTARTABLE_FILTER filter)
 
RestartableData< T > & declareRestartableDataHelper (const std::string &data_name, void *context, Args &&... args) const
 
void prepareVectorTagInternal (Assembly &assembly, unsigned int ivar, const std::set< TagID > &vector_tags, const std::set< TagID > &absolute_value_vector_tags)
 
void checkForNans () const
 
virtual bool isADObject () const override
 
std::set< MooseVariableFieldBase * > checkVariablesHelper (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase * > &vars_to_check)
 
const PostprocessorValuegetPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValuegetPostprocessorValueInternal (const std::string &param_name, unsigned int index, std::size_t t_index) const
 
const PostprocessorValuegetPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
const PostprocessorValuegetPostprocessorValueByNameInternal (const PostprocessorName &name, std::size_t t_index) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessor (const std::string &param_name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 
void possiblyCheckHasVectorPostprocessorByName (const VectorPostprocessorName &name, const std::string &vector_name) const
 

Static Private Member Functions

static const hit::Node * getHitNode (const InputParameters &params)
 
static std::string messagePrefix (const InputParameters &params, const bool hit_prefix)
 
static void setRMParams (const InputParameters &obj_params, InputParameters &rm_params, const unsigned short ghost_layers)
 
static void parameterError (const InputParameters &obj_params, const std::string &parameter_name, const std::string &function_name, const std::string &description)
 

Private Attributes

const ParallelParamObject_parent
 
const MooseBase_si_moose_base
 
const FEProblemBase_si_problem
 
ExecFlagEnum _empty_execute_enum
 
const MooseObject_fni_object
 
const InputParameters_fni_params
 
FEProblemBase_fni_feproblem
 
const THREAD_ID _fni_tid
 
const MooseObject_uoi_moose_object
 
const FEProblemBase_uoi_feproblem
 
const THREAD_ID _uoi_tid
 
const std::string _ti_name
 
const MooseObject_ppi_moose_object
 
const InputParameters_ppi_params
 
const FEProblemBase_ppi_feproblem
 
std::map< PostprocessorName, std::unique_ptr< PostprocessorValue > > _default_values
 
const bool _broadcast_by_default
 
const MooseObject_vpi_moose_object
 
const FEProblemBase_vpi_feproblem
 
const THREAD_ID _vpi_tid
 
RandomData_random_data
 
MooseRandom_generator
 
FEProblemBase_ri_problem
 
const std::string _ri_name
 
unsigned int _master_seed
 
bool _is_nodal
 
ExecFlagType _reset_on
 
const Node *const & _curr_node
 
const Elem *const & _curr_element
 
const RestartableDataMapName _metaname
 
std::string _restartable_name
 
std::set< TagID_vector_tags
 
std::set< TagID_abs_vector_tags
 
std::set< TagID_matrix_tags
 
std::set< TagID_non_ref_vector_tags
 
std::set< TagID_non_ref_abs_vector_tags
 
std::set< TagID_ref_vector_tags
 
std::set< TagID_ref_abs_vector_tags
 
const MooseObject_moose_object
 
const InputParameters_tag_params
 
std::vector< DenseVector< Number > * > _re_blocks
 
std::vector< DenseVector< Number > * > _absre_blocks
 
std::vector< DenseMatrix< Number > * > _ke_blocks
 
std::vector< Real > _absolute_residuals
 
std::set< SubdomainID_blk_ids
 
std::vector< SubdomainID_vec_ids
 
std::vector< SubdomainName > _blocks
 
const bool _blk_dual_restrictable
 
FEProblemBase_blk_feproblem
 
const MooseMesh_blk_mesh
 
const std::set< BoundaryID_empty_boundary_ids
 
const std::set< BoundaryID > & _boundary_ids
 
THREAD_ID _blk_tid
 
const std::string & _blk_name
 
unsigned int _blk_dim
 
Moose::Kokkos::Array< ContiguousElementID_kokkos_element_ids
 
Moose::Kokkos::Array< ContiguousNodeID_kokkos_node_ids
 
Moose::Kokkos::Array< Moose::Kokkos::Pair< ContiguousElementID, unsigned int > > _kokkos_element_side_ids
 
const InputParameters_fi_params
 
const std::string _fi_name
 
SubProblem *const _fi_subproblem
 
const THREAD_ID _fi_tid
 
std::vector< std::unique_ptr< Moose::Functor< Real > > > _default_real_functors
 
std::vector< std::unique_ptr< Moose::Functor< ADReal > > > _default_ad_real_functors
 
std::set< MooseVariableFieldBase * > _moose_variable_dependencies
 
std::vector< libMesh::dof_id_type_dof_indices
 

Detailed Description

Kernel that adds contributions to the source and the sink of the turbulent kinetic energy discretized using the finite volume method to a linear system.

Definition at line 19 of file LinearFVTKESourceSink.h.

Constructor & Destructor Documentation

◆ LinearFVTKESourceSink()

LinearFVTKESourceSink::LinearFVTKESourceSink ( const InputParameters params)

Class constructor.

Parameters
paramsThe InputParameters for the kernel.

Definition at line 46 of file LinearFVTKESourceSink.C.

49 _u_var(getFunctor<Real>("u")),
50 _v_var(params.isParamValid("v") ? &(getFunctor<Real>("v")) : nullptr),
51 _w_var(params.isParamValid("w") ? &(getFunctor<Real>("w")) : nullptr),
52 _epsilon(getFunctor<Real>(NS::TKED)),
53 _rho(getFunctor<Real>(NS::density)),
55 _mu_t(getFunctor<Real>(NS::mu_t)),
56 _wall_boundary_names(getParam<std::vector<BoundaryName>>("walls")),
57 _wall_treatment(getParam<MooseEnum>("wall_treatment").getEnum<NS::WallTreatmentEnum>()),
58 _C_mu(getParam<Real>("C_mu")),
59 _C_pl(getParam<Real>("C_pl"))
60{
61 if (_dim >= 2 && !_v_var)
62 paramError("v", "In two or more dimensions, the v velocity must be supplied!");
63
64 if (_dim >= 3 && !_w_var)
65 paramError("w", "In three or more dimensions, the w velocity must be supplied!");
66
67 // // Strain tensor term requires velocity gradients;
68 if (dynamic_cast<const MooseLinearVariableFV<Real> *>(&_u_var))
69 requestVariableCellGradient(getParam<MooseFunctorName>("u"));
70 if (dynamic_cast<const MooseLinearVariableFV<Real> *>(_v_var))
71 requestVariableCellGradient(getParam<MooseFunctorName>("v"));
72 if (dynamic_cast<const MooseLinearVariableFV<Real> *>(_w_var))
73 requestVariableCellGradient(getParam<MooseFunctorName>("w"));
74}
const double mu
const Moose::Functor< T > & getFunctor(const std::string &name)
bool isParamValid(const std::string &name) const
void requestVariableCellGradient(const std::string &variable_name)
const Moose::Functor< Real > & _mu
Dynamic viscosity.
const Moose::Functor< Real > & _epsilon
epsilon - dissipation rate of TKE
const Real _C_pl
Production Limiter Constant.
const NS::WallTreatmentEnum _wall_treatment
Method used for wall treatment.
const Real _C_mu
C_mu constant.
const Moose::Functor< Real > * _w_var
z-velocity
const Moose::Functor< Real > & _rho
Density.
const Moose::Functor< Real > & _u_var
x-velocity
const std::vector< BoundaryName > & _wall_boundary_names
Wall boundaries.
const Moose::Functor< Real > * _v_var
y-velocity
const Moose::Functor< Real > & _mu_t
Turbulent dynamic viscosity.
const unsigned int _dim
The dimension of the domain.
void paramError(const std::string &param, Args... args) const
const T & getParam(const std::string &name) const
bool isParamValid(const std::string &name) const
virtual unsigned int dimension() const
virtual MooseMesh & mesh()=0
SubProblem & _subproblem
WallTreatmentEnum
Wall treatment options.
Definition NS.h:187
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

Member Function Documentation

◆ computeMatrixContribution()

Real LinearFVTKESourceSink::computeMatrixContribution ( )
overridevirtual

Implements LinearFVElementalKernel.

Definition at line 87 of file LinearFVTKESourceSink.C.

88{
89 /*
90 Matrix contribution:
91 - Computes near-wall TKE destruction
92 - Computes bulk TKE destruction
93 */
94
95 // Useful variables
96 const auto state = determineState();
97 const auto elem_arg = makeElemArg(_current_elem_info->elem());
98 const Real rho = _rho(elem_arg, state);
99
101 {
102
103 // Useful variables
104 const Real mu = _mu(elem_arg, state);
105 const Real TKE = _var.getElemValue(*_current_elem_info, state);
106
107 // Assembly variables
108 Real production = 0.0;
109 Real destruction = 0.0;
110 Real tot_weight = 0.0;
111 std::vector<Real> y_plus_vec, velocity_grad_norm_vec;
112
113 // Get near-wall element velocity vector
114 RealVectorValue velocity(_u_var(elem_arg, state));
115 if (_v_var)
116 velocity(1) = (*_v_var)(elem_arg, state);
117 if (_w_var)
118 velocity(2) = (*_w_var)(elem_arg, state);
119
120 // Get faceInfo and distance vector for between all walls and elements
121 const auto & face_info_vec = libmesh_map_find(_face_infos, _current_elem_info->elem());
122 const auto & distance_vec = libmesh_map_find(_dist, _current_elem_info->elem());
123 mooseAssert(distance_vec.size(), "Should have found a distance vector");
124 mooseAssert(distance_vec.size() == face_info_vec.size(),
125 "Should be as many distance vectors as face info vectors");
126
127 // Populate y+, near wall velocity gradient, and update weights
128 for (unsigned int i = 0; i < distance_vec.size(); i++)
129 {
130 const auto parallel_speed = NS::computeSpeed<Real>(
131 velocity - velocity * face_info_vec[i]->normal() * face_info_vec[i]->normal());
132 const auto distance = distance_vec[i];
133
134 Real y_plus;
135 if (_wall_treatment == NS::WallTreatmentEnum::NEQ) // Non-equilibrium --> Non-iterative
136 y_plus = distance * std::sqrt(std::sqrt(_C_mu) * TKE) * rho / mu;
137 else // Equilibrium --> Iterative
138 y_plus = NS::findyPlus<Real>(mu, rho, std::max(parallel_speed, 1e-10), distance);
139
140 y_plus_vec.push_back(y_plus);
141 const Real velocity_grad_norm = parallel_speed / distance;
142 velocity_grad_norm_vec.push_back(velocity_grad_norm);
143 tot_weight += 1.0;
144 }
145
146 // Compute near-wall production and destruction
147 for (unsigned int i = 0; i < y_plus_vec.size(); i++)
148 {
149 const auto y_plus = y_plus_vec[i];
150
151 const auto fi = face_info_vec[i];
152 const bool defined_on_elem_side = _var.hasFaceSide(*fi, true);
153 const Elem * const loc_elem = defined_on_elem_side ? &fi->elem() : fi->neighborPtr();
154 const Moose::FaceArg facearg = {
155 fi, Moose::FV::LimiterType::CentralDifference, false, false, loc_elem, nullptr};
156
157 const Real wall_mut = _mu_t(facearg, state);
158 const Real wall_mu = _mu(facearg, state);
159 const auto tau_w = (wall_mut + wall_mu) * velocity_grad_norm_vec[i];
160 const auto destruction_visc = 2.0 * wall_mu / Utility::pow<2>(distance_vec[i]) / tot_weight;
161 const auto destruction_log = std::pow(_C_mu, 0.75) * rho * std::pow(TKE, 0.5) /
162 (NS::von_karman_constant * distance_vec[i]) / tot_weight;
163
164 if (y_plus < 11.25)
165 destruction += destruction_visc;
166 else
167 {
168 destruction += destruction_log;
169 production += tau_w * std::pow(_C_mu, 0.25) / std::sqrt(TKE) /
170 (NS::von_karman_constant * distance_vec[i]) / tot_weight;
171 }
172 }
173
174 // Assign terms to matrix to solve implicitly (they get multiplied by TKE)
175 return (destruction - production) * _current_elem_volume;
176 }
177 else
178 {
179 // Compute destruction
180 const auto destruction =
181 rho * _epsilon(elem_arg, state) / _var.getElemValue(*_current_elem_info, state);
182
183 // Assign to matrix to solve implicitly
184 return destruction * _current_elem_volume;
185 }
186}
const double rho
const Elem * elem() const
Moose::ElemArg makeElemArg(const Elem *elem, bool correct_skewnewss=false) const
const ElemInfo * _current_elem_info
MooseLinearVariableFV< Real > & _var
std::unordered_set< const Elem * > _wall_bounded
std::map< const Elem *, std::vector< const FaceInfo * > > _face_infos
std::map< const Elem *, std::vector< Real > > _dist
Real getElemValue(const ElemInfo &elem_info, const StateArg &state) const
virtual bool hasFaceSide(const FaceInfo &fi, const bool fi_elem_side) const override
Moose::StateArg determineState() const
template Real computeSpeed< Real >(const libMesh::VectorValue< Real > &velocity)
static constexpr Real von_karman_constant
Definition NS.h:205
template Real findyPlus< Real >(const Real &mu, const Real &rho, const Real &u, Real dist)
VectorValue< Real > RealVectorValue
Real distance(const Point &p)

◆ computeRightHandSideContribution()

Real LinearFVTKESourceSink::computeRightHandSideContribution ( )
overridevirtual

Implements LinearFVElementalKernel.

Definition at line 189 of file LinearFVTKESourceSink.C.

190{
191
192 // Useful variables
193 const auto state = determineState();
194 const auto elem_arg = makeElemArg(_current_elem_info->elem());
195
196 if (_wall_bounded.find(_current_elem_info->elem()) != _wall_bounded.end()) // Wall bounded
197 return 0.0; // Do nothing
198 else // Not wall bounded
199 {
200 // Compute TKE production
201 const auto subdomain_id = _current_elem_info->elem()->subdomain_id();
202 const auto coord_sys = _subproblem.getCoordSystem(subdomain_id);
203 const unsigned int rz_radial_coord =
205 const auto symmetric_strain_tensor_sq_norm = NS::computeShearStrainRateNormSquared<Real>(
206 _u_var, _v_var, _w_var, elem_arg, state, coord_sys, rz_radial_coord);
207
208 auto production = _mu_t(elem_arg, state) * symmetric_strain_tensor_sq_norm;
209
210 // k-Production limiter (needed for flows with stagnation zones)
211 const Real production_limit = _C_pl * _rho(elem_arg, state) * _epsilon(elem_arg, state);
212
213 // Apply production limiter
214 production = std::min(production, production_limit);
215
216 // Assign production to RHS
217 return production * _current_elem_volume;
218 }
219}
unsigned int getAxisymmetricRadialCoord() const
Moose::CoordinateSystemType getCoordSystem(SubdomainID sid) const
template Real computeShearStrainRateNormSquared< Real >(const Moose::Functor< Real > &u, const Moose::Functor< Real > *v, const Moose::Functor< Real > *w, const Moose::ElemArg &elem_arg, const Moose::StateArg &state, const Moose::CoordinateSystemType coord_sys, const unsigned int rz_radial_coord)

◆ initialSetup()

void LinearFVTKESourceSink::initialSetup ( )
overridevirtual

Reimplemented from LinearFVElementalKernel.

Definition at line 77 of file LinearFVTKESourceSink.C.

78{
84}
virtual const std::set< SubdomainID > & blockIDs() const
FEProblemBase & _fe_problem
virtual void initialSetup()
void getWallBoundedElements(const std::vector< BoundaryName > &wall_boundary_name, const FEProblemBase &fe_problem, const SubProblem &subproblem, const std::set< SubdomainID > &block_ids, std::unordered_set< const Elem * > &wall_bounded)
Map marking wall bounded elements The map passed in wall_bounded_map gets cleared and re-populated.
void getWallDistance(const std::vector< BoundaryName > &wall_boundary_name, const FEProblemBase &fe_problem, const SubProblem &subproblem, const std::set< SubdomainID > &block_ids, std::map< const Elem *, std::vector< Real > > &dist_map)
Map storing wall ditance for near-wall marked elements The map passed in dist_map gets cleared and re...
void getElementFaceArgs(const std::vector< BoundaryName > &wall_boundary_name, const FEProblemBase &fe_problem, const SubProblem &subproblem, const std::set< SubdomainID > &block_ids, std::map< const Elem *, std::vector< const FaceInfo * > > &face_info_map)
Map storing face arguments to wall bounded faces The map passed in face_info_map gets cleared and re-...

◆ validParams()

InputParameters LinearFVTKESourceSink::validParams ( )
static

Definition at line 18 of file LinearFVTKESourceSink.C.

19{
21 params.addClassDescription("Elemental kernel to compute the production and destruction "
22 " terms of turbulent kinetic energy (TKE).");
23 params.addRequiredParam<MooseFunctorName>("u", "The velocity in the x direction.");
24 params.addParam<MooseFunctorName>("v", "The velocity in the y direction.");
25 params.addParam<MooseFunctorName>("w", "The velocity in the z direction.");
26 params.addRequiredParam<MooseFunctorName>(NS::TKED,
27 "Coupled turbulent kinetic energy dissipation rate.");
28 params.addRequiredParam<MooseFunctorName>(NS::density, "Fluid density");
29 params.addRequiredParam<MooseFunctorName>(NS::mu, "Dynamic viscosity.");
30 params.addRequiredParam<MooseFunctorName>(NS::mu_t, "Turbulent viscosity.");
31
32 params.addParam<std::vector<BoundaryName>>(
33 "walls", {}, "Boundaries that correspond to solid walls.");
34 MooseEnum wall_treatment("eq_newton eq_incremental eq_linearized neq", "neq");
35
36 params.addParam<MooseEnum>("wall_treatment",
37 wall_treatment,
38 "The method used for computing the wall functions "
39 "'eq_newton', 'eq_incremental', 'eq_linearized', 'neq'");
40 params.addParam<Real>("C_mu", 0.09, "Coupled turbulent kinetic energy closure.");
41 params.addParam<Real>("C_pl", 10.0, "Production Limiter Constant Multiplier.");
42
43 return params;
44}
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)
static InputParameters validParams()
static const std::string density
Definition NS.h:34
static const std::string TKED
Definition NS.h:181
static const std::string mu_t
Definition NS.h:129
static const std::string mu
Definition NS.h:127

Member Data Documentation

◆ _C_mu

const Real LinearFVTKESourceSink::_C_mu
protected

C_mu constant.

Definition at line 66 of file LinearFVTKESourceSink.h.

Referenced by computeMatrixContribution().

◆ _C_pl

const Real LinearFVTKESourceSink::_C_pl
protected

Production Limiter Constant.

Definition at line 69 of file LinearFVTKESourceSink.h.

Referenced by computeRightHandSideContribution().

◆ _dim

const unsigned int LinearFVTKESourceSink::_dim
protected

The dimension of the domain.

Definition at line 38 of file LinearFVTKESourceSink.h.

Referenced by LinearFVTKESourceSink().

◆ _dist

std::map<const Elem *, std::vector<Real> > LinearFVTKESourceSink::_dist
protected

Definition at line 74 of file LinearFVTKESourceSink.h.

Referenced by computeMatrixContribution(), and initialSetup().

◆ _epsilon

const Moose::Functor<Real>& LinearFVTKESourceSink::_epsilon
protected

epsilon - dissipation rate of TKE

Definition at line 48 of file LinearFVTKESourceSink.h.

Referenced by computeMatrixContribution(), and computeRightHandSideContribution().

◆ _face_infos

std::map<const Elem *, std::vector<const FaceInfo *> > LinearFVTKESourceSink::_face_infos
protected

Definition at line 75 of file LinearFVTKESourceSink.h.

Referenced by computeMatrixContribution(), and initialSetup().

◆ _mu

const Moose::Functor<Real>& LinearFVTKESourceSink::_mu
protected

Dynamic viscosity.

Definition at line 54 of file LinearFVTKESourceSink.h.

Referenced by computeMatrixContribution().

◆ _mu_t

const Moose::Functor<Real>& LinearFVTKESourceSink::_mu_t
protected

Turbulent dynamic viscosity.

Definition at line 57 of file LinearFVTKESourceSink.h.

Referenced by computeMatrixContribution(), and computeRightHandSideContribution().

◆ _rho

const Moose::Functor<Real>& LinearFVTKESourceSink::_rho
protected

Density.

Definition at line 51 of file LinearFVTKESourceSink.h.

Referenced by computeMatrixContribution(), and computeRightHandSideContribution().

◆ _u_var

const Moose::Functor<Real>& LinearFVTKESourceSink::_u_var
protected

◆ _v_var

const Moose::Functor<Real>* LinearFVTKESourceSink::_v_var
protected

◆ _w_var

const Moose::Functor<Real>* LinearFVTKESourceSink::_w_var
protected

◆ _wall_boundary_names

const std::vector<BoundaryName>& LinearFVTKESourceSink::_wall_boundary_names
protected

Wall boundaries.

Definition at line 60 of file LinearFVTKESourceSink.h.

Referenced by initialSetup().

◆ _wall_bounded

std::unordered_set<const Elem *> LinearFVTKESourceSink::_wall_bounded
protected

Maps for wall treatement

Definition at line 73 of file LinearFVTKESourceSink.h.

Referenced by computeMatrixContribution(), computeRightHandSideContribution(), and initialSetup().

◆ _wall_treatment

const NS::WallTreatmentEnum LinearFVTKESourceSink::_wall_treatment
protected

Method used for wall treatment.

Definition at line 63 of file LinearFVTKESourceSink.h.

Referenced by computeMatrixContribution().


The documentation for this class was generated from the following files: