MFEMOperatorChebyshevSmoother

Overview

Defines and builds an mfem::OperatorChebyshevSmoother solver. Chebyshev smoothing applies a polynomial chosen to reduce error components over a target spectral interval of the diagonally scaled operator D^{-1}A. The smoother estimates the maximum eigenvalue of D^{-1}A automatically so that this interval can be selected from the operator supplied at setup time.

This object is a good candidate to be used as a smoother inside MFEMGeometricMultigridSolver.

Example Input File Syntax

[Solvers<<<{"href": "../../../syntax/Solvers/index.html"}>>>]
  [boomeramg]
    type = MFEMHypreBoomerAMG<<<{"description": "Hypre BoomerAMG solver and preconditioner for the iterative solution of MFEM equation systems.", "href": "MFEMHypreBoomerAMG.html"}>>>
    print_level<<<{"description": "Set the solver verbosity."}>>> = 0
  []
  [coarse]
    type = MFEMCGSolver<<<{"description": "MFEM native solver for the iterative solution of MFEM equation systems using the conjugate gradient method.", "href": "MFEMCGSolver.html"}>>>
    preconditioner<<<{"description": "Optional choice of preconditioner to use."}>>> = boomeramg
    l_max_its<<<{"description": "Set the maximum number of iterations."}>>> = 10
    l_tol<<<{"description": "Set the relative tolerance."}>>> = 1e-2
    print_level<<<{"description": "Set the solver verbosity."}>>> = -1
  []
  [chebyshev]
    type = MFEMOperatorChebyshevSmoother<<<{"description": "Chebyshev polynomial smoother backed by mfem::OperatorChebyshevSmoother. Symmetric positive definite by construction; the maximum eigenvalue of D^{-1}A is estimated automatically via a power method. Suitable as a multigrid smoother.", "href": "MFEMOperatorChebyshevSmoother.html"}>>>
    order<<<{"description": "Degree of the Chebyshev polynomial (1-4)."}>>> = 2
  []
  [pmg]
    type = MFEMGeometricMultigridSolver<<<{"description": "Geometric (p-)multigrid preconditioner backed by mfem::GeometricMultigrid. Requires a linear equation system, an MFEMFESpaceHierarchy, and per-level smoother objects.", "href": "MFEMGeometricMultigridSolver.html"}>>>
    variable<<<{"description": "Name of the trial variable this preconditioner acts on."}>>> = concentration
    smoothers<<<{"description": "Names of LinearSolverBase objects used as smoothers on the interior levels (levels 1 to N-1). May have length 1 (used on all interior levels) or N-1 (one per interior level, ordered coarse-to-fine)."}>>> = chebyshev
    coarse_solver<<<{"description": "Name of the LinearSolverBase used on the coarsest level."}>>> = coarse
  []
  [main]
    type = MFEMCGSolver<<<{"description": "MFEM native solver for the iterative solution of MFEM equation systems using the conjugate gradient method.", "href": "MFEMCGSolver.html"}>>>
    preconditioner<<<{"description": "Optional choice of preconditioner to use."}>>> = pmg
    l_tol<<<{"description": "Set the relative tolerance."}>>> = 1e-10
    l_max_its<<<{"description": "Set the maximum number of iterations."}>>> = 200
  []
[]
(test/tests/mfem/solvers/pmg_diffusion.i)

Input Parameters

  • low_order_refinedFalseSet usage of Low-Order Refined solver.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Set usage of Low-Order Refined solver.

  • order2Degree of the Chebyshev polynomial (1-4).

    Default:2

    C++ Type:int

    Controllable:No

    Description:Degree of the Chebyshev polynomial (1-4).

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

    Default:False

    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