SIMPLENonlinearAssembly

Solves the Navier-Stokes equations using the SIMPLENonlinearAssembly algorithm.

Overview

For the overview of the SIMPLE algorithm, please visit SIMPLE.

This executioner implements the same iteration but it uses MOOSE's native residual and Jacobian computing routines to build system matrices and right hand sides. Even though this introduces an overhead in terms of computational speed, it allows the utilization of the same variables, kernels and boundary conditions that are used in the monolithic solvers.

Example Input Syntax

The setup of a problem with the segregated solver in MOOSE is slightly different compared to conventional monolithic solvers. In this section, we highlight the main differences. For setting up a 2D simulation with the SIMPLE algorithm, we add three systems in MOOSE: one for each momentum component and another for the pressure. The different systems can be created within the Problem block:

[Problem]
  nl_sys_names = 'u_system v_system pressure_system'
  previous_nl_solution_required = true
[]
(contrib/moose/modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/segregated/2d/2d-segregated-velocity.i)

It is visible that we requested that MOOSE keeps previous solution iterates as well. This is necessary to facilitate the relaxation processes mentioned in SIMPLE.

[Variables]
  [u]
    type = INSFVVelocityVariable
    initial_condition = 0.5
    solver_sys = u_system
    two_term_boundary_expansion = false
  []
  [v]
    type = INSFVVelocityVariable
    initial_condition = 0.0
    solver_sys = v_system
    two_term_boundary_expansion = false
  []
  [pressure]
    type = INSFVPressureVariable
    solver_sys = pressure_system
    initial_condition = 0.2
    two_term_boundary_expansion = false
  []
[]
(contrib/moose/modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/segregated/2d/2d-segregated-velocity.i)

The kernels are then created similarly to the monolithic system, with the exception that now the kernels acting on pressure are slightly different:

[FVKernels]
  [p_diffusion]
    type = FVAnisotropicDiffusion
    variable = pressure
    coeff = "Ainv"
    coeff_interp_method = 'average'
  []

  [p_source]
    type = FVDivergence
    variable = pressure
    vector_field = "HbyA"
    force_boundary_execution = true
  []
[]
(contrib/moose/modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/segregated/2d/2d-segregated-velocity.i)

By default, the coupling fields corresponding to A1HA^{-1}H and A1A^{-1} are called HbyA and Ainv, respectively. These fields are generated by INSFVRhieChowInterpolatorSegregated under the hood. This means that we need to add the user object responsible for generating these fields:

[UserObjects]
  [rc]
    type = INSFVRhieChowInterpolatorSegregated
    u = u
    v = v
    pressure = pressure
  []
[]
(contrib/moose/modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/segregated/2d/2d-segregated-velocity.i)

Next, we add the SIMPLENonlinearAssembly executioner:

[Executioner]
  type = SIMPLENonlinearAssembly
  momentum_l_abs_tol = 1e-14
  pressure_l_abs_tol = 1e-14
  momentum_l_tol = 0
  pressure_l_tol = 0
  rhie_chow_user_object = 'rc'
  momentum_systems = 'u_system v_system'
  pressure_system = 'pressure_system'
  pressure_gradient_tag = ${pressure_tag}
  momentum_equation_relaxation = 0.8
  pressure_variable_relaxation = 0.3
  num_iterations = 150
  pressure_absolute_tolerance = 1e-13
  momentum_absolute_tolerance = 1e-13
  print_fields = false
[]
(contrib/moose/modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/segregated/2d/2d-segregated-velocity.i)

We see that it has a parameter called "pressure_gradient_tag". This tag needs to be added to the pressure gradient kernels to enable the separation of terms needed in A1HA^{-1}H. This can be easily done as follows in the FVKernels:

[FVKernels]
  [u_pressure]
    type = INSFVMomentumPressure
    variable = u
    momentum_component = 'x'
    pressure = pressure
    extra_vector_tags = ${pressure_tag}
  []

  [v_pressure]
    type = INSFVMomentumPressure
    variable = v
    momentum_component = 'y'
    pressure = pressure
    extra_vector_tags = ${pressure_tag}
  []
