Anasazi Version of the Day
Loading...
Searching...
No Matches
List of all members
Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP > Class Template Referenceabstract

This is an abstract base class for the trace minimization eigensolvers. More...

#include <AnasaziTraceMinBase.hpp>

Inheritance diagram for Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >:
Anasazi::Eigensolver< ScalarType, MV, OP > Anasazi::Experimental::TraceMin< ScalarType, MV, OP > Anasazi::Experimental::TraceMinDavidson< ScalarType, MV, OP >

Public Member Functions

Constructor/Destructor
 TraceMinBase (const RCP< Eigenproblem< ScalarType, MV, OP > > &problem, const RCP< SortManager< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > > &sorter, const RCP< OutputManager< ScalarType > > &printer, const RCP< StatusTest< ScalarType, MV, OP > > &tester, const RCP< MatOrthoManager< ScalarType, MV, OP > > &ortho, Teuchos::ParameterList &params)
 TraceMinBase constructor with eigenproblem, solver utilities, and parameter list of solver options.
 
virtual ~TraceMinBase ()
 Anasazi::TraceMinBase destructor.
 
Solver methods
void iterate ()
 This method performs trace minimization iterations until the status test indicates the need to stop or an error occurs (in which case, an appropriate exception is thrown).
 
void harmonicIterate ()
 
void initialize (TraceMinBaseState< ScalarType, MV > &newstate)
 Initialize the solver to an iterate, optionally providing the other members of the state.
 
void harmonicInitialize (TraceMinBaseState< ScalarType, MV > newstate)
 
void initialize ()
 Initialize the solver with the initial vectors from the eigenproblem or random data.
 
bool isInitialized () const
 Indicates whether the solver has been initialized or not.
 
TraceMinBaseState< ScalarType, MV > getState () const
 Get access to the current state of the eigensolver.
 
Status methods
int getNumIters () const
 Get the current iteration count.
 
void resetNumIters ()
 Reset the iteration count.
 
RCP< const MV > getRitzVectors ()
 Get access to the current Ritz vectors.
 
std::vector< Value< ScalarType > > getRitzValues ()
 Get the Ritz values for the previous iteration.
 
std::vector< int > getRitzIndex ()
 Get the index used for extracting individual Ritz vectors from getRitzVectors().
 
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > getResNorms ()
 Get the current residual norms, computing the norms if they are not up-to-date with the current residual vectors.
 
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > getRes2Norms ()
 Get the current residual 2-norms, computing the norms if they are not up-to-date with the current residual vectors.
 
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > getRitzRes2Norms ()
 Get the 2-norms of the residuals.
 
int getCurSubspaceDim () const
 Get the dimension of the search subspace used to generate the current eigenvectors and eigenvalues.
 
int getMaxSubspaceDim () const
 Get the maximum dimension allocated for the search subspace. For the trace minimization methods, this always returns numBlocks*blockSize.
 
Accessor routines from Eigensolver
void setStatusTest (RCP< StatusTest< ScalarType, MV, OP > > test)
 Set a new StatusTest for the solver.
 
RCP< StatusTest< ScalarType, MV, OP > > getStatusTest () const
 Get the current StatusTest used by the solver.
 
const Eigenproblem< ScalarType, MV, OP > & getProblem () const
 Get a constant reference to the eigenvalue problem.
 
void setBlockSize (int blockSize)
 Set the blocksize.
 
int getBlockSize () const
 Get the blocksize used by the iterative solver.
 
void setAuxVecs (const Teuchos::Array< RCP< const MV > > &auxvecs)
 Set the auxiliary vectors for the solver.
 
Teuchos::Array< RCP< const MV > > getAuxVecs () const
 Get the auxiliary vectors for the solver.
 
BlockBase-specific accessor routines
void setSize (int blockSize, int numBlocks)
 Set the blocksize and number of blocks to be used by the iterative solver in solving this eigenproblem.
 
