- 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
- use_nonorthogonal_correctionTrueIf the nonorthogonal correction should be used when computing the normal gradient, notably in the diffusion term.
Default:True
C++ Type:bool
Controllable:No
Description:If the nonorthogonal correction should be used when computing the normal gradient, notably in the diffusion term.
- verboseFalseFlag to facilitate debugging a Physics
Default:False
C++ Type:bool
Controllable:No
Description:Flag to facilitate debugging a Physics
Navier Stokes Scalar Transport Segregated / WCNSLinearFVScalarTransportPhysics
Define the Navier Stokes weakly-compressible scalar field transport equation(s) using the linear 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 scalar source
is a reaction coefficient. It should be negative for a loss term
The kernels created are:
LinearFVScalarAdvection for the scalar advection term
LinearFVDiffusion for the scalar diffusion term
LinearFVSource for the source terms
Reaction terms can be expressed as source terms by using a negative coefficient in the "passive_scalar_coupled_source_coeff" parameter, and the scalar variable as one of the "passive_scalar_coupled_source"(s).
Coupling with other Physics
Scalar advection equations can be solved concurrently with the flow equations by combining the Navier Stokes Flow Segregated / WCNSLinearFVFlowPhysics with the WCNSLinearFVScalarTransportPhysics
. The following input performs this coupling for incompressible flow in a 2D channel.
[Physics<<<{"href": "../../syntax/Physics/index.html"}>>>]
[NavierStokes<<<{"href": "../../syntax/Physics/NavierStokes/index.html"}>>>]
[FlowSegregated<<<{"href": "../../syntax/Physics/NavierStokes/FlowSegregated/index.html"}>>>]
[flow]
velocity_variable<<<{"description": "If supplied, the system checks for available velocity variables. Otherwise, they are created within the action."}>>> = 'vel_x vel_y'
pressure_variable<<<{"description": "If supplied, the system checks for available pressure variable. Otherwise, it is created within the action."}>>> = 'pressure'
initial_velocity<<<{"description": "The initial velocity, assumed constant everywhere"}>>> = '0.5 0 0'
initial_pressure<<<{"description": "The initial pressure, assumed constant everywhere"}>>> = '0.2'
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}
# use inlet for moving wall to match the reference input
# we could also use a noslip BC with a velocity wall functor
inlet_boundaries<<<{"description": "Names of inlet boundaries"}>>> = 'left'
momentum_inlet_types<<<{"description": "Types of inlet boundaries for the momentum equation."}>>> = 'fixed-velocity'
momentum_inlet_functors<<<{"description": "Functions for inlet boundary velocities or pressures (for fixed-pressure option). Provide a double vector where the leading dimension corresponds to the number of fixed-velocity and fixed-pressure entries in momentum_inlet_types and the second index runs either over dimensions for fixed-velocity boundaries or is a single function name for pressure inlets. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '1.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_functors<<<{"description": "Functions for boundary pressures at outlets. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number."}>>> = '1.4'
orthogonality_correction<<<{"description": "Whether to use orthogonality correction"}>>> = false
pressure_two_term_bc_expansion<<<{"description": "If a two-term Taylor expansion is needed for the determination of the boundary valuesof the pressure."}>>> = false
momentum_advection_interpolation<<<{"description": "The numerical scheme to use for interpolating momentum/velocity, as an advected quantity, to the face."}>>> = ${advected_interp_method}
[]
[]
[ScalarTransportSegregated<<<{"href": "../../syntax/Physics/NavierStokes/ScalarTransportSegregated/index.html"}>>>]
[scalar]
passive_scalar_names<<<{"description": "Vector containing the names of the advected scalar variables."}>>> = 'scalar1 scalar2'
system_names<<<{"description": "Name of the solver system(s) for the variables. If a single name is specified, that system is used for all solver variables."}>>> = 's1_system s2_system'
initial_scalar_variables<<<{"description": "Initial values of the passive scalar variables."}>>> = '1.1 3'
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."}>>> = '${k1} ${k2}'
passive_scalar_inlet_types<<<{"description": "Types for the inlet boundaries for the passive scalar equation."}>>> = 'fixed-value fixed-value'
passive_scalar_inlet_function = '1; 2'
passive_scalar_advection_interpolation<<<{"description": "The numerical scheme to use for interpolating passive scalar field, as an advected quantity, to the face."}>>> = ${advected_interp_method}
passive_scalar_two_term_bc_expansion<<<{"description": "If a two-term Taylor expansion is needed for the determination of the boundary valuesof the advected passive scalar field."}>>> = false
use_nonorthogonal_correction<<<{"description": "If the nonorthogonal correction should be used when computing the normal gradient, notably in the diffusion term."}>>> = false
[]
[]
[]
[]
(moose/modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/linear-segregated/2d-scalar/channel-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_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.
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.