[]
(contrib/moose/modules/navier_stokes/test/tests/finite_volume/ins/channel-flow/segregated/2d/2d-segregated-velocity.i)

Input Parameters

  • momentum_systemsThe solver system(s) for the momentum equation(s).

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The solver system(s) for the momentum equation(s).

  • pressure_systemThe solver system for the pressure equation.

    C++ Type:SolverSystemName

    Unit:(no unit assumed)

    Controllable:No

    Description:The solver system for the pressure equation.

  • rhie_chow_user_objectThe rhie-chow user-object

    C++ Type:UserObjectName

    Unit:(no unit assumed)

    Controllable:No

    Description:The rhie-chow user-object

Required Parameters

  • continue_on_max_itsFalseIf solve should continue if maximum number of iterations is hit.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:If solve should continue if maximum number of iterations is hit.

  • energy_systemThe solver system for the energy equation.

    C++ Type:SolverSystemName

    Unit:(no unit assumed)

    Controllable:No

    Description:The solver system for the energy equation.

  • num_iterations1000The number of momentum-pressure-(other fields) iterations needed.

    Default:1000

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The number of momentum-pressure-(other fields) iterations needed.

  • pressure_gradient_tagpressure_momentum_kernelsThe name of the tags associated with the kernels in the momentum equations which are not related to the pressure gradient.

    Default:pressure_momentum_kernels

    C++ Type:TagName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the tags associated with the kernels in the momentum equations which are not related to the pressure gradient.

  • print_fieldsFalseUse this to print the coupling and solution fields and matrices throughout the iteration.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Use this to print the coupling and solution fields and matrices throughout the iteration.

  • solid_energy_systemThe solver system for the solid energy equation.

    C++ Type:SolverSystemName

    Unit:(no unit assumed)

    Controllable:No

    Description:The solver system for the solid energy equation.

  • time0System time

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:System time

  • turbulence_field_min_limitThe lower limit imposed on turbulent quantities. The recommended value for robustness is 1e-8.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The lower limit imposed on turbulent quantities. The recommended value for robustness is 1e-8.

  • turbulence_systemsThe solver system(s) for the turbulence equation(s).

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The solver system(s) for the turbulence equation(s).

  • verboseFalseSet to true to print additional information

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Set to true to print additional information

