- fespaceH(curl) FESpace to use in HypreAMS setup.
C++ Type:MFEMFESpaceName
Controllable:No
Description:H(curl) FESpace to use in HypreAMS 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.
- singularFalseDeclare that the system is singular; use when solving curl-curl problem if mass term is zero
Default:False
C++ Type:bool
Controllable:No
Description:Declare that the system is singular; use when solving curl-curl problem if mass term is zero
MFEMHypreAMS
Overview
Defines and builds an mfem::HypreAMS solver to use as a preconditioner or solver to solve the MFEM equation system. Most effective for preconditioning and solving a curl-curl problem when using Nédélec elements, in which case the FE space should be passed to the mfem::HypreAMS solver during construction.
If the system of equations is singular - commonly arising, for example, when solving for the magnetic vector potential in magnetostatic systems in the steady state - users should set the singular parameter to true to add a small mass term to ensure solvability.
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"}>>>]
[HCurlFESpace]
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."}>>> = ND
fec_order<<<{"description": "Order of the FE shape function to use."}>>> = FIRST
[]
[]
[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
[]
[]
[Solver<<<{"href": "../../../syntax/Solver/index.html"}>>>]
type = MFEMHypreGMRES
preconditioner = ams
l_tol = 1e-12
[](test/tests/mfem/kernels/curlcurl.i)Input 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
- (test/tests/mfem/submeshes/hphi_magnetodynamic.i)
- (test/tests/mfem/submeshes/av_magnetostatic.i)
- (test/tests/mfem/vectorpostprocessors/point_value_sampler/point_value_sampler_curlcurl.i)
- (test/tests/mfem/kernels/maxwell_eigenproblem.i)
- (test/tests/mfem/kernels/curlcurl.i)
- (test/tests/mfem/vectorpostprocessors/line_value_sampler/line_value_sampler_curlcurl.i)
- (test/tests/mfem/submeshes/magnetostatic.i)