From 2e0a356529169a9992c6780a99008c3b329f6343 Mon Sep 17 00:00:00 2001 From: Sebastian Grimberg Date: Wed, 16 Aug 2023 16:11:32 -0700 Subject: [PATCH] Update JSON Schema and docs for new configuration file options --- docs/src/config/solver.md | 16 ++++++++++++---- scripts/schema/config/solver.json | 6 +++++- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/docs/src/config/solver.md b/docs/src/config/solver.md index d278c96c4..2f0d05de6 100644 --- a/docs/src/config/solver.md +++ b/docs/src/config/solver.md @@ -316,6 +316,7 @@ directory specified by [`config["Problem"]["Output"]`] "MGCycleIts": , "MGSmoothIts": , "MGSmoothOrder": , + "PCMatReal": , "PCMatShifted": , "PCSide": , "DivFreeTol": , @@ -394,13 +395,17 @@ multigrid preconditioners (when `"UseMultigrid"` is `true` or `"Type"` is `"AMS" `"MGSmoothIts" [1]` : Number of pre- and post-smooth iterations used for multigrid preconditioners (when `"UseMultigrid"` is `true` or `"Type"` is `"AMS"` or `"BoomerAMG"`). -`"MGSmoothOrder" [3]` : Order of polynomial smoothing for geometric multigrid +`"MGSmoothOrder" [4]` : Order of polynomial smoothing for geometric multigrid preconditioning (when `"UseMultigrid"` is `true`). +`"PCMatReal" [false]` : When set to `true`, constructs the preconditioner for frequency +domain problems using a real-valued approximation of the system matrix. This is always +performed for the coarsest multigrid level regardless of the setting of `"PCMatReal"`. + `"PCMatShifted" [false]` : When set to `true`, constructs the preconditioner for frequency -domain problems using a real SPD approximation of the system matrix, which can help -performance at high frequencies (relative to the lowest nonzero eigenfrequencies of the -model). +domain problems using a positive definite approximation of the system matrix by flipping +the sign for the mass matrix contribution, which can help performance at high frequencies +(relative to the lowest nonzero eigenfrequencies of the model). `"PCSide" ["Default"]` : Side for preconditioning. Not all options are available for all iterative solver choices, and the default choice depends on the iterative solver used. @@ -427,6 +432,9 @@ vectors in Krylov subspace methods or other parts of the code. - `"InitialGuess" [true]` - `"MGLegacyTransfer" [false]` - `"MGAuxiliarySmoother" [true]` + - `"MGSmoothEigScaleMax" [1.0]` + - `"MGSmoothEigScaleMin" [0.0]` + - `"MGSmoothChebyshev4th" [true]` - `"PCLowOrderRefined" [false]` - `"ColumnOrdering" ["Default"]` : `"METIS"`, `"ParMETIS"`,`"Scotch"`, `"PTScotch"`, `"Default"` diff --git a/scripts/schema/config/solver.json b/scripts/schema/config/solver.json index 498cb3ec4..bae4e1ae1 100644 --- a/scripts/schema/config/solver.json +++ b/scripts/schema/config/solver.json @@ -110,8 +110,12 @@ "MGCycleIts": { "type": "integer", "exclusiveMinimum": 0 }, "MGSmoothIts": { "type": "integer", "exclusiveMinimum": 0 }, "MGSmoothOrder": { "type": "integer", "exclusiveMinimum": 0 }, - "PCLowOrderRefined": { "type": "boolean" }, + "MGSmoothEigScaleMax": { "type": "number", "exclusiveMinimum": 0 }, + "MGSmoothEigScaleMin": { "type": "number", "minimum": 0 }, + "MGSmoothChebyshev4th": { "type": "boolean" }, + "PCMatReal": { "type": "boolean" }, "PCMatShifted": { "type": "boolean" }, + "PCLowOrderRefined": { "type": "boolean" }, "PCSide": { "type": "string" }, "ColumnOrdering": { "type": "string" }, "STRUMPACKCompressionType": { "type": "string" },