- limiternoneLimiter to apply to gradients produced by this method.
Default:none
C++ Type:MooseEnum
Controllable:No
Description:Limiter to apply to gradients produced by this method.
FVGreenGaussGradient
Overview
This method computes gradients for cell-centered linear finite-volume variables using the Green-Gauss theorem Moukalled et al. (2016). For a cell with volume , the method approximates the gradient of a cell-centered field as
where ranges over the cell faces, is the face value interpolated from adjacent cell-centered values and boundary data, and is the outward face area vector.
Use this method when a linear FV variable or a gradient-based interpolation method needs gradients. MOOSE also provides two built-in method names for convenient input into gradient method parameters:
green-gauss, equivalent to anFVGreenGaussGradientwithlimiter = nonegreen-gauss-venkatakrishnan, equivalent to anFVGreenGaussGradientwithlimiter = venkatakrishnan
Named methods in [FVGradientMethods] are useful when several variables or interpolation methods should use the same gradient settings.
Limiters
The optional "limiter" parameter controls whether MOOSE limits the Green-Gauss gradient before using it. With limiter = none, the Green-Gauss result is used directly. With limiter = venkatakrishnan, MOOSE first computes the Green-Gauss gradient and then applies the Venkatakrishnan limiter Venkatakrishnan (1993). A limiter can reduce overshoots near steep solution changes.
Example Syntax
Declare a named Green-Gauss gradient method in [FVGradientMethods]:
[FVGradientMethods<<<{"href": "../../syntax/FVGradientMethods/index.html"}>>>]
[gg]
type = FVGreenGaussGradient<<<{"description": "Green-Gauss cell-centered gradient method.", "href": "FVGreenGaussGradient.html"}>>>
[]
[](../moose/test/tests/variables/linearfv/shared-gradient-method.i)Use the method as the default gradient method for a linear FV variable through "gradient_method":
[Variables<<<{"href": "../../syntax/Variables/index.html"}>>>]
[u]
type = MooseLinearVariableFVReal<<<{"description": "Base class for Moose variables. This should never be the terminal object type", "href": "../variables/MooseLinearVariableFV.html"}>>>
solver_sys<<<{"description": "If this variable is a solver variable, this is the solver system to which it should be added."}>>> = 'u_sys'
initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 1.0
gradient_method<<<{"description": "Default gradient computation method to register when a consumer requests gradients from this variable. This may be a built-in method name like 'green-gauss' or 'green-gauss-venkatakrishnan', or the name of an object in [FVGradientMethods]."}>>> = gg
[]
[](../moose/test/tests/variables/linearfv/shared-gradient-method.i)The same named method can also be used by a gradient-based interpolation method, such as FVAdvectedMUSCLDeferredCorrection:
[FVInterpolationMethods<<<{"href": "../../syntax/FVInterpolationMethods/index.html"}>>>]
[muscl]
type = FVAdvectedMUSCLDeferredCorrection<<<{"description": "MUSCL reconstruction with cell gradients from a named gradient method using deferred correction.", "href": "../fvinterpolationmethods/FVAdvectedMUSCLDeferredCorrection.html"}>>>
gradient_method<<<{"description": "Gradient method used to compute cell gradients for the high-order reconstruction."}>>> = gg
deferred_correction_factor<<<{"description": "Scales the deferred correction strength; 0 gives pure upwind (no deferred correction), 1 gives full deferred correction. Values < 1 can improve fixed point robustness."}>>> = 1.0
[]
[](../moose/test/tests/variables/linearfv/shared-gradient-method.i)Input Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.