-
Notifications
You must be signed in to change notification settings - Fork 3
Settings
This module implements the settings and the metadata structs for the solver.
The settings
struct contains the settings used for the solver, including all the settings for the initialization, partition, where the code should be run etc. The main settings are:
-
Executor: As with ginkgo, you can use
omp
,reference
andcuda
depending on where you would want to run the code. -
Partition settings: This controls the with what algorithm the matrix should be partitioned.
-
Convergence settings: This controls what type of convergence settings should be used.
-
Local solver settings: This controls what local solver is used in each of the subdomains.
-
Communication settings: These settings control the type of communication in the communication class such as enabling and disabling
onesided
communication.
The metadata
struct contains the solver metadata. This metadata is passed around along with the settings to help the easy solution. It contains:
-
Sizes and dimensions: It contains the various sizes and dimensions of the different solution vectors and arrays.
-
Essential data: It contains some solver metadata such as the local solver tolerance, the global iteration count, the residual norms, a
time_struct
to help time the functions etc. -
Arrays and vectors: Additionally it also contains some helper arrays and vectors such as the
local_to_global
mapping, the indices of the row overlap, the permutation vectors etc.