https://mooseframework.inl.gov
Loading...
Searching...
No Matches
FVAdvectedMinmodWeightBased.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.
Minmod interpolation for advected quantities that blends between upwind and the higher-order limited ...
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.
bool needsGradients() const override
Whether advected interpolation requires adjacent-cell gradients.
const bool _limit_to_linear
Whether to clamp the blending to be no more downwind-biased than linear.
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).
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.