SRQCG

This class is used to manage the SRQCG Method. More…

#include "SRQCG.h"

Inherits from EigSolver

Public Functions

Name
SRQCG()
Constructs the object.
~SRQCG()
Deletes the object.
void set_orth_freq(const iReg orth_freq_in)
Sets orth_freq.
void set_ritz_freq(const iReg ritz_freq_in)
Sets ritz_freq.
iReg get_orth_freq() const
Gets orth_freq.
iReg get_ritz_freq() const
Gets ritz_freq.
virtual void Set_Solver(MatrixProd &restrict MAT, MatrixProd *const restrict PREC =nullptr)
Sets the solver.
virtual void Solve(MatrixProd &restrict MAT, const DDMat &restrict V0, VEC< rExt > &restrict EigValues, DDMat &restrict EigVectors, MatrixProd *const restrict PREC_IN =nullptr)
Solves the eigenvalue problem.

Additional inherited members

Public Functions inherited from EigSolver

Name
virtual ~EigSolver() =0
Deletes the object.
void set_maxITER(const iReg input_maxITER)
Sets the maximum number of iterations.
void set_exitTOL(const rExt input_exitTOL)
Sets the exit tolerance.
void set_nEigs(const iReg input_nEigs)
Sets the number of eigenpairs seeked in the solve stage.
bool get_solAVAIL() const
Returns the value of solAVAIL.
iReg get_maxITER() const
Returns the value of maxITER.
iReg get_exitTOL() const
Returns the value of exitTOL.
iReg get_nEigs() const
Returns the number of eigenpairs seeked in the solve stage.
iReg get_ITER() const
Returns the number of iterations performed in previous solution.
const VEC< rExt > * get_ptr_normRES_eigvals() const
Returns an handle to the Euclidean norm of the final iterative residual for each eigenvalue.
const VEC< rExt > * get_ptr_normRES_eigvect() const
Returns an handle to the Euclidean norm of the final iterative residual for each eigenvalue.

Protected Functions inherited from EigSolver

Name
void alloc_normRES()
Allocates residual norms.
void delete_normRES()
Deletes residual norms.

Protected Attributes inherited from EigSolver

Name
bool solAVAIL
Flag denoting whether a solution is available or not.
iReg maxITER
Maximum number of iterations (parameter to be set before solve).
rExt exitTOL
Exit tolerance (parameter to be set before solve).
iReg nEigs
Number of eigenpairs seeked in the solve stage.
iReg ITER
Total number of iterations.
VEC< rExt > normRES_eigvals
Euclidean norm of the final iterative residual for each eigenvalue.
VEC< rExt > normRES_eigvect
Euclidean norm of the final iterative residual for each eigenvector.

Detailed Description

class SRQCG;

This class is used to manage the SRQCG Method.

class SRQCG.

Public Functions Documentation

function SRQCG

SRQCG()

Constructs the object.

function ~SRQCG

~SRQCG()

Deletes the object.

function set_orth_freq

inline void set_orth_freq(
    const iReg orth_freq_in
)

Sets orth_freq.

function set_ritz_freq

inline void set_ritz_freq(
    const iReg ritz_freq_in
)

Sets ritz_freq.

function get_orth_freq

inline iReg get_orth_freq() const

Gets orth_freq.

function get_ritz_freq

inline iReg get_ritz_freq() const

Gets ritz_freq.

function Set_Solver

virtual void Set_Solver(
    MatrixProd &__restrict__ MAT,
    MatrixProd *const __restrict__ PREC =nullptr
)

Sets the solver.

Parameters:

  • MAT system matrix.
  • PREC preconditioner (optional).

Reimplements: EigSolver::Set_Solver

function Solve

virtual void Solve(
    MatrixProd &__restrict__ MAT,
    const DDMat &__restrict__ V0,
    VEC< rExt > &__restrict__ EigValues,
    DDMat &__restrict__ EigVectors,
    MatrixProd *const __restrict__ PREC_IN =nullptr
)

Solves the eigenvalue problem.

Parameters:

  • MAT system matrix. [in] V0 input tentative eigenspace. If its size is smaller than the number of eigenpairs seeked, the tentative eigenspace is padded with random vectors.

Reimplements: EigSolver::Solve


Updated on 12 February 2021 at 11:59:50 CET