https://mooseframework.inl.gov
Loading...
Searching...
No Matches
FVAdvectedVanLeerWeightBased.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
14
21{
22public:
24
26
29
30 bool needsGradients() const override { return true; }
31
32 AdvectedSystemContribution advectedInterpolate(const FaceInfo & face,
33 Real elem_value,
34 Real neighbor_value,
35 const VectorValue<Real> * elem_grad,
36 const VectorValue<Real> * neighbor_grad,
37 Real mass_flux) const override;
38
39 Real advectedInterpolateValue(const FaceInfo & face,
40 Real elem_value,
41 Real neighbor_value,
42 const VectorValue<Real> * elem_grad,
43 const VectorValue<Real> * neighbor_grad,
44 Real mass_flux) const override;
45
46private:
48 const bool _limit_to_linear;
50 const Real _blending_factor;
51};
Interface for interpolation methods that provide matrix and RHS contributions for advected face value...
virtual Real advectedInterpolateValue(const FaceInfo &face, Real elem_value, Real neighbor_value, const VectorValue< Real > *elem_grad, const VectorValue< Real > *neighbor_grad, Real mass_flux) const
Compute the advected face value.
virtual AdvectedSystemContribution advectedInterpolate(const FaceInfo &face, Real elem_value, Real neighbor_value, const VectorValue< Real > *elem_grad, const VectorValue< Real > *neighbor_grad, Real mass_flux) const =0
Compute the matrix weights for the advected face value.
Van Leer interpolation for advected quantities that blends between upwind and the higher-order limite...
const bool _limit_to_linear
Whether to clamp the blending to be no more downwind-biased than linear.
AdvectedSystemContribution advectedInterpolate(const FaceInfo &face, Real elem_value, Real neighbor_value, const VectorValue< Real > *elem_grad, const VectorValue< Real > *neighbor_grad, Real mass_flux) const override
Compute the matrix weights for the advected face value.
Real advectedInterpolateValue(const FaceInfo &face, Real elem_value, Real neighbor_value, const VectorValue< Real > *elem_grad, const VectorValue< Real > *neighbor_grad, Real mass_flux) const override
Compute the advected face value.
const Real _blending_factor
Scales the high-order blending strength (0 = upwind, 1 = full limited blending).
bool needsGradients() const override
Whether advected interpolation requires adjacent-cell gradients.
Registered base class for linear FV interpolation objects.
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition FaceInfo.h:38
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.