- add_scalar_equationFalseWhether to add the scalar transport equation. This parameter is not necessary if using the Physics syntax
Default:False
C++ Type:bool
Controllable:No
Description:Whether to add the scalar transport equation. This parameter is not necessary if using the Physics syntax
- blockBlocks (subdomains) that this Physics is active on.
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:Blocks (subdomains) that this Physics is active on.
- system_namesnl0 Name of the solver system(s) for the variables. If a single name is specified, that system is used for all solver variables.
Default:nl0
C++ Type:std::vector<SolverSystemName>
Controllable:No
Description:Name of the solver system(s) for the variables. If a single name is specified, that system is used for all solver variables.
- transientsame_as_problemWhether the physics is to be solved as a transient
Default:same_as_problem
C++ Type:MooseEnum
Controllable:No
Description:Whether the physics is to be solved as a transient
- verboseFalseFlag to facilitate debugging a Physics
Default:False
C++ Type:bool
Controllable:No
Description:Flag to facilitate debugging a Physics
Navier Stokes Scalar Transport / WCNSFVScalarTransportPhysics
Define the Navier Stokes weakly-compressible scalar field transport equation(s) using the nonlinear finite volume discretization
Equation
This Physics object creates the kernels and boundary conditions to solve the advection-diffusion-reaction equation for several scalar quantities advected by the flow.
where:
is the i-th scalar quantity
\mathbf{v} is the advecting velocity
the i-th scalar diffusivity
is the i-th precursor source
is a reaction coefficient. It should be negative for a loss term
The kernels created are:
FVFunctorTimeKernel for the time derivative for a transient solve
INSFVScalarFieldAdvection for the scalar advection term
FVDiffusion for the scalar diffusion term
FVCoupledForce for the reaction terms
FVCoupledForce for the source terms
Coupling with other Physics
Scalar advection equations can be solved concurrently with the flow equations by combining the Navier Stokes Flow / WCNSFVFlowPhysics with the WCNSFVScalarTransportPhysics
. The following input performs this coupling for incompressible flow in a 2D channel. No system parameters are passed, so the equations are solved in a fully coupled manner in the same nonlinear system.
[Physics<<<{"href": "../../syntax/Physics/index.html"}>>>]
[NavierStokes<<<{"href": "../../syntax/Physics/NavierStokes/index.html"}>>>]
[Flow<<<{"href": "../../syntax/Physics/NavierStokes/Flow/index.html"}>>>]
[flow]
compressibility<<<{"description": "Compressibility constraint for the Navier-Stokes equations."}>>> = 'incompressible'
density<<<{"description": "The name of the density. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${rho}
dynamic_viscosity<<<{"description": "The name of the dynamic viscosity. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${mu}
inlet_boundaries<<<{"description": "Names of inlet boundaries"}>>> = 'left'
momentum_inlet_types<<<{"description": "Types of inlet boundaries for the momentum equation."}>>> = 'fixed-velocity'
momentum_inlet_function = '1 0'
wall_boundaries<<<{"description": "Names of wall boundaries"}>>> = 'top bottom'
momentum_wall_types<<<{"description": "Types of wall boundaries for the momentum equation"}>>> = 'noslip noslip'
outlet_boundaries<<<{"description": "Names of outlet boundaries"}>>> = 'right'
momentum_outlet_types<<<{"description": "Types of outlet boundaries for the momentum equation"}>>> = 'fixed-pressure'
pressure_function = '0'
mass_advection_interpolation<<<{"description": "The numerical scheme to use for interpolating density, as an advected quantity, to the face."}>>> = 'average'
momentum_advection_interpolation<<<{"description": "The numerical scheme to use for interpolating momentum/velocity, as an advected quantity, to the face."}>>> = 'average'
[]
[]
[FluidHeatTransfer<<<{"href": "../../syntax/Physics/NavierStokes/FluidHeatTransfer/index.html"}>>>]
[heat]
thermal_conductivity<<<{"description": "The name of the fluid thermal conductivity for each block. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${k}
specific_heat<<<{"description": "The name of the specific heat. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${cp}
energy_inlet_types<<<{"description": "Types for the inlet boundaries for the energy equation."}>>> = 'fixed-temperature'
energy_inlet_function = '1'
energy_wall_types<<<{"description": "Types for the wall boundaries for the energy equation."}>>> = 'heatflux heatflux'
energy_wall_function = '0 0'
energy_advection_interpolation<<<{"description": "The numerical scheme to use for interpolating energy/temperature, as an advected quantity, to the face."}>>> = 'average'
[]
[]
[ScalarTransport<<<{"href": "../../syntax/Physics/NavierStokes/ScalarTransport/index.html"}>>>]
[heat]
passive_scalar_names<<<{"description": "Vector containing the names of the advected scalar variables."}>>> = 'scalar'
passive_scalar_diffusivity<<<{"description": "Functor names for the diffusivities used for the passive scalar fields. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = ${diff}
passive_scalar_source<<<{"description": "Passive scalar sources. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = 0.1
passive_scalar_coupled_source<<<{"description": "Coupled variable names for the sources used for the passive scalar fields. If multiple sources for each equation are specified, major (outer) ordering by equation. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = U
passive_scalar_coupled_source_coeff<<<{"description": "Coupled variable multipliers for the sources used for the passive scalar fields. If multiple sources for each equation are specified, major (outer) ordering by equation."}>>> = 0.1
passive_scalar_inlet_types<<<{"description": "Types for the inlet boundaries for the passive scalar equation."}>>> = 'fixed-value'
passive_scalar_inlet_function = '1'
passive_scalar_advection_interpolation<<<{"description": "The numerical scheme to use for interpolating passive scalar field, as an advected quantity, to the face."}>>> = 'average'
[]
[]
[]
[]
(moose/modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/2d-scalar-transport-physics.i)Input Parameters
- active__all__ If specified only the blocks named will be visited and made active
Default:__all__
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified only the blocks named will be visited and made active
- 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.
- define_variablesTrueWhether to define variables if the variables with the specified names do not exist. Note that if the variables are defined externally from the Physics, the initial conditions will not be created in the Physics either.
Default:True
C++ Type:bool
Controllable:No
Description:Whether to define variables if the variables with the specified names do not exist. Note that if the variables are defined externally from the Physics, the initial conditions will not be created in the Physics either.
- ghost_layers2Number of layers of elements to ghost near process domain boundaries
Default:2
C++ Type:unsigned short
Controllable:No
Description:Number of layers of elements to ghost near process domain boundaries
- inactiveIf specified blocks matching these identifiers will be skipped.
C++ Type:std::vector<std::string>
Controllable:No
Description:If specified blocks matching these identifiers will be skipped.
Advanced Parameters
- coupled_flow_physicsWCNSFVFlowPhysics generating the velocities
C++ Type:PhysicsName
Controllable:No
Description:WCNSFVFlowPhysics generating the velocities
- coupled_turbulence_physicsTurbulence Physics coupled with this Physics
C++ Type:PhysicsName
Controllable:No
Description:Turbulence Physics coupled with this Physics
Coupled Physics Parameters
- dont_create_aux_kernelsFalseWhether to skip the 'add_aux_kernel' task
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_aux_kernel' task
- dont_create_aux_variablesFalseWhether to skip the 'add_aux_variable' task
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_aux_variable' task
- dont_create_bcsFalseWhether to skip the 'add_bc' task for each boundary condition type
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_bc' task for each boundary condition type
- dont_create_correctorsFalseWhether to skip the 'add_correctors' task
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_correctors' task
- dont_create_functionsFalseWhether to skip the 'add_function' task
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_function' task
- dont_create_icsFalseWhether to skip the 'add_ic' task
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_ic' task
- dont_create_kernelsFalseWhether to skip the 'add_kernel' task for each kernel type
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_kernel' task for each kernel type
- dont_create_materialsFalseWhether to skip the 'add_material' task for each material type
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_material' task for each material type
- dont_create_postprocessorsFalseWhether to skip the 'add_postprocessors' task
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_postprocessors' task
- dont_create_solver_variablesFalseWhether to skip the 'add_variable' task
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_variable' task
- dont_create_user_objectsFalseWhether to skip the 'add_user_object' task. This does not apply to UserObject derived classes being created on a different task (for example: postprocessors, VPPs, correctors)
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_user_object' task. This does not apply to UserObject derived classes being created on a different task (for example: postprocessors, VPPs, correctors)
- dont_create_vectorpostprocessorsFalseWhether to skip the 'add_vectorpostprocessors' task
Default:False
C++ Type:bool
Controllable:No
Description:Whether to skip the 'add_vectorpostprocessors' task
Reduce Physics Object Creation Parameters
- initial_from_file_timestepLATESTGives the time step number (or "LATEST") for which to read the Exodus solution
Default:LATEST
C++ Type:std::string
Controllable:No
Description:Gives the time step number (or "LATEST") for which to read the Exodus solution
- initialize_variables_from_mesh_fileFalseDetermines if the variables that are added by the action are initializedfrom the mesh file (only for Exodus format)
Default:False
C++ Type:bool
Controllable:No
Description:Determines if the variables that are added by the action are initializedfrom the mesh file (only for Exodus format)
Restart From Exodus Parameters
- initial_scalar_variablesInitial values of the passive scalar variables.
C++ Type:std::vector<FunctionName>
Unit:(no unit assumed)
Controllable:No
Description:Initial values of the passive scalar variables.
- passive_scalar_namesVector containing the names of the advected scalar variables.
C++ Type:std::vector<NonlinearVariableName>
Unit:(no unit assumed)
Controllable:No
Description:Vector containing the names of the advected scalar variables.
Variable Parameters
- passive_scalar_advection_interpolationupwindThe numerical scheme to use for interpolating passive scalar field, as an advected quantity, to the face.
Default:upwind
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to use for interpolating passive scalar field, as an advected quantity, to the face.
- passive_scalar_face_interpolationaverageThe numerical scheme to interpolate the passive scalar field variables to the face (separate from the advected quantity interpolation).
Default:average
C++ Type:MooseEnum
Controllable:No
Description:The numerical scheme to interpolate the passive scalar field variables to the face (separate from the advected quantity interpolation).
- passive_scalar_scalingThe scaling factor for the passive scalar field variables.
C++ Type:std::vector<double>
Unit:(no unit assumed)
Controllable:No
Description:The scaling factor for the passive scalar field variables.
- passive_scalar_two_term_bc_expansionTrueIf a two-term Taylor expansion is needed for the determination of the boundary valuesof the advected passive scalar field.
Default:True
C++ Type:bool
Controllable:No
Description:If a two-term Taylor expansion is needed for the determination of the boundary valuesof the advected passive scalar field.
- preconditioningdeferWhich preconditioning to use/add for this Physics, or whether to defer to the Preconditioning block, or another Physics
Default:defer
C++ Type:MooseEnum
Controllable:No
Description:Which preconditioning to use/add for this Physics, or whether to defer to the Preconditioning block, or another Physics
Numerical Scheme Parameters
- passive_scalar_coupled_sourceCoupled variable names for the sources used for the passive scalar fields. If multiple sources for each equation are specified, major (outer) ordering by equation. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:std::vector<std::vector<MooseFunctorName>>
Unit:(no unit assumed)
Controllable:No
Description:Coupled variable names for the sources used for the passive scalar fields. If multiple sources for each equation are specified, major (outer) ordering by equation. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- passive_scalar_coupled_source_coeffCoupled variable multipliers for the sources used for the passive scalar fields. If multiple sources for each equation are specified, major (outer) ordering by equation.
C++ Type:std::vector<std::vector<double>>
Unit:(no unit assumed)
Controllable:No
Description:Coupled variable multipliers for the sources used for the passive scalar fields. If multiple sources for each equation are specified, major (outer) ordering by equation.
- passive_scalar_diffusivityFunctor names for the diffusivities used for the passive scalar fields. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:Functor names for the diffusivities used for the passive scalar fields. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- passive_scalar_sourcePassive scalar sources. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:std::vector<MooseFunctorName>
Unit:(no unit assumed)
Controllable:No
Description:Passive scalar sources. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
Passive Scalar Control Parameters
- passive_scalar_inlet_functorsFunctors for inlet boundaries in the passive scalar equations. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
C++ Type:std::vector<std::vector<MooseFunctorName>>
Unit:(no unit assumed)
Controllable:No
Description:Functors for inlet boundaries in the passive scalar equations. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.
- passive_scalar_inlet_typesTypes for the inlet boundaries for the passive scalar equation.
C++ Type:MultiMooseEnum
Controllable:No
Description:Types for the inlet boundaries for the passive scalar equation.