EPSSetDimensions#

Sets the number of eigenvalues to compute and the dimension of the subspace.

Synopsis#

#include "slepceps.h" 
PetscErrorCode EPSSetDimensions(EPS eps,PetscInt nev,PetscInt ncv,PetscInt mpd)

Logically Collective

Input Parameters#

  • eps - the linear eigensolver context

  • nev - number of eigenvalues to compute

  • ncv - the maximum dimension of the subspace to be used by the solver

  • mpd - the maximum dimension allowed for the projected problem

Options Database Keys#

  • -eps_nev <nev> - sets the number of eigenvalues

  • -eps_ncv <ncv> - sets the dimension of the subspace

  • -eps_mpd <mpd> - sets the maximum projected dimension

Notes#

Use PETSC_DETERMINE for ncv and mpd to assign a reasonably good value, which is dependent on the solution method. For any of the arguments, use PETSC_CURRENT to preserve the current value.

The parameters ncv and mpd are intimately related, so that the user is advised to set one of them at most. Normal usage is:

  1. In cases where nev is small, the user sets ncv (a reasonable default is 2*nev).

  2. In cases where nev is large, the user sets mpd.

The value of ncv should always be between nev and (nev+mpd), typically ncv=nev+mpd. If nev is not too large, mpd=nev is a reasonable choice, otherwise a smaller value should be used.

When computing all eigenvalues in an interval, see EPSSetInterval(), these parameters lose relevance, and tuning must be done with EPSKrylovSchurSetDimensions().

See Also#

EPS: Eigenvalue Problem Solver, EPSGetDimensions(), EPSSetInterval(), EPSKrylovSchurSetDimensions()

Level#

intermediate

Location#

src/eps/interface/epsopts.c

Examples#

src/eps/tutorials/ex30.c
src/eps/tutorials/ex43.c

Implementations#

EPSSetDimensions_LOBPCG() in src/eps/impls/cg/lobpcg/lobpcg.c
EPSSetDimensions_BLOPEX() in src/eps/impls/external/blopex/blopex.c


Index of all EPS routines Table of Contents for all manual pages Index of all manual pages