MFEMPetscNonlinearSolver

Overview

Defines and builds an mfem::PetscNonlinearSolver to solve nonlinear MFEM equation systems through PETSc SNES.

This solver currently requires Jacobian information from the MFEM operator and manages its own internal PETSc KSP/PC stack rather than using an external MFEM linear solver.

PETSc options may be supplied through the object parameters, and petsc_options_prefix controls the prefix applied to the owned SNES object and its sub-objects.

Define this object in the Solvers block.

Input Parameters

  • abs_tol1e-50Absolute nonlinear tolerance.

    Default:1e-50

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Absolute nonlinear tolerance.

  • max_its1Maximum nonlinear iterations.

    Default:1

    C++ Type:unsigned int

    Controllable:No

    Description:Maximum nonlinear iterations.

  • petsc_optionsSingleton PETSc options

    C++ Type:MultiMooseEnum

    Options:-dm_moose_print_embedding, -dm_view, -KSP_CONVERGED_REASON, -KSP_GMRES_MODIFIEDGRAMSCHMIDT, -KSP_MONITOR, -KSP_MONITOR_SNES_LG, -SNES_KSP_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

  • petsc_options_inameNames of PETSc name/value pairs

    C++ Type:MultiMooseEnum

    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

  • petsc_options_prefixPETSc options prefix used for this nonlinear solver.

    C++ Type:std::string

    Controllable:No

    Description:PETSc options prefix used for this nonlinear solver.

  • petsc_options_valueValues of PETSc name/value pairs (must correspond with "petsc_options_iname")

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

    Controllable:No

    Description:Values of PETSc name/value pairs (must correspond with "petsc_options_iname")

  • print_level1Solver verbosity.

    Default:1

    C++ Type:unsigned int

    Controllable:No

    Description:Solver verbosity.

  • rel_tol1e-08Relative nonlinear tolerance.

    Default:1e-08

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Relative nonlinear tolerance.

  • use_initial_guessTrueWhether to preserve the current MFEM solution vector as the initial guess for an iterative solver.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Whether to preserve the current MFEM solution vector as the initial guess for an iterative solver.

Optional Parameters

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

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Set the enabled status of the MooseObject.

Advanced Parameters

Input Files