- pressureThe pressure variable.
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:The pressure variable.
- uThe x-component of velocity
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:The x-component of velocity
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
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.
Correcting for non-velocity-dependent volume forces
The standard Rhie-Chow interpolation may introduce oscillatory errors in the velocity field under block-localized volume forces that do not depend on velocity, e.g., a pump force.
The user can activate the correction for body forces by setting correct_volumetric_force = true
. Then, the list of the names of the functors representing the body forces must be defined under the volumetric_force_functors
parameter. Finally, the user can select two possible methods for correcting for volume force under the volume_force_correction_method
parameter:
pressure-consistent
, which deactivates the Rhie-Chow correaction on faces in which the pressure correction is inconsistent due to the volume forcesforce-consistent
, which deactivates the Rhie-Chow correction in the regions with localized volume forces since the pressure-velocity system is already linked by the volume force in these regions.
The latter method is the default and is generally preferred due to its lower computational cost.
Input 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. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
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 functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
- 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. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
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 functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
- 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. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
C++ Type:MooseFunctorName
Unit:(no unit assumed)
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. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.
- blockThe list of blocks (ids or names) that this object will be applied
C++ Type:std::vector<SubdomainName>
Unit:(no unit assumed)
Controllable:No
Description:The list of blocks (ids or names) that this object will be applied
- correct_volumetric_forceFalseFlag to activate volume force corrections.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:Flag to activate volume force corrections.
- disp_xThe x-component of displacement
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:The x-component of displacement
- disp_yThe y-component of displacement
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:The y-component of displacement
- disp_zThe z-component of displacement
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:The z-component of displacement
- 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
Unit:(no unit assumed)
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.
- use_interpolated_stateFalseFor the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
Default:False
C++ Type:bool
Unit:(no unit assumed)
Controllable:No
Description:For the old and older state use projected material properties interpolated at the quadrature points. To set up projection use the ProjectedStatefulMaterialStorageAction.
- vThe y-component of velocity
C++ Type:VariableName
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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.
- volume_force_correction_methodforce-consistentThe method used for correcting the Rhie-Chow coefficients for a volume force.
Default:force-consistent
C++ Type:MooseEnum
Unit:(no unit assumed)
Controllable:No
Description:The method used for correcting the Rhie-Chow coefficients for a volume force.
- volumetric_force_functorsThe names of the functors with the volumetric force sources.
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:The names of the functors with the volumetric force sources.
- wThe z-component of velocity
C++ Type:VariableName
Unit:(no unit assumed)
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>
Unit:(no unit assumed)
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>
Unit:(no unit assumed)
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>
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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>
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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
Unit:(no unit assumed)
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.