MFEMHypreLOBPCG

Overview

Defines and builds an mfem::HypreLOBPCG eigensolver to compute the lowest eigenmodes of a generalized eigenvalue problem using the MFEM finite element library. LOBPCG (Locally Optimal Block Preconditioned Conjugate Gradient) is an iterative eigensolver well suited to large-scale problems arising from finite element discretizations.

The number of eigenmodes to compute is controlled by the num_modes parameter on the MFEMEigenproblem problem type. This solver cannot be used in conjunction with Low-Order-Refined (LOR) preconditioning.

Example Input File Syntax

[Preconditioner<<<{"href": "../../../syntax/Preconditioner/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
  []
[]

[Solver<<<{"href": "../../../syntax/Solver/index.html"}>>>]
  type = MFEMHypreLOBPCG
  preconditioner = boomeramg
  print_level = 0
  l_tol = 1e-10
  l_max_its = 300
  random_seed = 75
[]
(test/tests/mfem/kernels/diffusion_eigenproblem.i)

Input Parameters

  • l_max_its10000Set the maximum number of iterations.

    Default:10000

    C++ Type:int

    Controllable:No

    Description:Set the maximum number of iterations.

  • l_tol1e-05Set the relative tolerance.

    Default:1e-05

    C++ Type:double

    Unit:(no unit assumed)

    Controllable:No

    Description:Set the relative tolerance.

  • low_order_refinedFalseSet usage of Low-Order Refined solver.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Set usage of Low-Order Refined solver.

  • preconditionerOptional choice of preconditioner to use.

    C++ Type:MFEMSolverName

    Controllable:No

    Description:Optional choice of preconditioner to use.

  • print_level2Set the solver verbosity.

    Default:2

    C++ Type:int

    Controllable:No

    Description:Set the solver verbosity.

  • random_seed123Set the random seed for the solver.

    Default:123

    C++ Type:int

    Controllable:No

    Description:Set the random seed for the 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