9
9
"Solver" :
10
10
{
11
11
"Order" : <int>,
12
+ "PartialAssemblyOrder" : <int>,
13
+ "Device" : <string>,
12
14
"Eigenmode" :
13
15
{
14
16
...
40
42
41
43
` "Order" [1] ` : Finite element order (degree). Arbitrary high-order spaces are supported.
42
44
45
+ ` "PartialAssemblyOrder" [100] ` : Order at which to switch from full assembly of finite
46
+ element operators to [ partial assembly] ( https://mfem.org/howto/assembly_levels/ ) . Setting
47
+ this parameter equal to 1 will fully activate operator partial assembly on all levels.
48
+
49
+ ` "Device" ["cpu"] ` : The device configuration passed to [ MFEM]
50
+ (https://mfem.org/howto/assembly_levels/ ) in order to activate different backends at
51
+ runtime. CPU-based partial assembly is supported by the ` "cpu" ` backend for tensor-product
52
+ meshes using the native MFEM kernels and ` "ceed-cpu" ` backend for all mesh types using
53
+ libCEED.
54
+
43
55
` "Eigenmode" ` : Top-level object for configuring the eigenvalue solver for the eigenmode
44
56
simulation type. Thus, this object is only relevant for
45
57
[ ` config["Problem"]["Type"]: "Eigenmode" ` ] ( problem.md#config%5B%22Problem%22%5D ) .
@@ -299,13 +311,13 @@ directory specified by [`config["Problem"]["Output"]`]
299
311
"Tol" : <float>,
300
312
"MaxIts" : <int>,
301
313
"MaxSize" : <int>,
302
- "UsePCMatShifted" : <bool>,
303
- "PCSide" : <string>,
304
- "UseMultigrid" : <bool>,
305
- "MGAuxiliarySmoother" : <bool>,
314
+ "MGMaxLevels" : <int>,
315
+ "MGCoarsenType" : <string>,
306
316
"MGCycleIts" : <int>,
307
317
"MGSmoothIts" : <int>,
308
318
"MGSmoothOrder" : <int>,
319
+ "PCMatShifted" : <bool>,
320
+ "PCSide" : <string>,
309
321
"DivFreeTol" : <float>,
310
322
"DivFreeMaxIts" : <float>,
311
323
"GSOrthogonalization" : <string>
@@ -365,26 +377,15 @@ equations arising for each simulation type. The available options are:
365
377
` "MaxSize" [0] ` : Maximum Krylov space size for the GMRES and FGMRES solvers. A value less
366
378
than 1 defaults to the value specified by ` "MaxIts" ` .
367
379
368
- ` "UsePCMatShifted" [false] ` : When set to ` true ` , constructs the preconditioner for frequency
369
- domain problems using a real SPD approximation of the system matrix, which can help
370
- performance at high frequencies (relative to the lowest nonzero eigenfrequencies of the
371
- model).
372
-
373
- ` "PCSide" ["Default"] ` : Side for preconditioning. Not all options are available for all
374
- iterative solver choices, and the default choice depends on the iterative solver used.
375
-
376
- - ` "Left" `
377
- - ` "Right" `
378
- - ` "Default" `
379
-
380
- ` "UseMultigrid" [true] ` : Chose whether to enable [ geometric multigrid preconditioning]
380
+ ` "MGMaxLevels" [100] ` : Chose whether to enable [ geometric multigrid preconditioning]
381
381
(https://en.wikipedia.org/wiki/Multigrid_method ) which uses p- and h-multigrid coarsening as
382
382
available to construct the multigrid hierarchy. The solver specified by ` "Type" ` is used on
383
383
the coarsest level. Relaxation on the fine levels is performed with Chebyshev smoothing.
384
384
385
- ` "MGAuxiliarySmoother" ` : Activate hybrid smoothing from Hiptmair for multigrid levels when
386
- ` "UseMultigrid" ` is ` true ` . For non-singular problems involving curl-curl operators, this
387
- option is ` true ` by default.
385
+ ` "MGCoarsenType" ["Logarithmic"] ` : Coarsening to create p-multigrid levels.
386
+
387
+ - ` "Logarithmic" `
388
+ - ` "Linear" `
388
389
389
390
` "MGCycleIts" [1] ` : Number of V-cycle iterations per preconditioner application for
390
391
multigrid preconditioners (when ` "UseMultigrid" ` is ` true ` or ` "Type" ` is ` "AMS" ` or
@@ -396,6 +397,18 @@ preconditioners (when `"UseMultigrid"` is `true` or `"Type"` is `"AMS"` or `"Boo
396
397
` "MGSmoothOrder" [3] ` : Order of polynomial smoothing for geometric multigrid
397
398
preconditioning (when ` "UseMultigrid" ` is ` true ` ).
398
399
400
+ ` "PCMatShifted" [false] ` : When set to ` true ` , constructs the preconditioner for frequency
401
+ domain problems using a real SPD approximation of the system matrix, which can help
402
+ performance at high frequencies (relative to the lowest nonzero eigenfrequencies of the
403
+ model).
404
+
405
+ ` "PCSide" ["Default"] ` : Side for preconditioning. Not all options are available for all
406
+ iterative solver choices, and the default choice depends on the iterative solver used.
407
+
408
+ - ` "Left" `
409
+ - ` "Right" `
410
+ - ` "Default" `
411
+
399
412
` "DivFreeTol" [1.0e-12] ` : Relative tolerance for divergence-free cleaning used in the
400
413
eigenmode simulation type.
401
414
@@ -411,10 +424,11 @@ vectors in Krylov subspace methods or other parts of the code.
411
424
412
425
### Advanced linear solver options
413
426
414
- - ` "UseInitialGuess" [true] `
415
- - ` "UsePartialAssembly" [false] `
416
- - ` "UseLowOrderRefined" [false] `
417
- - ` "Reordering" ["Default"] ` : ` "METIS" ` , ` "ParMETIS" ` ,` "Scotch" ` , ` "PTScotch" ` ,
427
+ - ` "InitialGuess" [true] `
428
+ - ` "MGLegacyTransfer" [false] `
429
+ - ` "MGAuxiliarySmoother" [true] `
430
+ - ` "PCLowOrderRefined" [false] `
431
+ - ` "ColumnOrdering" ["Default"] ` : ` "METIS" ` , ` "ParMETIS" ` ,` "Scotch" ` , ` "PTScotch" ` ,
418
432
` "Default" `
419
433
- ` "STRUMPACKCompressionType" ["None"] ` : ` "None" ` , ` "BLR" ` , ` "HSS" ` , ` "HODLR" ` , ` "ZFP" ` ,
420
434
` "BLR-HODLR" ` , ` "ZFP-BLR-HODLR" `
0 commit comments