https://mooseframework.inl.gov
INSFVMomentumResidualObject.h
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 #pragma once
11 
12 #include "InputParameters.h"
14 
15 class MooseObject;
16 class FaceInfo;
17 
25 {
26 public:
28 
32  template <typename T>
34 
40  virtual void gatherRCData(const Elem & elem) = 0;
41 
47  virtual void gatherRCData(const FaceInfo & fi) = 0;
48 
49  virtual ~INSFVMomentumResidualObject() = default;
50 
51 protected:
56 
58  const unsigned int _index;
59 };
60 
61 template <typename T>
63  : _rc_uo(const_cast<RhieChowInterpolatorBase &>(
64  obj.template getUserObject<RhieChowInterpolatorBase>("rhie_chow_user_object"))),
65  _index(obj.template getParam<MooseEnum>("momentum_component"))
66 {
67 }
const unsigned int _index
index x|y|z
RhieChowInterpolatorBase & _rc_uo
The Rhie Chow user object that is responsible for generating face velocities for advection terms...
virtual void gatherRCData(const Elem &elem)=0
Should be a non-empty implementation if the residual object is a FVElementalKernel and introduces res...
All objects that contribute to pressure-based (e.g.
virtual ~INSFVMomentumResidualObject()=default
static InputParameters validParams()