call Diffuse_computeFluxLimiter(integer(in) :: idcoef, integer(in) :: ifunc, integer(in) :: ifl, integer(in) :: iflOut, integer(in) :: ieddi3, integer(in) :: mode, real(INOUT) :: solnData(:,lbUI:,lbUJ:,lbUK:), integer(in),value :: lbIU,lbUJ,lbUK, integer(IN) :: blockID, OPTIONAL,integer(IN) :: gcLayers )
This routine computes flux limiter factors and returns them in UNK variables. It does not apply the limiter by modifying diffusion coefficients or in any other way.
idcoef : index into solution vector, indicating a variable that holds the coefficient to which the limiter is applied. This variable is used only for input. ifunc : index into solution vector giving the quantity whose flux is to be limited. This gives either the quantity directly if iDenForIfunc is < 1, or must be multiplied by the variable given by iDenForIfunc. This variable is used only for input. iDenForIfunc : A density to multiply ifunc by, or -1. This variable is used only for input. ifl : index into solution vector giving the limiting value that would be applied to the variable given by idcoef such that the latter is less than or equal to the former. This variable is used only for input. iflOut : index into solution vector to put flux limiter factor. Note that this may be one of the variables given by the previous four dummy arguments that are used as inputs. mode : Flux limiter mode. solnData : The block data on which to operate lbUI,lbUJ,lbUK: lower bounds of assumed-shape array solnData blockID : Identifies the block on which to operate gcLayers : In how many layers of guard cells, in additionm to the interior cells, the flux limiter coefficients are desired. Note that one more layer is required in the variable given by ifl for input, for computing the gradient.
Modifies flux limiter variables (as requested by argument iflOut) in the solution storage UNK. On output it will be overwritten with a value three times the flux limiter factor lambda, which should be familiar from the literature on flux limiters. The value of lambda should be in the range [ 0, 1/3 ].