Click here to return to main Jetstream Input Parameters page.

These parameters are used with opt_method='get_eigvals'. They are used with the eigenvalue solver. If opt_method='get_eigvals', then the codes will expect that the namelist 'eigv' will be included in the input file. These parameters are contained in that namelist.



eigval% nev

Description: Number of eigenvalues
Parameter Type: Integer
Range of Acceptable Values: 3+
Default Value: 10
User Notes:
The User guide says that convergence can be affected by the number of eigenvalues requested depending on the eigenvalue clustering and number of complex conjugate pairs. If convergence problems are encountered, you can try increasing this number by 1 or 2.


eigval% ncv

Description: Size of the Lancoz/Arnoldi subspace
Parameter Type: Integer
Range of Acceptable Values: Must be >= nev+2
Default Value: 22
User Notes:
The User guide suggests at least 2*nev+1 and a comment in the actual codes suggests 2*nev+2, hence the default value.


eigval% maxitr

Description: Maximum number of iterations. This is not the same as the number of calls to the ARPACK routine dnaupd because dnaupd uses reverse communication to get matvecs and may exit several times per iteration.
Parameter Type: Integer
Default Value: 300


eigval% mode

Description: 1 for regular mode, 3 for shift-invert mode
Parameter Type: Integer
Range of Acceptable Values: 1 or 3
Default Value: 3
User Notes:
If %which='LM', 'LR', or 'LI', then %mode will automatically be set to 1 in the codes. If using %which='SM', 'SR', or 'SI', then 1 or 3 are acceptable input parameters. %mode=1 is much faster but will probably not converge.


eigval% ishfts

Description: A flag to toggle implicit shifting
Parameter Type: Integer
Range of Acceptable Values: 1
Default Value: 1
User Notes:
Don't change this. Implicit shifting is currently not available.


eigval% which

Description: Which eigenvalues to calculate.
Parameter Type: Character
Range of Acceptable Values: 'LM', 'SM', 'LR', 'SR', 'LI', 'SI'
Default Value: 'LM'
User Notes:
Largest magnitude, smallest magnitude, largest real part, smallest real part, largest imaginary part, smallest imaginary part.


eigval% tol

Description: Relative tolerance ||Av - lambda*V||/|lambda| to converge to.
Parameter Type: Real
Range of Acceptable Values: [0,1]
Default Value: 1.d-10
User Notes:
Set to 0.d0 to solve to machine precision. You can easily solve the 'LM' case to machine precision. The default value is nonzero however since for the small eigenvalue cases we need to match this tolerance to the linear solver tolerance. Note that we should expect this tolerance to be approximately the relative error in our eigenvalues, that is tol = |lambda_c - lambda|/|lambda|, approximately.


eigval% ilu_flev

Description: Fill level of ILU(p).
Parameter Type: Integer
Range of Acceptable Values: 0+
Default Value: 4
User Notes:
This is only performed for %which='SM', 'SR', or 'SI'. It only needs to be performed once, so use as high of a fill level as you can get away with for improved efficiency.


eigval% s

Description: Linear solver parameters.Note that %s%matvec is used for all values of %which but all other linear solver parameters are only used for %which='SM', 'SR', or 'SI'.
Parameter Type: LinSolvOpt
Default Values:
eigval%s%solver = 'gcrot' !-- Note: Variable is unused
eigval%s%matvec = 'jacbn' !-- Note: Can be 'jacbn', 'frcht', 'apprx', 'cmplx', 'hysa1', or 'hysa2'. This parameter is used for all %which.
eigval%s%prec = 'schur'
eigval%s%krylv_size = 40
eigval%s%krylv_max = 12345
eigval%s%gcrot_k = 1
eigval%s%sol_init = .false. !-- Note: Variable is unused
eigval%s%rel_lin_tol = 1.d-10 !-- Note: This should be set at least as small as %tol.


eigval% print_lev

Description: How much info to print to screen.
Parameter Type: Integer
Range of Acceptable Values: [0,3]
Default Value: 0
User Notes:
The higher print levels output a bunch of info from the ARPACK routines. Note that this info is output directly from ARPACK and is not generally in very readable format.
0) Just print the converged eigenvalues at the end, as well as the residual ||AV-lambda*V||/|lambda|
1) Also, print some extra info about the number of iterations so far, as well as timing and other statistics at the end (though timing info is currently not displayed properly)
2) Also, print the Ritz values (eigenvalue estimates) after each iteration and the residual norm to help track convergence.
3) Also, print additional info about the Arnoldi vectors being generated at each iteration.