- Public Member Functions inherited from Anasazi::Eigensolver< ScalarType, MV, OP >
 Eigensolver ()
 Default Constructor.
 
 Eigensolver (const Teuchos::RCP< Eigenproblem< ScalarType, MV, OP > > &problem, const Teuchos::RCP< SortManager< ScalarType > > &sorter, const Teuchos::RCP< OutputManager< ScalarType > > &printer, const Teuchos::RCP< StatusTest< ScalarType, MV, OP > > &tester, const Teuchos::RCP< OrthoManager< ScalarType, MV > > &ortho, Teuchos::ParameterList &params)
 Basic Constructor.
 
virtual ~Eigensolver ()
 Destructor.
 
virtual void setStatusTest (Teuchos::RCP< StatusTest< ScalarType, MV, OP > > test)=0
 Set a new StatusTest for the solver.
 
virtual void setAuxVecs (const Teuchos::Array< Teuchos::RCP< const MV > > &auxvecs)=0
 Set the auxiliary vectors for the solver.
 

Output methods

typedef SolverUtils< ScalarType, MV, OP > Utils
 
typedef MultiVecTraits< ScalarType, MV > MVT
 
typedef OperatorTraits< ScalarType, MV, OP > OPT
 
typedef Teuchos::ScalarTraits< ScalarType > SCT
 
typedef SCT::magnitudeType MagnitudeType
 
typedef TraceMinRitzOp< ScalarType, MV, OP > tracemin_ritz_op_type
 
typedef SaddleContainer< ScalarType, MV > saddle_container_type
 
typedef SaddleOperator< ScalarType, MV, tracemin_ritz_op_type > saddle_op_type
 
const MagnitudeType ONE
 
const MagnitudeType ZERO
 
const MagnitudeType NANVAL
 
const RCP< Eigenproblem< ScalarType, MV, OP > > problem_
 
const RCP< SortManager< MagnitudeType > > sm_
 
const RCP< OutputManager< ScalarType > > om_
 
RCP< StatusTest< ScalarType, MV, OP > > tester_
 
const RCP< MatOrthoManager< ScalarType, MV, OP > > orthman_
 
RCP< const OP > Op_
 
RCP< const OP > MOp_
 
RCP< const OP > Prec_
 
bool hasM_
 
RCP< Teuchos::Time > timerOp_
 
RCP< Teuchos::Time > timerMOp_
 
RCP< Teuchos::Time > timerSaddle_
 
RCP< Teuchos::Time > timerSortEval_
 
RCP< Teuchos::Time > timerDS_
 
RCP< Teuchos::Time > timerLocal_
 
RCP< Teuchos::Time > timerCompRes_
 
RCP< Teuchos::Time > timerOrtho_
 
RCP< Teuchos::Time > timerInit_
 
int count_ApplyOp_
 
int count_ApplyM_
 
int blockSize_
 
int numBlocks_
 
bool initialized_
 
int curDim_
 
RCP< MV > X_
 
RCP< MV > KX_
 
RCP< MV > MX_
 
RCP< MV > KV_
 
RCP< MV > MV_
 
RCP< MV > R_
 
RCP< MV > V_
 
RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > KK_
 
RCP< Teuchos::SerialDenseMatrix< int, ScalarType > > ritzVecs_
 
Teuchos::Array< RCP< const MV > > auxVecs_
 
Teuchos::Array< RCP< const MV > > MauxVecs_
 
int numAuxVecs_
 
int iter_
 
std::vector< MagnitudeType > theta_
 
std::vector< MagnitudeType > Rnorms_
 
std::vector< MagnitudeType > R2norms_
 
bool Rnorms_current_
 
bool R2norms_current_
 
RCP< tracemin_ritz_op_type > ritzOp_
 
enum SaddleSolType saddleSolType_
 
bool previouslyLeveled_
 
MagnitudeType previousTrace_
 
bool posSafeToShift_
 
bool negSafeToShift_
 
MagnitudeType largestSafeShift_
 
int NEV_
 
std::vector< ScalarType > ritzShifts_
 
RCP< MV > Z_
 
