PINSFVRhieChowInterpolator

Performs interpolations and reconstructions of porosity and computes the Rhie-Chow face velocities.

Overview

This object inherits from INSFVRhieChowInterpolator and does all the same operations, but in addition optionally performs successive interpolation-reconstruction operations on the porosity, which in effect is a smoothing operation, helping to create monotone behavior near porosity discontinuities. These interpolation-reconstruction operations are triggered by setting the smoothing_layers parameter. One reconstruction corresponds to one interpolation to the face and reconstruction back to the center, effectively increasing the "stencil" of the porosity by one layer per smoothing_layer. If performing smoothing_layers on the porosity, the input porosity functor cannot be a MOOSE variable or a function of a MOOSE variable, as smoothing_layers would then require algebraic ghosting of the solution vectors.

Input Parameters

  • porosityThe porosity. 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:The porosity. A functor is any of the following: a variable, a functor material property, a function, a post-processor, or a number.

  • 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

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. 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.

  • smoothing_layers0The number of interpolation-reconstruction operations to perform on the porosity

    Default:0

    C++ Type:unsigned short

    Unit:(no unit assumed)

    Controllable:No

    Description:The number of interpolation-reconstruction operations to perform on the porosity

  • 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)

    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.

  • 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)

    Options:force-consistent, pressure-consistent

    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)

    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

    Unit:(no unit assumed)

    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

    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.

Parallel Execution Tuning Parameters