https://mooseframework.inl.gov
Loading...
Searching...
No Matches
FVAdvectedInterpolationMethod.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 "FaceInfo.h"
13#include "GradientLimiterType.h"
14#include "MooseFunctor.h"
15
16#include <utility>
17
23{
24public:
27 {
28 std::pair<Real, Real> weights_matrix;
29 Real rhs_face_value = 0.0;
30 };
31
43 Real elem_value,
44 Real neighbor_value,
45 const VectorValue<Real> * elem_grad,
46 const VectorValue<Real> * neighbor_grad,
47 Real mass_flux) const = 0;
48
59 const FaceInfo & face,
60 const Moose::StateArg & state,
61 const Real mass_flux) const;
62
73 virtual Real advectedInterpolateValue(const FaceInfo & face,
74 Real elem_value,
75 Real neighbor_value,
76 const VectorValue<Real> * elem_grad,
77 const VectorValue<Real> * neighbor_grad,
78 Real mass_flux) const;
79
90 const FaceInfo & face,
91 const Moose::StateArg & state,
92 const Real mass_flux) const;
93
97 virtual bool needsGradients() const { return false; }
98
106};
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 Moose::FV::GradientLimiterType gradientLimiter() const
Limiter used by interpolations that require limited gradients.
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.
virtual bool needsGradients() const
Whether advected interpolation requires adjacent-cell gradients.
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition FaceInfo.h:38
Base class template for functor objects.
GradientLimiterType
Cell-gradient limiter variants used for MUSCL-style reconstructions.
@ None
No gradient limiting.
Matrix/RHS contribution for an advected face interpolation.
State argument for evaluating functors.