enum WhenToShiftType whenToShift_
 
enum HowToShiftType howToShift_
 
bool useMultipleShifts_
 
bool considerClusters_
 
bool projectAllVecs_
 
bool projectLockedVecs_
 
bool computeAllRes_
 
bool useRHSR_
 
bool useHarmonic_
 
MagnitudeType traceThresh_
 
MagnitudeType alpha_
 
std::string shiftNorm_
 
MagnitudeType shiftThresh_
 
bool useRelShiftThresh_
 
void currentStatus (std::ostream &os)
 This method requests that the solver print out its current status to the given output stream.
 
std::string accuracyCheck (const CheckList &chk, const std::string &where) const
 
ScalarType getTrace () const
 
bool traceLeveled ()
 
std::vector< ScalarType > getClusterResids ()
 
void computeRitzShifts (const std::vector< ScalarType > &clusterResids)
 
std::vector< ScalarType > computeTol ()
 
void solveSaddlePointProblem (RCP< MV > Delta)
 
void solveSaddleProj (RCP< MV > Delta) const
 
void solveSaddleProjPrec (RCP< MV > Delta) const
 
void solveSaddleSchur (RCP< MV > Delta) const
 
void solveSaddleBDPrec (RCP< MV > Delta) const
 
void solveSaddleHSSPrec (RCP< MV > Delta) const
 
void computeKK ()
 
void computeRitzPairs ()
 
void computeX ()
 
void updateKXMX ()
 
void updateResidual ()
 
virtual void addToBasis (const RCP< const MV > Delta)=0
 
virtual void harmonicAddToBasis (const RCP< const MV > Delta)=0
 

Detailed Description

template<class ScalarType, class MV, class OP>
class Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >

This is an abstract base class for the trace minimization eigensolvers.

For more information, please see Anasazi::TraceMin (with constant subspace dimension) and Anasazi::TraceMinDavidson (with expanding subspaces)

Author
Alicia Klinvex

Definition at line 182 of file AnasaziTraceMinBase.hpp.

Constructor & Destructor Documentation

◆ TraceMinBase()

template<class ScalarType , class MV , class OP >
Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::TraceMinBase ( const RCP< Eigenproblem< ScalarType, MV, OP > > &  problem,
const RCP< SortManager< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > > &  sorter,
const RCP< OutputManager< ScalarType > > &  printer,
const RCP< StatusTest< ScalarType, MV, OP > > &  tester,
const RCP< MatOrthoManager< ScalarType, MV, OP > > &  ortho,
Teuchos::ParameterList &  params 
)

TraceMinBase constructor with eigenproblem, solver utilities, and parameter list of solver options.

This constructor takes pointers required by the eigensolver, in addition to a parameter list of options for the eigensolver. These options include the following:

  • "Saddle Solver Type" - a string specifying how to solve the saddle point problem arising at each iteration. Options are "Projected Krylov", "Schur Complement", and "Block Diagonal Preconditioned Minres". Default: "Projected Krylov"
    • "Projected Krylov": Uses projected-minres to solve the problem.
    • "Schur Complement": Explicitly forms the (inexact) Schur complement using minres.
    • "Block Diagonal Preconditioned Minres": Uses a block preconditioner on the entire saddle point problem. For more information, please see "Overview of Anasazi and its newest eigensolver, TraceMin" on the main Anasazi page. We recommend using "Projected Krylov" in the absence of preconditioning. If you want to use a preconditioner, "Block Diagonal Preconditioned Minres" is recommended. "Schur Complement" mainly exists for special use cases.
  • Ritz shift parameters
    • "When To Shift" - a string specifying when Ritz shifts should be performed. Options are "Never", "After Trace Levels", and "Always". Default: "Always"
      • "Never": Do not perform Ritz shifts. This option produces guaranteed convergence but converges linearly. Not recommended.
      • "After Trace Levels": Do not perform Ritz shifts until the trace of $X^TKX$ has stagnated (i.e. the relative change in trace has become small). The MagnitudeType specifying how small the relative change in trace must become may be provided via the parameter "Trace Threshold", whose default value is 0.02.
      • "Always": Always attempt to use Ritz shifts.
    • "How To Choose Shift" - a string specifying how to choose the Ritz shifts (assuming Ritz shifts are being used). Options are "Largest Converged", "Adjusted Ritz Values", and "Ritz Values". Default: "Adjusted Ritz Values"
      • "Largest Converged": Ritz shifts are chosen to be the largest converged eigenvalue. Until an eigenvalue converges, the Ritz shifts are all 0.
      • "Adjusted Ritz Values": Ritz shifts are chosen based on the Ritz values and their associated residuals in such a way as to guarantee global convergence. This method is described in "The trace minimization method for the symmetric generalized eigenvalue problem."
      • "Ritz Values": Ritz shifts are chosen to equal the Ritz values. This does NOT guarantee global convergence.
    • "Use Multiple Shifts" - a bool specifying whether to use one or many Ritz shifts (assuming shifting is enabled). Default: true

