MFEMHypreADS

Overview

Defines and builds an mfem::HypreADS solver to use as a preconditioner or solver to solve the MFEM equation system. Most effective for preconditioning and solving a grad-divergence problem when using Raviart-Thomas elements, in which case the FE space should be passed to the mfem::HypreADS solver during construction.

A Low-Order-Refined (LOR) version of this solver may be used instead by setting the parameter "low_order_refined" to true. Using an LOR solver improves performance for high polynomial order systems.

Example Input File Syntax

[FESpaces<<<{"href": "../../../syntax/FESpaces/index.html"}>>>]
  [HDivFESpace]
    type = MFEMVectorFESpace<<<{"description": "Convenience class to construct vector finite element spaces, abstracting away some of the mathematical complexity of specifying the dimensions.", "href": "../fespaces/MFEMVectorFESpace.html"}>>>
    fec_type<<<{"description": "Specifies the family of FE shape functions."}>>> = RT
    fec_order<<<{"description": "Order of the FE shape function to use."}>>> = CONSTANT
    ordering<<<{"description": "Ordering style to use for vector DoFs."}>>> = "vdim"
  []
[]

[Preconditioner<<<{"href": "../../../syntax/Preconditioner/index.html"}>>>]
  [ADS]
    type = MFEMHypreADS<<<{"description": "Hypre auxiliary-space divergence solver and preconditioner for the iterative solution of MFEM equation systems.", "href": "MFEMHypreADS.html"}>>>
    fespace<<<{"description": "H(div) FESpace to use in HypreADS setup."}>>> = HDivFESpace
  []
[]

[Solver<<<{"href": "../../../syntax/Solver/index.html"}>>>]
  type = MFEMCGSolver
  preconditioner = ADS
  l_tol = 1e-16
  l_max_its = 1000
  print_level = 2
[]
(test/tests/mfem/kernels/graddiv.i)

Input Parameters

  • fespaceH(div) FESpace to use in HypreADS setup.

    C++ Type:MFEMFESpaceName

    Controllable:No

    Description:H(div) FESpace to use in HypreADS setup.

  • low_order_refinedFalseSet usage of Low-Order Refined solver.

    Default:False

    C++ Type:bool

    Controllable:No

    Description:Set usage of Low-Order Refined solver.

  • 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