Optional Parameters

  • accept_on_max_fixed_point_iterationFalseTrue to treat reaching the maximum number of fixed point iterations as converged.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:True to treat reaching the maximum number of fixed point iterations as converged.

  • auto_advanceFalseWhether to automatically advance sub-applications regardless of whether their solve converges, for transient executioners only.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Whether to automatically advance sub-applications regardless of whether their solve converges, for transient executioners only.

  • custom_abs_tol1e-50The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on postprocessor defined by the custom_pp residual.

    Default:1e-50

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on postprocessor defined by the custom_pp residual.

  • custom_ppPostprocessor for custom fixed point convergence check.

    C++ Type:PostprocessorName

    Unit:(no unit assumed)

    Controllable:No

    Description:Postprocessor for custom fixed point convergence check.

  • custom_rel_tol1e-08The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the postprocessor defined by custom_pp residual.

    Default:1e-08

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the postprocessor defined by custom_pp residual.

  • direct_pp_valueFalseTrue to use direct postprocessor value (scaled by value on first iteration). False (default) to use difference in postprocessor value between fixed point iterations.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:True to use direct postprocessor value (scaled by value on first iteration). False (default) to use difference in postprocessor value between fixed point iterations.

  • disable_fixed_point_residual_norm_checkFalseDisable the residual norm evaluation thus the three parameters fixed_point_rel_tol, fixed_point_abs_tol and fixed_point_force_norms.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Disable the residual norm evaluation thus the three parameters fixed_point_rel_tol, fixed_point_abs_tol and fixed_point_force_norms.

  • fixed_point_abs_tol1e-50The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.

    Default:1e-50

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute nonlinear residual to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.

  • fixed_point_algorithmpicardThe fixed point algorithm to converge the sequence of problems.

    Default:picard

    C++ Type:MooseEnum

    Unit:(no unit assumed)

    Options:picard, secant, steffensen

    Controllable:No

    Description:The fixed point algorithm to converge the sequence of problems.

  • fixed_point_force_normsFalseForce the evaluation of both the TIMESTEP_BEGIN and TIMESTEP_END norms regardless of the existence of active MultiApps with those execute_on flags, default: false.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Force the evaluation of both the TIMESTEP_BEGIN and TIMESTEP_END norms regardless of the existence of active MultiApps with those execute_on flags, default: false.

  • fixed_point_max_its1Specifies the maximum number of fixed point iterations.

    Default:1

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Specifies the maximum number of fixed point iterations.

  • fixed_point_min_its1Specifies the minimum number of fixed point iterations.

    Default:1

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Specifies the minimum number of fixed point iterations.

  • fixed_point_rel_tol1e-08The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.

    Default:1e-08

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The relative nonlinear residual drop to shoot for during fixed point iterations. This check is performed based on the main app's nonlinear residual.

  • relaxation_factor1Fraction of newly computed value to keep.Set between 0 and 2.

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Fraction of newly computed value to keep.Set between 0 and 2.

  • transformed_postprocessorsList of main app postprocessors to transform during fixed point iterations

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

    Unit:(no unit assumed)

    Controllable:No

    Description:List of main app postprocessors to transform during fixed point iterations

  • transformed_variablesList of main app variables to transform during fixed point iterations

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

    Unit:(no unit assumed)

    Controllable:No

    Description:List of main app variables to transform during fixed point iterations

Fixed Point Iterations Parameters

  • 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:No

    Description:Set the enabled status of the MooseObject.

  • outputsVector of output names where you would like to restrict the output of variables(s) associated with this object

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Vector of output names where you would like to restrict the output of variables(s) associated with this object