Anasazi's trace minimization solvers are still in development, and we plan to add additional features in the future including additional saddle point solvers.

Definition at line 653 of file AnasaziTraceMinBase.hpp.

◆ ~TraceMinBase()

template<class ScalarType , class MV , class OP >
Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::~TraceMinBase
virtual

Anasazi::TraceMinBase destructor.

Definition at line 777 of file AnasaziTraceMinBase.hpp.

Member Function Documentation

◆ iterate()

template<class ScalarType , class MV , class OP >
void Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::iterate
virtual

This method performs trace minimization iterations until the status test indicates the need to stop or an error occurs (in which case, an appropriate exception is thrown).

iterate() will first determine whether the solver is initialized; if not, it will call initialize(). After initialization, the solver performs TraceMin iterations until the status test evaluates as Passed, at which point the method returns to the caller.

The trace minimization iteration proceeds as follows:

  1. Solve the saddle point problem to obtain Delta
  2. Add Delta to the basis In TraceMin, this is done by computing V := X - Delta, then projecting and normalizing. In TraceMinDavidson, this is done by computing V := [V Delta], then projecting and normalizing
  3. Compute the Ritz pairs.
  4. Update the residual.

The status test is queried at the beginning of the iteration.

Possible exceptions thrown include std::invalid_argument or one of the TraceMinBase-specific exceptions.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 929 of file AnasaziTraceMinBase.hpp.

◆ initialize() [1/2]

template<class ScalarType , class MV , class OP >
void Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::initialize ( TraceMinBaseState< ScalarType, MV > &  newstate)

Initialize the solver to an iterate, optionally providing the other members of the state.

The TraceMinBase eigensolver contains a certain amount of state, including the current Krylov basis, the current eigenvectors, the current residual, etc. (see getState())

initialize() gives the user the opportunity to manually set these, although this must be done with caution, as the validity of the user input will not be checked.

Postcondition
isInitialized() == true (see post-conditions of isInitialize())

The user has the option of specifying any component of the state using initialize(). However, these arguments are assumed to match the post-conditions specified under isInitialized(). Any component of the state (i.e., KX) not given to initialize() will be generated.

Note, for any pointer in newstate which directly points to the multivectors in the solver, the data is not copied.

Definition at line 1167 of file AnasaziTraceMinBase.hpp.

◆ initialize() [2/2]

template<class ScalarType , class MV , class OP >
void Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::initialize
virtual

Initialize the solver with the initial vectors from the eigenproblem or random data.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 1146 of file AnasaziTraceMinBase.hpp.

◆ isInitialized()

template<class ScalarType , class MV , class OP >
bool Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::isInitialized
virtual

Indicates whether the solver has been initialized or not.

