https://mooseframework.inl.gov
Loading...
Searching...
No Matches
INSFVMomentumAdvection.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
15
21{
22public:
25
31
35 static std::vector<std::string> listOfCommonParams();
36
37 void gatherRCData(const Elem &) override final {}
38 void gatherRCData(const FaceInfo & fi) override final;
39 void initialSetup() override;
41 void computeResidual(const FaceInfo & fi) override final;
43 void computeJacobian(const FaceInfo & fi) override final;
44
45protected:
46 virtual ADReal computeQpResidual() override final;
47 virtual bool hasMaterialTimeDerivative() const override { return true; }
48
52 virtual const Moose::FunctorBase<ADReal> & epsilon() const { return _unity_functor; }
53
57 virtual void computeResidualsAndAData(const FaceInfo & fi);
58
61
63 const bool _approximate_as;
64
66 const Real _cs;
67
69 std::unique_ptr<PiecewiseByBlockLambdaFunctor<ADReal>> _rho_u;
70
73
76
79
82
85};
DualNumber< Real, DNDerivativeType, true > ADReal
void computeJacobian() override
void computeResidual() override
An advection kernel that implements interpolation schemes specific to Navier-Stokes flow physics.
An advection kernel that implements interpolation schemes specific to Navier-Stokes flow physics.
void gatherRCData(const Elem &) override final
Should be a non-empty implementation if the residual object is a FVElementalKernel and introduces res...
const Real _cs
Characteristic speed.
ADReal _an
The a coefficient for the neighbor.
ADReal _elem_residual
The element residual.
const Moose::ConstantFunctor< ADReal > _unity_functor
A unity functor used in the epsilon virtual method.
static InputParameters uniqueParams()
Parameters of this object that should be added to the NSFV action that are unique to this object.
std::unique_ptr< PiecewiseByBlockLambdaFunctor< ADReal > > _rho_u
Our local momentum functor.
static InputParameters validParams()
const Moose::Functor< ADReal > & _rho
Density.
virtual bool hasMaterialTimeDerivative() const override
virtual const Moose::FunctorBase< ADReal > & epsilon() const
A virtual method that allows us to reuse all the code from free-flow for porous.
virtual void computeResidualsAndAData(const FaceInfo &fi)
Helper method that computes the 'a' coefficients and AD residuals.
virtual ADReal computeQpResidual() override final
const bool _approximate_as
Whether to approximately calculate the 'a' coefficients.
static std::vector< std::string > listOfCommonParams()
ADReal _neighbor_residual
The neighbor residual.
ADReal _ae
The a coefficient for the element.
All objects that contribute to pressure-based (e.g.