Navier Stokes Two Phase Mixture using a Linear Finite Volume discretization / WCNSLinearFVTwoPhaseMixturePhysics

Define the additional terms for a mixture model for the two phase weakly-compressible Navier Stokes equations using the linearized segregated finite volume discretization

Equation(s)

This Physics adds terms to the flow and energy equations to account for the presence of a two-phase mixture. If specified with the "add_phase_transport_equation" parameter, it can also solve for the advection-diffusion equation of a moving phase fraction.

commentnote

If the other phase is solid, the "add_phase_transport_equation" parameter should be set to false.

The phase advection-diffusion equation is:

where:

  • is the phase fraction

  • is the advecting velocity

  • the phase diffusivity

  • is the phase exchange coefficient

The kernels created are:

The momentum equations, if defined using a Navier Stokes Flow Segregated / WCNSLinearFVFlowPhysics, are modified in the presence of a two-phase mixture. Density and viscosity should be set to their mixture values, see Mixture fluid properties for more information.

commentnote

Drift flux and advection slip terms are currently not supported in the linear finite volume discretization.

commentnote

Phase interface terms are currently not supported in the linear finite volume discretization.

commentnote

Phase exchange is not currently supported in the linear finite volume discretization.

Mixture fluid properties

The fluid properties of mixture fluids depend on the phase fraction of each phase. For two phases, the properties can currently be computed with a NSFVMixtureFunctorMaterial. This material is defined by default by the WCNSLinearFVTwoPhaseMixturePhysics unless the "use_external_mixture_properties" is set to true.

The gas mixture models defined in the fluid properties module cannot currently be used by this physics without additional development.

Input Parameters

  • phase_1_fraction_nameName of the first phase fraction variable, it will be created as a functor material property if it does not exist already. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the first phase fraction variable, it will be created as a functor material property if it does not exist already. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

Required Parameters

  • add_gravity_term_in_slip_velocityTrueWhether to add the gravity term in the slip velocity vector computation

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to add the gravity term in the slip velocity vector computation

  • add_phase_transport_equationTrueWhether to add the phase transport equation.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to add the phase transport equation.

  • blockBlocks (subdomains) that this Physics is active on.

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

    Controllable:No

    Description:Blocks (subdomains) that this Physics is active on.

  • output_all_propertiesFalseWhether to output every functor material property defined to Exodus

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to output every functor material property defined to Exodus

  • particle_diameter1Particle size if using a dispersed phase. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    Default:1

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Particle size if using a dispersed phase. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • 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

    Options:true, false, same_as_problem

    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

Optional 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

  • add_advection_slip_termFalseWhether to use the advection-slip model

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to use the advection-slip model

Advection Slip Model Parameters

  • add_drift_flux_momentum_termsFalseWhether to add the drift flux terms to the momentum equation

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to add the drift flux terms to the momentum equation

  • density_interp_methodharmonicFace interpolation method for the density in the drift flux term.

    Default:harmonic

    C++ Type:MooseEnum

    Options:average, harmonic

    Controllable:No

    Description:Face interpolation method for the density in the drift flux term.

Drift Flux Model Parameters

  • add_phase_change_energy_termFalseWhether to add a phase change term based on the latent heat of fusion in the energy equation

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to add a phase change term based on the latent heat of fusion in the energy equation

  • alpha_exchange0Name of the volumetric phase exchange coefficient. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    Default:0

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the volumetric phase exchange coefficient. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • fluid_heat_transfer_physicsNavierStokesFVWCNSLinearFVFluidHeatTransferPhysics generating the fluid energy equation

    Default:NavierStokesFV

    C++ Type:PhysicsName

    Controllable:No

    Description:WCNSLinearFVFluidHeatTransferPhysics generating the fluid energy equation

Phase Change 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_phase_fractionInitial value of the main phase fraction variable

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Initial value of the main phase fraction variable

  • phase_2_fraction_nameName of the second phase fraction variable (can be a dispersed phase)

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the second phase fraction variable (can be a dispersed phase)

Variable Parameters

  • phase_1_density_nameName of the density functor for phase 1. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the density functor for phase 1. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • phase_1_specific_heat_nameName of the specific heat functor for phase 1. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the specific heat functor for phase 1. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • phase_1_thermal_conductivity_nameName of the thermal conductivity functor for phase 1. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the thermal conductivity functor for phase 1. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • phase_1_viscosity_nameName of the viscosity functor for phase 1. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the viscosity functor for phase 1. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • phase_2_density_nameName of the density functor for phase 2. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the density functor for phase 2. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • phase_2_specific_heat_nameName of the specific heat functor for phase 2. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the specific heat functor for phase 2. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • phase_2_thermal_conductivity_nameName of the thermal conductivity functor for phase 2. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the thermal conductivity functor for phase 2. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • phase_2_viscosity_nameName of the viscosity functor for phase 2. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the viscosity functor for phase 2. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • use_external_mixture_propertiesFalseWhether to use the simple NSFVMixtureFunctorMaterial or use a more complex model defined outside of the Physics

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Whether to use the simple NSFVMixtureFunctorMaterial or use a more complex model defined outside of the Physics

Mixture Material Properties Parameters

  • phase_advection_interpolationupwindThe numerical scheme to use for interpolating the phase fraction variable, as an advected quantity, to the face.

    Default:upwind

    C++ Type:MooseEnum

    Options:average, upwind, sou, min_mod, vanLeer, quick, venkatakrishnan, skewness-corrected

    Controllable:No

    Description:The numerical scheme to use for interpolating the phase fraction variable, as an advected quantity, to the face.

  • phase_scalingThe scaling factor for the phase transport equation

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The scaling factor for the phase transport equation

  • phase_two_term_bc_expansionTrueIf a two-term Taylor expansion is needed for the determination of the boundary valuesof the phase fraction.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:If a two-term Taylor expansion is needed for the determination of the boundary valuesof the phase fraction.

Numerical Scheme Parameters

  • phase_fraction_diffusivityFunctor names for the diffusivities used for the main phase fraction.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Functor names for the diffusivities used for the main phase fraction.

Mixture Transport Control Parameters

  • phase_fraction_inlet_functorsFunctors describing the inlet phase fraction boundary condition.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Functors describing the inlet phase fraction boundary condition.

  • phase_fraction_inlet_typeTypes for the inlet boundary for the phase fraction.

    C++ Type:MultiMooseEnum

    Options:fixed-value, flux-mass, flux-velocity

    Controllable:No

    Description:Types for the inlet boundary for the phase fraction.

Inlet Boundary Parameters

  • slip_linear_friction_nameName of the functor providing the scalar linear friction coefficient. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

    C++ Type:MooseFunctorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Name of the functor providing the scalar linear friction coefficient. A functor is any of the following: a variable, a functor material property, a function, a postprocessor or a number.

  • use_dispersed_phase_drag_modelFalseAdds a linear friction term with the dispersed phase drag model

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Adds a linear friction term with the dispersed phase drag model

Friction Model Parameters