Returns
bool indicating the state of the solver.
Postcondition
If isInitialized() == true:
  • getCurSubspaceDim() > 0 and is a multiple of getBlockSize()
  • the first getCurSubspaceDim() vectors of V are orthogonal to auxiliary vectors and have orthonormal columns
  • the principal submatrix of order getCurSubspaceDim() of KK contains the projected eigenproblem matrix
  • X contains the Ritz vectors with respect to the current Krylov basis
  • T contains the Ritz values with respect to the current Krylov basis
  • KX == Op*X
  • MX == M*X if M != Teuchos::null
    Otherwise, MX == Teuchos::null
  • R contains the residual vectors with respect to X

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 2301 of file AnasaziTraceMinBase.hpp.

◆ getState()

template<class ScalarType , class MV , class OP >
TraceMinBaseState< ScalarType, MV > Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getState

Get access to the current state of the eigensolver.

The data is only valid if isInitialized() == true.

Returns
A TraceMinBaseState object containing const pointers to the current solver state. Note, these are direct pointers to the multivectors; they are not pointers to views of the multivectors.

Definition at line 889 of file AnasaziTraceMinBase.hpp.

◆ getNumIters()

template<class ScalarType , class MV , class OP >
int Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getNumIters
virtual

Get the current iteration count.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 881 of file AnasaziTraceMinBase.hpp.

◆ resetNumIters()

template<class ScalarType , class MV , class OP >
void Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::resetNumIters
virtual

Reset the iteration count.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 873 of file AnasaziTraceMinBase.hpp.

◆ getRitzVectors()

template<class ScalarType , class MV , class OP >
RCP< const MV > Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getRitzVectors
virtual

Get access to the current Ritz vectors.

Returns
A multivector with getBlockSize() vectors containing the sorted Ritz vectors corresponding to the most significant Ritz values. The i-th vector of the return corresponds to the i-th Ritz vector; there is no need to use getRitzIndex().

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 865 of file AnasaziTraceMinBase.hpp.

◆ getRitzValues()

template<class ScalarType , class MV , class OP >
std::vector< Value< ScalarType > > Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getRitzValues
virtual

Get the Ritz values for the previous iteration.

Returns
A vector of length getCurSubspaceDim() containing the Ritz values from the previous projected eigensolve.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 852 of file AnasaziTraceMinBase.hpp.

◆ getRitzIndex()

template<class ScalarType , class MV , class OP >
std::vector< int > Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getRitzIndex
virtual

Get the index used for extracting individual Ritz vectors from getRitzVectors().

Because the trace minimization methods are a Hermitian solvers, all Ritz values are real and all Ritz vectors can be represented in a single column of a multivector. Therefore, getRitzIndex() is not needed when using the output from getRitzVectors().

Returns
An int vector of size getCurSubspaceDim() composed of zeros.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 843 of file AnasaziTraceMinBase.hpp.

◆ getResNorms()

template<class ScalarType , class MV , class OP >
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getResNorms
virtual

Get the current residual norms, computing the norms if they are not up-to-date with the current residual vectors.

Returns
A vector of length getCurSubspaceDim() containing the norms of the residuals, with respect to the orthogonalization manager's norm() method.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 2497 of file AnasaziTraceMinBase.hpp.

◆ getRes2Norms()

template<class ScalarType , class MV , class OP >
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getRes2Norms
virtual

Get the current residual 2-norms, computing the norms if they are not up-to-date with the current residual vectors.

Returns
A vector of length getCurSubspaceDim() containing the 2-norms of the current residuals.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 2539 of file AnasaziTraceMinBase.hpp.

◆ getRitzRes2Norms()

template<class ScalarType , class MV , class OP >
std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getRitzRes2Norms
virtual

Get the 2-norms of the residuals.

The Ritz residuals are not defined for trace minimization iterations. Hence, this method returns the 2-norms of the direct residuals, and is equivalent to calling getRes2Norms().

Returns
A vector of length getBlockSize() containing the 2-norms of the direct residuals.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 835 of file AnasaziTraceMinBase.hpp.

◆ getCurSubspaceDim()

template<class ScalarType , class MV , class OP >
int Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getCurSubspaceDim
virtual

Get the dimension of the search subspace used to generate the current eigenvectors and eigenvalues.