Advanced Parameters

  • energy_absolute_tolerance1e-05The absolute tolerance on the normalized residual of the energy equation.

    Default:1e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute tolerance on the normalized residual of the energy equation.

  • energy_l_abs_tol1e-10The absolute tolerance on the normalized residual in the linear solver of the energy equation.

    Default:1e-10

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute tolerance on the normalized residual in the linear solver of the energy equation.

  • energy_l_max_its10000The maximum allowed iterations in the linear solver of the energy equation.

    Default:10000

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The maximum allowed iterations in the linear solver of the energy equation.

  • energy_l_tol1e-05The relative tolerance on the normalized residual in the linear solver of the energy equation.

    Default:1e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The relative tolerance on the normalized residual in the linear solver of the energy equation.

  • energy_petsc_optionsSingleton PETSc options for the energy equation

    C++ Type:MultiMooseEnum

    Unit:(no unit assumed)

    Options:-dm_moose_print_embedding, -dm_view, -KSP_CONVERGED_REASON, -KSP_GMRES_MODIFIEDGRAMSCHMIDT, -KSP_MONITOR, -KSP_MONITOR_SNES_LG, -SNES_KSP_EW, -KSP_SNES_EW, -SNES_CONVERGED_REASON, -SNES_KSP, -SNES_LINESEARCH_MONITOR, -SNES_MF, -SNES_MF_OPERATOR, -SNES_MONITOR, -SNES_TEST_DISPLAY, -SNES_VIEW, -SNES_MONITOR_CANCEL

    Controllable:No

    Description:Singleton PETSc options for the energy equation

  • energy_petsc_options_inameNames of PETSc name/value pairs for the energy equation

    C++ Type:MultiMooseEnum

    Unit:(no unit assumed)

    Options:-mat_fd_coloring_err, -mat_fd_type, -mat_mffd_type, -pc_asm_overlap, -pc_factor_levels, -pc_factor_mat_ordering_type, -pc_hypre_boomeramg_grid_sweeps_all, -pc_hypre_boomeramg_max_iter, -pc_hypre_boomeramg_strong_threshold, -pc_hypre_type, -pc_type, -sub_pc_type, -KSP_ATOL, -KSP_GMRES_RESTART, -KSP_MAX_IT, -KSP_PC_SIDE, -KSP_RTOL, -KSP_TYPE, -SUB_KSP_TYPE, -SNES_ATOL, -SNES_LINESEARCH_TYPE, -SNES_LS, -SNES_MAX_IT, -SNES_RTOL, -SNES_DIVERGENCE_TOLERANCE, -SNES_TYPE

    Controllable:No

    Description:Names of PETSc name/value pairs for the energy equation

  • energy_petsc_options_valueValues of PETSc name/value pairs (must correspond with "petsc_options_iname" for the energy equation

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Values of PETSc name/value pairs (must correspond with "petsc_options_iname" for the energy equation

Energy Equation Parameters

  • energy_equation_relaxation1The relaxation which should be used for the energy equation. (=1 for no relaxation, diagonal dominance will still be enforced)

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The relaxation which should be used for the energy equation. (=1 for no relaxation, diagonal dominance will still be enforced)

  • turbulence_equation_relaxationThe relaxation which should be used for the turbulence equations equations. (=1 for no relaxation, diagonal dominance will still be enforced)

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The relaxation which should be used for the turbulence equations equations. (=1 for no relaxation, diagonal dominance will still be enforced)

Relaxation Parameters

  • max_xfem_update4294967295Maximum number of times to update XFEM crack topology in a step due to evolving cracks

    Default:4294967295

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:Maximum number of times to update XFEM crack topology in a step due to evolving cracks

  • update_xfem_at_timestep_beginFalseShould XFEM update the mesh at the beginning of the timestep

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:Should XFEM update the mesh at the beginning of the timestep

Xfem Fixed Point Iterations Parameters

  • momentum_absolute_tolerance1e-05The absolute tolerance on the normalized residual of the momentum equation.

    Default:1e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute tolerance on the normalized residual of the momentum equation.

  • momentum_equation_relaxation1The relaxation which should be used for the momentum equation. (=1 for no relaxation, diagonal dominance will still be enforced)

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The relaxation which should be used for the momentum equation. (=1 for no relaxation, diagonal dominance will still be enforced)

  • momentum_l_abs_tol1e-50The absolute tolerance on the normalized residual in the linear solver of the momentum equation.

    Default:1e-50

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute tolerance on the normalized residual in the linear solver of the momentum equation.

  • momentum_l_max_its10000The maximum allowed iterations in the linear solver of the momentum equation.

    Default:10000

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The maximum allowed iterations in the linear solver of the momentum equation.

  • momentum_l_tol1e-05The relative tolerance on the normalized residual in the linear solver of the momentum equation.

    Default:1e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The relative tolerance on the normalized residual in the linear solver of the momentum equation.

  • momentum_petsc_optionsSingleton PETSc options for the momentum equation

    C++ Type:MultiMooseEnum

    Unit:(no unit assumed)

    Options:-dm_moose_print_embedding, -dm_view, -KSP_CONVERGED_REASON, -KSP_GMRES_MODIFIEDGRAMSCHMIDT, -KSP_MONITOR, -KSP_MONITOR_SNES_LG, -SNES_KSP_EW, -KSP_SNES_EW, -SNES_CONVERGED_REASON, -SNES_KSP, -SNES_LINESEARCH_MONITOR, -SNES_MF, -SNES_MF_OPERATOR, -SNES_MONITOR, -SNES_TEST_DISPLAY, -SNES_VIEW, -SNES_MONITOR_CANCEL

    Controllable:No

    Description:Singleton PETSc options for the momentum equation

  • momentum_petsc_options_inameNames of PETSc name/value pairs for the momentum equation

    C++ Type:MultiMooseEnum

    Unit:(no unit assumed)

    Options:-mat_fd_coloring_err, -mat_fd_type, -mat_mffd_type, -pc_asm_overlap, -pc_factor_levels, -pc_factor_mat_ordering_type, -pc_hypre_boomeramg_grid_sweeps_all, -pc_hypre_boomeramg_max_iter, -pc_hypre_boomeramg_strong_threshold, -pc_hypre_type, -pc_type, -sub_pc_type, -KSP_ATOL, -KSP_GMRES_RESTART, -KSP_MAX_IT, -KSP_PC_SIDE, -KSP_RTOL, -KSP_TYPE, -SUB_KSP_TYPE, -SNES_ATOL, -SNES_LINESEARCH_TYPE, -SNES_LS, -SNES_MAX_IT, -SNES_RTOL, -SNES_DIVERGENCE_TOLERANCE, -SNES_TYPE

    Controllable:No

    Description:Names of PETSc name/value pairs for the momentum equation

  • momentum_petsc_options_valueValues of PETSc name/value pairs (must correspond with "petsc_options_iname" for the momentum equation

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Values of PETSc name/value pairs (must correspond with "petsc_options_iname" for the momentum equation

Momentum Equation Parameters

  • passive_scalar_absolute_toleranceThe absolute tolerance(s) on the normalized residual(s) of the passive scalar equation(s).

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute tolerance(s) on the normalized residual(s) of the passive scalar equation(s).

  • passive_scalar_equation_relaxationThe relaxation which should be used for the passive scalar equations. (=1 for no relaxation, diagonal dominance will still be enforced)

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The relaxation which should be used for the passive scalar equations. (=1 for no relaxation, diagonal dominance will still be enforced)

  • passive_scalar_l_abs_tol1e-10The absolute tolerance on the normalized residual in the linear solver of the passive scalar equation(s).

    Default:1e-10

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute tolerance on the normalized residual in the linear solver of the passive scalar equation(s).

  • passive_scalar_l_max_its10000The maximum allowed iterations in the linear solver of the turbulence equation.

    Default:10000

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The maximum allowed iterations in the linear solver of the turbulence equation.

  • passive_scalar_l_tol1e-05The relative tolerance on the normalized residual in the linear solver of the passive scalar equation(s).

    Default:1e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The relative tolerance on the normalized residual in the linear solver of the passive scalar equation(s).

  • passive_scalar_petsc_optionsSingleton PETSc options for the passive scalar equation(s)

    C++ Type:MultiMooseEnum

    Unit:(no unit assumed)

    Options:-dm_moose_print_embedding, -dm_view, -KSP_CONVERGED_REASON, -KSP_GMRES_MODIFIEDGRAMSCHMIDT, -KSP_MONITOR, -KSP_MONITOR_SNES_LG, -SNES_KSP_EW, -KSP_SNES_EW, -SNES_CONVERGED_REASON, -SNES_KSP, -SNES_LINESEARCH_MONITOR, -SNES_MF, -SNES_MF_OPERATOR, -SNES_MONITOR, -SNES_TEST_DISPLAY, -SNES_VIEW, -SNES_MONITOR_CANCEL

    Controllable:No

    Description:Singleton PETSc options for the passive scalar equation(s)

  • passive_scalar_petsc_options_inameNames of PETSc name/value pairs for the passive scalar equation(s)

    C++ Type:MultiMooseEnum

    Unit:(no unit assumed)

    Options:-mat_fd_coloring_err, -mat_fd_type, -mat_mffd_type, -pc_asm_overlap, -pc_factor_levels, -pc_factor_mat_ordering_type, -pc_hypre_boomeramg_grid_sweeps_all, -pc_hypre_boomeramg_max_iter, -pc_hypre_boomeramg_strong_threshold, -pc_hypre_type, -pc_type, -sub_pc_type, -KSP_ATOL, -KSP_GMRES_RESTART, -KSP_MAX_IT, -KSP_PC_SIDE, -KSP_RTOL, -KSP_TYPE, -SUB_KSP_TYPE, -SNES_ATOL, -SNES_LINESEARCH_TYPE, -SNES_LS, -SNES_MAX_IT, -SNES_RTOL, -SNES_DIVERGENCE_TOLERANCE, -SNES_TYPE

    Controllable:No

    Description:Names of PETSc name/value pairs for the passive scalar equation(s)

  • passive_scalar_petsc_options_valueValues of PETSc name/value pairs (must correspond with "petsc_options_iname" for the passive scalar equation(s)

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Values of PETSc name/value pairs (must correspond with "petsc_options_iname" for the passive scalar equation(s)

  • passive_scalar_systemsThe solver system for each scalar advection equation.

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

    Unit:(no unit assumed)

    Controllable:No

    Description:The solver system for each scalar advection equation.

Passive_Scalar Equation Parameters

  • pin_pressureFalseIf the pressure field needs to be pinned at a point.

    Default:False

    C++ Type:bool

    Unit:(no unit assumed)

    Controllable:No

    Description:If the pressure field needs to be pinned at a point.

  • pressure_pin_pointThe point where the pressure needs to be pinned.

    C++ Type:libMesh::Point

    Unit:(no unit assumed)

    Controllable:No

    Description:The point where the pressure needs to be pinned.

  • pressure_pin_value0The value which needs to be enforced for the pressure.

    Default:0

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The value which needs to be enforced for the pressure.

Pressure Pin Parameters

  • pressure_absolute_tolerance1e-05The absolute tolerance on the normalized residual of the pressure equation.

    Default:1e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute tolerance on the normalized residual of the pressure equation.

  • pressure_l_abs_tol1e-10The absolute tolerance on the normalized residual in the linear solver of the pressure equation.

    Default:1e-10

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The absolute tolerance on the normalized residual in the linear solver of the pressure equation.

  • pressure_l_max_its10000The maximum allowed iterations in the linear solver of the pressure equation.

    Default:10000

    C++ Type:unsigned int

    Unit:(no unit assumed)

    Controllable:No

    Description:The maximum allowed iterations in the linear solver of the pressure equation.

  • pressure_l_tol1e-05The relative tolerance on the normalized residual in the linear solver of the pressure equation.

    Default:1e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The relative tolerance on the normalized residual in the linear solver of the pressure equation.

  • pressure_petsc_optionsSingleton PETSc options for the pressure equation

    C++ Type:MultiMooseEnum

    Unit:(no unit assumed)

    Options:-dm_moose_print_embedding, -dm_view, -KSP_CONVERGED_REASON, -KSP_GMRES_MODIFIEDGRAMSCHMIDT, -KSP_MONITOR, -KSP_MONITOR_SNES_LG, -SNES_KSP_EW, -KSP_SNES_EW, -SNES_CONVERGED_REASON, -SNES_KSP, -SNES_LINESEARCH_MONITOR, -SNES_MF, -SNES_MF_OPERATOR, -SNES_MONITOR, -SNES_TEST_DISPLAY, -SNES_VIEW, -SNES_MONITOR_CANCEL

    Controllable:No

    Description:Singleton PETSc options for the pressure equation

  • pressure_petsc_options_inameNames of PETSc name/value pairs for the pressure equation

    C++ Type:MultiMooseEnum

    Unit:(no unit assumed)

    Options:-mat_fd_coloring_err, -mat_fd_type, -mat_mffd_type, -pc_asm_overlap, -pc_factor_levels, -pc_factor_mat_ordering_type, -pc_hypre_boomeramg_grid_sweeps_all, -pc_hypre_boomeramg_max_iter, -pc_hypre_boomeramg_strong_threshold, -pc_hypre_type, -pc_type, -sub_pc_type, -KSP_ATOL, -KSP_GMRES_RESTART, -KSP_MAX_IT, -KSP_PC_SIDE, -KSP_RTOL, -KSP_TYPE, -SUB_KSP_TYPE, -SNES_ATOL, -SNES_LINESEARCH_TYPE, -SNES_LS, -SNES_MAX_IT, -SNES_RTOL, -SNES_DIVERGENCE_TOLERANCE, -SNES_TYPE

    Controllable:No

    Description:Names of PETSc name/value pairs for the pressure equation

  • pressure_petsc_options_valueValues of PETSc name/value pairs (must correspond with "petsc_options_iname" for the pressure equation

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

    Unit:(no unit assumed)

    Controllable:No

    Description:Values of PETSc name/value pairs (must correspond with "petsc_options_iname" for the pressure equation

  • pressure_variable_relaxation1The relaxation which should be used for the pressure variable (=1 for no relaxation).

    Default:1

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:The relaxation which should be used for the pressure variable (=1 for no relaxation).

Pressure Equation Parameters

    Restart Parameters

    • solid_energy_absolute_tolerance1e-05The absolute tolerance on the normalized residual of the solid energy equation.

      Default:1e-05

      C++ Type:double

      Unit:(no unit assumed)

      Controllable:No

      Description:The absolute tolerance on the normalized residual of the solid energy equation.

    • turbulence_absolute_toleranceThe absolute tolerance(s) on the normalized residual(s) of the turbulence equation(s).

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

      Unit:(no unit assumed)

      Controllable:No

      Description:The absolute tolerance(s) on the normalized residual(s) of the turbulence equation(s).

    Iteration Control Parameters

    • solid_energy_l_abs_tol1e-10The absolute tolerance on the normalized residual in the linear solver of the solid energy equation.

      Default:1e-10

      C++ Type:double

      Unit:(no unit assumed)

      Controllable:No

      Description:The absolute tolerance on the normalized residual in the linear solver of the solid energy equation.

    • solid_energy_l_max_its10000The maximum allowed iterations in the linear solver of the solid energy equation.

      Default:10000

      C++ Type:unsigned int

      Unit:(no unit assumed)

      Controllable:No

      Description:The maximum allowed iterations in the linear solver of the solid energy equation.

    • solid_energy_l_tol1e-05The relative tolerance on the normalized residual in the linear solver of the solid energy equation.

      Default:1e-05

      C++ Type:double

      Unit:(no unit assumed)

      Controllable:No

      Description:The relative tolerance on the normalized residual in the linear solver of the solid energy equation.

    • turbulence_l_abs_tol1e-10The absolute tolerance on the normalized residual in the linear solver of the turbulence equation(s).

      Default:1e-10

      C++ Type:double

      Unit:(no unit assumed)

      Controllable:No

      Description:The absolute tolerance on the normalized residual in the linear solver of the turbulence equation(s).

    • turbulence_l_max_its10000The maximum allowed iterations in the linear solver of the turbulence equation(s).

      Default:10000

      C++ Type:unsigned int

      Unit:(no unit assumed)

      Controllable:No

      Description:The maximum allowed iterations in the linear solver of the turbulence equation(s).

    • turbulence_l_tol1e-05The relative tolerance on the normalized residual in the linear solver of the turbulence equation(s).

      Default:1e-05

      C++ Type:double

      Unit:(no unit assumed)

      Controllable:No

      Description:The relative tolerance on the normalized residual in the linear solver of the turbulence equation(s).

    Linear Iteration Control Parameters

    • solid_energy_petsc_optionsSingleton PETSc options for the solid energy equation

      C++ Type:MultiMooseEnum

      Unit:(no unit assumed)

      Options:-dm_moose_print_embedding, -dm_view, -KSP_CONVERGED_REASON, -KSP_GMRES_MODIFIEDGRAMSCHMIDT, -KSP_MONITOR, -KSP_MONITOR_SNES_LG, -SNES_KSP_EW, -KSP_SNES_EW, -SNES_CONVERGED_REASON, -SNES_KSP, -SNES_LINESEARCH_MONITOR, -SNES_MF, -SNES_MF_OPERATOR, -SNES_MONITOR, -SNES_TEST_DISPLAY, -SNES_VIEW, -SNES_MONITOR_CANCEL

      Controllable:No

      Description:Singleton PETSc options for the solid energy equation

    • solid_energy_petsc_options_inameNames of PETSc name/value pairs for the solid energy equation

      C++ Type:MultiMooseEnum

      Unit:(no unit assumed)

      Options:-mat_fd_coloring_err, -mat_fd_type, -mat_mffd_type, -pc_asm_overlap, -pc_factor_levels, -pc_factor_mat_ordering_type, -pc_hypre_boomeramg_grid_sweeps_all, -pc_hypre_boomeramg_max_iter, -pc_hypre_boomeramg_strong_threshold, -pc_hypre_type, -pc_type, -sub_pc_type, -KSP_ATOL, -KSP_GMRES_RESTART, -KSP_MAX_IT, -KSP_PC_SIDE, -KSP_RTOL, -KSP_TYPE, -SUB_KSP_TYPE, -SNES_ATOL, -SNES_LINESEARCH_TYPE, -SNES_LS, -SNES_MAX_IT, -SNES_RTOL, -SNES_DIVERGENCE_TOLERANCE, -SNES_TYPE

      Controllable:No

      Description:Names of PETSc name/value pairs for the solid energy equation

    • solid_energy_petsc_options_valueValues of PETSc name/value pairs (must correspond with "petsc_options_iname" for the solid energy equation

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

      Unit:(no unit assumed)

      Controllable:No

      Description:Values of PETSc name/value pairs (must correspond with "petsc_options_iname" for the solid energy equation

    • turbulence_petsc_optionsSingleton PETSc options for the turbulence equation(s)

      C++ Type:MultiMooseEnum

      Unit:(no unit assumed)

      Options:-dm_moose_print_embedding, -dm_view, -KSP_CONVERGED_REASON, -KSP_GMRES_MODIFIEDGRAMSCHMIDT, -KSP_MONITOR, -KSP_MONITOR_SNES_LG, -SNES_KSP_EW, -KSP_SNES_EW, -SNES_CONVERGED_REASON, -SNES_KSP, -SNES_LINESEARCH_MONITOR, -SNES_MF, -SNES_MF_OPERATOR, -SNES_MONITOR, -SNES_TEST_DISPLAY, -SNES_VIEW, -SNES_MONITOR_CANCEL

      Controllable:No

      Description:Singleton PETSc options for the turbulence equation(s)

    • turbulence_petsc_options_inameNames of PETSc name/value pairs for the turbulence equation(s)

      C++ Type:MultiMooseEnum

      Unit:(no unit assumed)

      Options:-mat_fd_coloring_err, -mat_fd_type, -mat_mffd_type, -pc_asm_overlap, -pc_factor_levels, -pc_factor_mat_ordering_type, -pc_hypre_boomeramg_grid_sweeps_all, -pc_hypre_boomeramg_max_iter, -pc_hypre_boomeramg_strong_threshold, -pc_hypre_type, -pc_type, -sub_pc_type, -KSP_ATOL, -KSP_GMRES_RESTART, -KSP_MAX_IT, -KSP_PC_SIDE, -KSP_RTOL, -KSP_TYPE, -SUB_KSP_TYPE, -SNES_ATOL, -SNES_LINESEARCH_TYPE, -SNES_LS, -SNES_MAX_IT, -SNES_RTOL, -SNES_DIVERGENCE_TOLERANCE, -SNES_TYPE

      Controllable:No

      Description:Names of PETSc name/value pairs for the turbulence equation(s)

    • turbulence_petsc_options_valueValues of PETSc name/value pairs (must correspond with "petsc_options_iname" for the turbulence equation

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

      Unit:(no unit assumed)

      Controllable:No

      Description:Values of PETSc name/value pairs (must correspond with "petsc_options_iname" for the turbulence equation

    Petsc Control Parameters