INSFVRhieChowInterpolator

Computes the Rhie-Chow velocity based on gathered 'a' coefficient data.

Overview

This object coordinates everything about an incompressible Navier-Stokes finite volume (INSFV) simulation related to Rhie-Chow. This object performs the following activities

  • Loops through all momentum residual objects and gathers information related to

  • coefficients: these are the coefficients that multiply the on-diagonal/current-cell velocity solution in a linearized writing of the momentum equation

  • Computes the Rhie-Chow velocity according to Eq. (1) when requested by advection kernels or postprocessors

(1)

Accessing 'a' coefficient data in nonstandard locations

If you ever come across an error like


Attempted access into CellCenteredMapFunctor 'a' with a key that does not yet
exist in the map. Make sure to fill your CellCenteredMapFunctor for all elements
you will attempt to access later.

then it means an object you're using in your input file is attempting to access Rhie-Chow data in unexpected locations. This can potentially be remedied by setting the parameter pull_all_nonlocal_a = true. This will tell all processes to pull 'a' coefficient data for all elements they have access to (which may not be all the elements in the mesh if the mesh is distributed) from the processes that own the 'a' coefficient data.

Input Parameters

  • pressureThe pressure variable.

    C++ Type:VariableName

    Controllable:No

    Description:The pressure variable.

  • uThe x-component of velocity

    C++ Type:VariableName

    Controllable:No

    Description:The x-component of velocity

Required Parameters

  • a_uFor simulations in which the advecting velocities are aux variables, this parameter must be supplied. It represents the on-diagonal coefficients for the 'x' component velocity, solved via the Navier-Stokes equations.

    C++ Type:MooseFunctorName

    Controllable:No

    Description:For simulations in which the advecting velocities are aux variables, this parameter must be supplied. It represents the on-diagonal coefficients for the 'x' component velocity, solved via the Navier-Stokes equations.

  • a_vFor simulations in which the advecting velocities are aux variables, this parameter must be supplied when the mesh dimension is greater than 1. It represents the on-diagonal coefficients for the 'y' component velocity, solved via the Navier-Stokes equations.

    C++ Type:MooseFunctorName

    Controllable:No

    Description:For simulations in which the advecting velocities are aux variables, this parameter must be supplied when the mesh dimension is greater than 1. It represents the on-diagonal coefficients for the 'y' component velocity, solved via the Navier-Stokes equations.

  • a_wFor simulations in which the advecting velocities are aux variables, this parameter must be supplied when the mesh dimension is greater than 2. It represents the on-diagonal coefficients for the 'z' component velocity, solved via the Navier-Stokes equations.

    C++ Type:MooseFunctorName

    Controllable:No

    Description:For simulations in which the advecting velocities are aux variables, this parameter must be supplied when the mesh dimension is greater than 2. It represents the on-diagonal coefficients for the 'z' component velocity, solved via the Navier-Stokes equations.

  • blockThe list of blocks (ids or names) that this object will be applied

    C++ Type:std::vector<SubdomainName>

    Controllable:No

    Description:The list of blocks (ids or names) that this object will be applied

  • prop_getter_suffixAn optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

    C++ Type:MaterialPropertyName

    Controllable:No

    Description:An optional suffix parameter that can be appended to any attempt to retrieve/get material properties. The suffix will be prepended with a '_' character.

  • vThe y-component of velocity

    C++ Type:VariableName

    Controllable:No

    Description:The y-component of velocity

  • velocity_interp_methodrcThe interpolation to use for the velocity. Options are 'average' and 'rc' which stands for Rhie-Chow. The default is Rhie-Chow.

    Default:rc

    C++ Type:MooseEnum

    Options:average, rc

    Controllable:No

    Description:The interpolation to use for the velocity. Options are 'average' and 'rc' which stands for Rhie-Chow. The default is Rhie-Chow.

  • wThe z-component of velocity

    C++ Type:VariableName

    Controllable:No

    Description:The z-component of velocity

Optional Parameters

  • absolute_value_vector_tagsThe tags for the vectors this residual object should fill with the absolute value of the residual contribution

    C++ Type:std::vector<TagName>

    Controllable:No

    Description:The tags for the vectors this residual object should fill with the absolute value of the residual contribution

  • extra_matrix_tagsThe extra tags for the matrices this Kernel should fill

    C++ Type:std::vector<TagName>

    Controllable:No

    Description:The extra tags for the matrices this Kernel should fill

  • extra_vector_tagsThe extra tags for the vectors this Kernel should fill

    C++ Type:std::vector<TagName>

    Controllable:No

    Description:The extra tags for the vectors this Kernel should fill

  • matrix_tagssystemThe tag for the matrices this Kernel should fill

    Default:system

    C++ Type:MultiMooseEnum

    Options:nontime, system

    Controllable:No

    Description:The tag for the matrices this Kernel should fill

  • vector_tagsnontimeThe tag for the vectors this Kernel should fill

    Default:nontime

    C++ Type:MultiMooseEnum

    Options:nontime, time

    Controllable:No

    Description:The tag for the vectors this Kernel should fill

Tagging Parameters

  • allow_duplicate_execution_on_initialFalseIn the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

    Default:False

    C++ Type:bool

    Controllable:No

    Description:In the case where this UserObject is depended upon by an initial condition, allow it to be executed twice during the initial setup (once before the IC and again after mesh adaptivity (if applicable).

  • 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:Yes

    Description:Set the enabled status of the MooseObject.

  • execution_order_group0Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

    Default:0

    C++ Type:int

    Controllable:No

    Description:Execution order groups are executed in increasing order (e.g., the lowest number is executed first). Note that negative group numbers may be used to execute groups before the default (0) group. Please refer to the user object documentation for ordering of user object execution within a group.

  • force_postauxFalseForces the UserObject to be executed in POSTAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in POSTAUX

  • force_preauxFalseForces the UserObject to be executed in PREAUX

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Forces the UserObject to be executed in PREAUX

  • use_displaced_meshFalseWhether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether or not this object should use the displaced mesh for computation. Note that in the case this is true but no displacements are provided in the Mesh block the undisplaced mesh will still be used.

Advanced Parameters

  • mass_momentum_systemnl0The nonlinear system in which the monolithic momentum and continuity equations are located.

    Default:nl0

    C++ Type:NonlinearSystemName

    Controllable:No

    Description:The nonlinear system in which the monolithic momentum and continuity equations are located.

Nonlinear Solver Parameters

  • pull_all_nonlocal_aFalseWhether to pull all nonlocal 'a' coefficient data to our process. Note that 'nonlocal' means elements that we have access to (this may not be all the elements in the mesh if the mesh is distributed) but that we do not own.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to pull all nonlocal 'a' coefficient data to our process. Note that 'nonlocal' means elements that we have access to (this may not be all the elements in the mesh if the mesh is distributed) but that we do not own.

Parallel Execution Tuning Parameters