Returns
An integer specifying the rank of the Krylov subspace currently in use by the eigensolver. If isInitialized() == false, the return is 0. Otherwise, it will be some strictly positive multiple of getBlockSize().

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 825 of file AnasaziTraceMinBase.hpp.

◆ getMaxSubspaceDim()

template<class ScalarType , class MV , class OP >
int Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getMaxSubspaceDim
virtual

Get the maximum dimension allocated for the search subspace. For the trace minimization methods, this always returns numBlocks*blockSize.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 818 of file AnasaziTraceMinBase.hpp.

◆ setStatusTest()

template<class ScalarType , class MV , class OP >
void Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::setStatusTest ( RCP< StatusTest< ScalarType, MV, OP > >  test)

Set a new StatusTest for the solver.

Definition at line 2581 of file AnasaziTraceMinBase.hpp.

◆ getStatusTest()

template<class ScalarType , class MV , class OP >
RCP< StatusTest< ScalarType, MV, OP > > Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getStatusTest
virtual

Get the current StatusTest used by the solver.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 2590 of file AnasaziTraceMinBase.hpp.

◆ getProblem()

template<class ScalarType , class MV , class OP >
const Eigenproblem< ScalarType, MV, OP > & Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getProblem
virtual

Get a constant reference to the eigenvalue problem.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 810 of file AnasaziTraceMinBase.hpp.

◆ setBlockSize()

template<class ScalarType , class MV , class OP >
void Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::setBlockSize ( int  blockSize)
virtual

Set the blocksize.

This method is required to support the interface provided by Eigensolver. However, the preferred method of setting the allocated size for the TraceMinBase eigensolver is setSize(). In fact, setBlockSize() simply calls setSize(), maintaining the current number of blocks.

The block size determines the number of Ritz vectors and values that are computed on each iteration, thereby determining the increase in the subspace dimension at each iteration.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 784 of file AnasaziTraceMinBase.hpp.

◆ getBlockSize()

template<class ScalarType , class MV , class OP >
int Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getBlockSize
virtual

Get the blocksize used by the iterative solver.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 802 of file AnasaziTraceMinBase.hpp.

◆ setAuxVecs()

template<class ScalarType , class MV , class OP >
void Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::setAuxVecs ( const Teuchos::Array< RCP< const MV > > &  auxvecs)

Set the auxiliary vectors for the solver.

Auxiliary vectors are ones that you want your eigenvectors to be held orthogonal to. One example of where you may want to use this is in the computation of the Fiedler vector, where you would likely want to project against the vector of all 1s.

Because the current basis V cannot be assumed orthogonal to the new auxiliary vectors, a call to setAuxVecs() will reset the solver to the uninitialized state. This happens only in the case where the new auxiliary vectors have a combined dimension of greater than zero.

In order to preserve the current state, the user will need to extract it from the solver using getState(), orthogonalize it against the new auxiliary vectors, and reinitialize using initialize().

Definition at line 2453 of file AnasaziTraceMinBase.hpp.

◆ getAuxVecs()

template<class ScalarType , class MV , class OP >
Teuchos::Array< RCP< const MV > > Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::getAuxVecs
virtual

Get the auxiliary vectors for the solver.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 794 of file AnasaziTraceMinBase.hpp.

◆ setSize()

template<class ScalarType , class MV , class OP >
void Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::setSize ( int  blockSize,
int  numBlocks 
)

Set the blocksize and number of blocks to be used by the iterative solver in solving this eigenproblem.

Changing either the block size or the number of blocks will reset the solver to an uninitialized state.

Definition at line 2307 of file AnasaziTraceMinBase.hpp.

◆ currentStatus()

template<class ScalarType , class MV , class OP >
void Anasazi::Experimental::TraceMinBase< ScalarType, MV, OP >::currentStatus ( std::ostream &  os)
virtual

This method requests that the solver print out its current status to the given output stream.

Implements Anasazi::Eigensolver< ScalarType, MV, OP >.

Definition at line 2598 of file AnasaziTraceMinBase.hpp.


The documentation for this class was generated from the following file: