https://mooseframework.inl.gov
Loading...
Searching...
No Matches
INSFVMassAdvection.C
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#include "INSFVMassAdvection.h"
11#include "NS.h"
12
14
17{
19 params.addClassDescription("Object for advecting mass, e.g. rho");
20 params.addRequiredParam<MooseFunctorName>(NS::density, "Density functor");
21 return params;
22}
23
25 : INSFVAdvectionKernel(params), _rho(getFunctor<ADReal>(NS::density))
26{
27}
28
31{
32 const auto v = velocity();
33 const auto rho_face = _rho(makeFace(*_face_info,
34 limiterType(_advected_interp_method),
37
38 return _normal * v * rho_face;
39}
DualNumber< Real, DNDerivativeType, true > ADReal
const double v
registerMooseObject("NavierStokesApp", INSFVMassAdvection)
RealVectorValue _normal
const FaceInfo * _face_info
Moose::FaceArg makeFace(const FaceInfo &fi, const Moose::FV::LimiterType limiter_type, const bool elem_is_upwind, const bool correct_skewness=false, const Moose::StateArg *state_limiter=nullptr) const
An advection kernel that implements interpolation schemes specific to Navier-Stokes flow physics.
ADRealVectorValue velocity() const
Moose::FV::InterpMethod _advected_interp_method
The interpolation method to use for the advected quantity.
static InputParameters validParams()
A flux kernel transporting mass across cell faces.
const Moose::Functor< ADReal > & _rho
Density.
INSFVMassAdvection(const InputParameters &params)
static InputParameters validParams()
virtual ADReal computeQpResidual() override
Moose::StateArg determineState() const
auto raw_value(const Eigen::Map< T > &in)
static const std::string density
Definition NS.h:34