https://mooseframework.inl.gov
Loading...
Searching...
No Matches
FVAdvectedMUSCLDeferredCorrection.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
24{
25public:
27
29
32
33 bool needsGradients() const override { return true; }
34
35 GradientMethodName gradientMethodName() const override { return _gradient_method_name; }
36
37 AdvectedSystemContribution advectedInterpolate(const FaceInfo & face,
38 Real elem_value,
39 Real neighbor_value,
40 const VectorValue<Real> * elem_grad,
41 const VectorValue<Real> * neighbor_grad,
42 Real mass_flux) const override;
43
44private:
46 const GradientMethodName _gradient_method_name;
49};
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.
Multi-dimensional MUSCL reconstruction using cell gradients from a named gradient method and deferred...
bool needsGradients() const override
Whether advected interpolation requires adjacent-cell gradients.
Real _deferred_correction_factor
Scales the deferred correction strength (0 = upwind, 1 = full deferred correction).
const GradientMethodName _gradient_method_name
Gradient method used for the high-order reconstruction.
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.
GradientMethodName gradientMethodName() const override
Gradient method used by interpolations that require 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.