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,
42 const VectorValue<Real> *
const elem_grad,
43 const VectorValue<Real> *
const neighbor_grad,
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;
registerMooseObject("MooseApp", FVAdvectedVenkatakrishnanDeferredCorrection)
Multi-dimensional MUSCL reconstruction using Venkatakrishnan-limited cell gradients and deferred corr...
static InputParameters validParams()
Real _deferred_correction_factor
Scales the deferred correction strength (0 = upwind, 1 = full deferred correction).
FVAdvectedVenkatakrishnanDeferredCorrection(const InputParameters ¶ms)
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.
Registered base class for linear FV interpolation objects.
static InputParameters validParams()
This data structure is used to store geometric and variable related metadata about each cell face in ...
const Point & neighborCentroid() const
const Point & elemCentroid() const
Returns the element centroids of the elements on the elem and neighbor sides of the face.
const Point & faceCentroid() const
Returns the coordinates of the face centroid.
Matrix/RHS contribution for an advected face interpolation.
std::pair< Real, Real > weights_matrix