19 "MUSCL reconstruction with Venkatakrishnan-limited cell gradients using deferred " 22 "deferred_correction_factor",
24 "deferred_correction_factor>=0 & deferred_correction_factor<=1",
25 "Scales the deferred correction strength; 0 gives pure upwind (no deferred correction), 1 " 26 "gives full deferred correction. Values < 1 can improve fixed point robustness.");
33 _deferred_correction_factor(getParam<
Real>(
"deferred_correction_factor"))
40 const Real elem_value,
41 const Real neighbor_value,
44 const Real mass_flux)
const 46 mooseAssert(elem_grad && neighbor_grad,
47 "Venkatakrishnan deferred correction requires both element and neighbor gradients.");
49 const bool upwind_is_elem = mass_flux >= 0.0;
50 const Real phi_upwind = upwind_is_elem ? elem_value : neighbor_value;
51 const VectorValue<Real> * grad_upwind = upwind_is_elem ? elem_grad : neighbor_grad;
56 const Point face_delta = face.
faceCentroid() - upwind_centroid;
58 const Real phi_high = phi_upwind + (*grad_upwind * face_delta);
62 result.
weights_matrix = upwind_is_elem ? std::make_pair(1.0, 0.0) : std::make_pair(0.0, 1.0);
64 const Real phi_matrix =
65 result.weights_matrix.first * elem_value + result.weights_matrix.second * neighbor_value;
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.
const Point & faceCentroid() const
Returns the coordinates of the face centroid.
Registered base class for linear FV interpolation objects.
const Point & neighborCentroid() const
std::pair< Real, Real > weights_matrix
This data structure is used to store geometric and variable related metadata about each cell face in ...
registerMooseObject("MooseApp", FVAdvectedVenkatakrishnanDeferredCorrection)
const Point & elemCentroid() const
Returns the element centroids of the elements on the elem and neighbor sides of the face...
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Real _deferred_correction_factor
Scales the deferred correction strength (0 = upwind, 1 = full deferred correction).
Matrix/RHS contribution for an advected face interpolation.
static InputParameters validParams()
FVAdvectedVenkatakrishnanDeferredCorrection(const InputParameters ¶ms)
Multi-dimensional MUSCL reconstruction using Venkatakrishnan-limited cell gradients and deferred corr...