MFEMHypreAME

Overview

Defines and builds an mfem::HypreAME eigensolver to compute the lowest eigenmodes of a generalized eigenvalue problem using the MFEM finite element library. AME (Auxiliary-space Maxwell Eigensolver) is designed specifically for Maxwell eigenproblems discretized with Nédélec (edge) elements in spaces, and should be used in conjunction with an MFEMHypreAMS preconditioner.

When solving a Maxwell eigenproblem, the MFEMHypreAMS preconditioner should be constructed with singular = true to account for the kernel of the curl-curl operator.

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"}>>>]
  [ams]
    type = MFEMHypreAMS<<<{"description": "Hypre auxiliary-space Maxwell solver and preconditioner for the iterative solution of MFEM equation systems.", "href": "MFEMHypreAMS.html"}>>>
    fespace<<<{"description": "H(curl) FESpace to use in HypreAMS setup."}>>> = HCurlFESpace
    print_level<<<{"description": "Set the solver verbosity."}>>> = 0
    singular<<<{"description": "Declare that the system is singular; use when solving curl-curl problem if mass term is zero"}>>> = true
  []
[]

[Solver<<<{"href": "../../../syntax/Solver/index.html"}>>>]
  type = MFEMHypreAME
  preconditioner = ams
  print_level = 0
  l_tol = 1e-8
  l_max_its = 100
[]
(test/tests/mfem/kernels/maxwell_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.

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