algorithm section

The algorithm section defines the numerical strategy used to solve the response equations.

The section is optional. plasmonX will decide the best algorithm based on the CPU/OMP parameters and the maximum memory available.

Valid keywords

Keyword

Type

Allowed Values

Default

method

string

inversion, iterative, iterative on the fly

parallel execution

string

matrix, frequencies

number of iterations

integer

1

gmres dimension

integer

1000

tolerance

float or string

\(E_0 \times 10^{-5}\)

adaptive tuning

string

yes, no

yes

Notes

  • method determines the solving strategy:

    • inversion : inversion of the response matrix by LU factorization through LaPACK [default for small systems].

    • iterative : GMRES Krylov-based solver by storing the matrices on memory.

    • iterative on the fly : GMRES Krylov-based solver by on the fly matrix-vector products [default for large systems].

  • parallel execution determines what to parallelize:

    • frequencies : the external cycle on frequencies is parallelized.

    • matrix : the construction of the matrices is parallelized.

  • number of iterations determines the number of external iterations for iterative and iterative on the fly algorithm [not currently exploited].

  • gmres dimension determines the number of microiterations for iterative and iterative on the fly algorithm [default: 1000].

  • tolerance determines the convergence threshold (default: \(E_0 \times 10^{-5}\)). This value is scaled for ensure RMSE convergence.

  • adaptive tuning determines whether to allow plasmonX to change the input parameters for best execution.

Example

algorithm:
  method: iterative
  parallel execution: matrix
  gmres dimension: 1000
  tolerance: 1e-6
  adaptive tuning: 'no'