https://mooseframework.inl.gov
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 {
24 public:
27  {
28  std::pair<Real, Real> weights_matrix;
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 
103  {
105  }
106 };
GradientLimiterType
Cell-gradient limiter variants used for MUSCL-style reconstructions.
Interface for interpolation methods that provide matrix and RHS contributions for advected face value...
virtual Moose::FV::GradientLimiterType gradientLimiter() const
Limiter used by interpolations that require limited gradients.
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.
This data structure is used to store geometric and variable related metadata about each cell face in ...
Definition: FaceInfo.h:37
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.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual bool needsGradients() const
Whether advected interpolation requires adjacent-cell gradients.
Matrix/RHS contribution for an advected face interpolation.
State argument for evaluating functors.