FVPressureJumpGreenGaussGradient

Computes a Green-Gauss pressure gradient that excludes the pressure jump across baffles, using a one-sided face pressure for each cell, so the zero-thickness jump does not appear as a mesh-dependent gradient in the adjacent cells.

Description

FVPressureJumpGreenGaussGradient computes the cell pressure gradient without interpreting a prescribed zero-thickness baffle pressure jump as a resolved pressure gradient. On an ordinary internal face it uses the standard interpolated face pressure. On a baffle face it recovers the two one-sided face pressures from the same conservative half-cell flux relation used by LinearFVPressureCorrectionDiffusionJump.

For an interface between cells and , let be the pressure jump oriented from to . With the half-cell conductances and explicit corrections on side , defined with the half-cell distance , normal mobility , and correction vector in LinearFVPressureCorrectionDiffusionJump, the one-sided mass fluxes and , and common oriented face mass flux , the two face pressures are

The flux and the series-weighted flux are derived in LinearFVPressureCorrectionDiffusionJump. The terms make each face pressure follow the body-force pressure slope of its own side, so a fluid at rest across a porosity or density jump has the hydrostatic face pressures.

The explicit corrections use the previously published geometric pressure gradient, matching the deferred nonorthogonal correction in the pressure equation. The recovered one-sided face values satisfy both the prescribed jump and equal flux from the two half cells. Each value contributes only to the Green-Gauss surface sum of the cell on its side of the baffle. If the half-cell geometry is degenerate, the method falls back to jump-adjusted geometric interpolation.

Use this method as the default "gradient_method" for a pressure variable associated with a PorousRhieChowMassFlux that has pressure-jump models. When FVReconstructedPressureGradient is used for momentum-pressure coupling, also select this method with "base_gradient_method". Momentum pressure kernels can then request the reconstructed method explicitly while diffusion corrections and other pressure-gradient consumers obtain the jump-aware gradient from the variable.

Example Input Syntax

This example defines the jump-aware solution gradient and the reconstructed coupling gradient.

[FVGradientMethods<<<{"href": "../../syntax/FVGradientMethods/index.html"}>>>]
  [jump_aware]
    type = FVPressureJumpGreenGaussGradient<<<{"description": "Computes a Green-Gauss pressure gradient that excludes the pressure jump across baffles, using a one-sided face pressure for each cell, so the zero-thickness jump does not appear as a mesh-dependent gradient in the adjacent cells.", "href": "FVPressureJumpGreenGaussGradient.html"}>>>
  []
  [velocity_jump_aware]
    type = FVVelocityJumpGreenGaussGradient<<<{"description": "Computes a Green-Gauss velocity gradient using one-sided face states on pressure baffles.", "href": "FVVelocityJumpGreenGaussGradient.html"}>>>
  []
  [reconstructed]
    type = FVReconstructedPressureGradient<<<{"description": "Reconstructs and relaxes the pressure gradient used for Rhie-Chow momentum coupling.", "href": "FVReconstructedPressureGradient.html"}>>>
    base_gradient_method<<<{"description": "Gradient method used before Rhie-Chow has computed reconstructed gradients."}>>> = jump_aware
    gradient_relaxation<<<{"description": "Relaxation factor applied when updating the reconstructed pressure-coupling gradient."}>>> = 1.0
  []
[]
(modules/navier_stokes/test/tests/finite_volume/pins/channel-flow/linear-segregated/2d-diagonal-baffle/porous-baffle-straight-diagonal.i)

The pressure variable selects the jump-aware method as its default gradient.

[Variables<<<{"href": "../../syntax/Variables/index.html"}>>>]
  [pressure]
    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."}>>> = pressure_system
    initial_condition<<<{"description": "Specifies a constant initial condition for this variable"}>>> = 0.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]."}>>> = jump_aware
  []
[]
(modules/navier_stokes/test/tests/finite_volume/pins/channel-flow/linear-segregated/2d-diagonal-baffle/porous-baffle-straight-diagonal.i)

The momentum pressure kernel requests the reconstructed method explicitly.

[LinearFVKernels<<<{"href": "../../syntax/LinearFVKernels/index.html"}>>>]
  [u_pressure]
    type = LinearPWCNSFVMomentumPressure<<<{"description": "Adds the porosity-weighted pressure gradient to a porous momentum equation.", "href": "../linearfvkernels/LinearPWCNSFVMomentumPressure.html"}>>>
    variable<<<{"description": "The name of the variable whose linear system this object contributes to"}>>> = superficial_u
    momentum_component<<<{"description": "The component of the momentum equation that this kernel applies to."}>>> = 'x'
    porosity<<<{"description": "The porosity functor. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = porosity
    pressure<<<{"description": "The pressure variable whose gradient should be used."}>>> = pressure
    gradient_method<<<{"description": "Gradient method to use for the pressure gradient in this kernel. If omitted, the pressure variable's default gradient method is used."}>>> = reconstructed
  []
[]
(modules/navier_stokes/test/tests/finite_volume/pins/channel-flow/linear-segregated/2d-diagonal-baffle/porous-baffle-straight-diagonal.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.

Input Files