Public Member Functions | Private Types | Private Attributes | List of all members
oomph::ANASAZI Class Reference

Class for the Anasazi eigensolver. More...

#include <trilinos_eigen_solver.h>

+ Inheritance diagram for oomph::ANASAZI:

Public Member Functions

 ANASAZI ()
 Constructor. More...
 
 ANASAZI (const ANASAZI &)
 Empty copy constructor. More...
 
virtual ~ANASAZI ()
 Destructor, delete the linear solver. More...
 
int & narnoldi ()
 Access function for the number of Arnoldi vectors. More...
 
const int & narnoldi () const
 Access function for the number of Arnoldi vectors (const version) More...
 
void enable_compute_eigenvectors ()
 Set to enable the computation of the eigenvectors (default) More...
 
void disable_compute_eigenvectors ()
 Set to disable the computation of the eigenvectors. More...
 
void solve_eigenproblem (Problem *const &problem_pt, const int &n_eval, Vector< std::complex< double > > &eigenvalue, Vector< DoubleVector > &eigenvector)
 Solve the eigen problem. More...
 
void get_eigenvalues_left_of_shift ()
 Set the desired eigenvalues to be left of the shift. More...
 
void get_eigenvalues_right_of_shift ()
 Set the desired eigenvalues to be right of the shift. More...
 
void track_eigenvalue_real_part ()
 Set the real part to be the quantity of interest (default) More...
 
void track_eigenvalue_imaginary_part ()
 Set the imaginary part fo the quantity of interest. More...
 
void track_eigenvalue_magnitude ()
 Set the magnitude to be the quantity of interest. More...
 
LinearSolver *& linear_solver_pt ()
 Return a pointer to the linear solver object. More...
 
LinearSolver *const & linear_solver_pt () const
 Return a pointer to the linear solver object (const version) More...
 
- Public Member Functions inherited from oomph::EigenSolver
 EigenSolver ()
 Empty constructor. More...
 
 EigenSolver (const EigenSolver &)
 Empty copy constructor. More...
 
virtual ~EigenSolver ()
 Empty destructor. More...
 
void set_shift (const double &shift_value)
 Set the value of the shift. More...
 
const double & get_shift () const
 Return the value of the shift (const version) More...
 
- Public Member Functions inherited from oomph::DistributableLinearAlgebraObject
 DistributableLinearAlgebraObject ()
 Default constructor - create a distribution. More...
 
 DistributableLinearAlgebraObject (const DistributableLinearAlgebraObject &matrix)
 Broken copy constructor. More...
 
void operator= (const DistributableLinearAlgebraObject &)
 Broken assignment operator. More...
 
virtual ~DistributableLinearAlgebraObject ()
 Destructor. More...
 
LinearAlgebraDistributiondistribution_pt () const
 access to the LinearAlgebraDistribution More...
 
unsigned nrow () const
 access function to the number of global rows. More...
 
unsigned nrow_local () const
 access function for the num of local rows on this processor. More...
 
unsigned nrow_local (const unsigned &p) const
 access function for the num of local rows on this processor. More...
 
unsigned first_row () const
 access function for the first row on this processor More...
 
unsigned first_row (const unsigned &p) const
 access function for the first row on this processor More...
 
bool distributed () const
 distribution is serial or distributed More...
 
bool distribution_built () const
 
void build_distribution (const LinearAlgebraDistribution *const dist_pt)
 setup the distribution of this distributable linear algebra object More...
 
void build_distribution (const LinearAlgebraDistribution &dist)
 setup the distribution of this distributable linear algebra object More...
 

Private Types

typedef double ST
 
typedef Teuchos::ScalarTraits< STSCT
 
typedef SCT::magnitudeType MT
 
typedef Anasazi::MultiVec< STMV
 
typedef Anasazi::Operator< STOP
 
typedef Anasazi::MultiVecTraits< ST, MVMVT
 
typedef Anasazi::OperatorTraits< ST, MV, OPOPT
 

Private Attributes

Anasazi::OutputManager< ST > * Output_manager_pt
 Pointer to output manager. More...
 
LinearSolverLinear_solver_pt
 Pointer to a linear solver. More...
 
LinearSolverDefault_linear_solver_pt
 Pointer to a default linear solver. More...
 
int Spectrum
 Integer to set whether the real, imaginary or magnitude is required to be small or large. More...
 
int NArnoldi
 Number of Arnoldi vectors to compute. More...
 
double Sigma
 Set the shifted value. More...
 
bool Small
 Boolean to set which part of the spectrum left (default) or right of the shifted value. More...
 
bool Compute_eigenvectors
 Boolean to indicate whether or not to compute the eigenvectors. More...
 

Additional Inherited Members

- Protected Member Functions inherited from oomph::DistributableLinearAlgebraObject
void clear_distribution ()
 clear the distribution of this distributable linear algebra object More...
 
- Protected Attributes inherited from oomph::EigenSolver
double Sigma_real
 Double value that represents the real part of the shift in shifted eigensolvers. More...
 

Detailed Description

Class for the Anasazi eigensolver.

Definition at line 538 of file trilinos_eigen_solver.h.

Member Typedef Documentation

◆ MT

typedef SCT::magnitudeType oomph::ANASAZI::MT
private

Definition at line 544 of file trilinos_eigen_solver.h.

◆ MV

typedef Anasazi::MultiVec<ST> oomph::ANASAZI::MV
private

Definition at line 545 of file trilinos_eigen_solver.h.

◆ MVT

typedef Anasazi::MultiVecTraits<ST,MV> oomph::ANASAZI::MVT
private

Definition at line 547 of file trilinos_eigen_solver.h.

◆ OP

typedef Anasazi::Operator<ST> oomph::ANASAZI::OP
private

Definition at line 546 of file trilinos_eigen_solver.h.

◆ OPT

typedef Anasazi::OperatorTraits<ST,MV,OP> oomph::ANASAZI::OPT
private

Definition at line 548 of file trilinos_eigen_solver.h.

◆ SCT

typedef Teuchos::ScalarTraits<ST> oomph::ANASAZI::SCT
private

Definition at line 543 of file trilinos_eigen_solver.h.

◆ ST

typedef double oomph::ANASAZI::ST
private

Definition at line 542 of file trilinos_eigen_solver.h.

Constructor & Destructor Documentation

◆ ANASAZI() [1/2]

oomph::ANASAZI::ANASAZI ( )
inline

Constructor.

Definition at line 580 of file trilinos_eigen_solver.h.

◆ ANASAZI() [2/2]

oomph::ANASAZI::ANASAZI ( const ANASAZI )
inline

Empty copy constructor.

Definition at line 596 of file trilinos_eigen_solver.h.

◆ ~ANASAZI()

virtual oomph::ANASAZI::~ANASAZI ( )
inlinevirtual

Destructor, delete the linear solver.

Definition at line 599 of file trilinos_eigen_solver.h.

Member Function Documentation

◆ disable_compute_eigenvectors()

void oomph::ANASAZI::disable_compute_eigenvectors ( )
inline

Set to disable the computation of the eigenvectors.

Definition at line 614 of file trilinos_eigen_solver.h.

◆ enable_compute_eigenvectors()

void oomph::ANASAZI::enable_compute_eigenvectors ( )
inline

Set to enable the computation of the eigenvectors (default)

Definition at line 611 of file trilinos_eigen_solver.h.

◆ get_eigenvalues_left_of_shift()

void oomph::ANASAZI::get_eigenvalues_left_of_shift ( )
inline

Set the desired eigenvalues to be left of the shift.

Definition at line 719 of file trilinos_eigen_solver.h.

◆ get_eigenvalues_right_of_shift()

void oomph::ANASAZI::get_eigenvalues_right_of_shift ( )
inline

Set the desired eigenvalues to be right of the shift.

Definition at line 722 of file trilinos_eigen_solver.h.

◆ linear_solver_pt() [1/2]

LinearSolver* & oomph::ANASAZI::linear_solver_pt ( )
inline

Return a pointer to the linear solver object.

Definition at line 734 of file trilinos_eigen_solver.h.

◆ linear_solver_pt() [2/2]

LinearSolver* const& oomph::ANASAZI::linear_solver_pt ( ) const
inline

Return a pointer to the linear solver object (const version)

Definition at line 737 of file trilinos_eigen_solver.h.

◆ narnoldi() [1/2]

int& oomph::ANASAZI::narnoldi ( )
inline

Access function for the number of Arnoldi vectors.

Definition at line 605 of file trilinos_eigen_solver.h.

◆ narnoldi() [2/2]

const int& oomph::ANASAZI::narnoldi ( ) const
inline

Access function for the number of Arnoldi vectors (const version)

Definition at line 608 of file trilinos_eigen_solver.h.

◆ solve_eigenproblem()

void oomph::ANASAZI::solve_eigenproblem ( Problem *const &  problem_pt,
const int &  n_eval,
Vector< std::complex< double > > &  eigenvalue,
Vector< DoubleVector > &  eigenvector 
)
inlinevirtual

Solve the eigen problem.

Implements oomph::EigenSolver.

Definition at line 617 of file trilinos_eigen_solver.h.

References oomph::Problem::dof_distribution_pt(), i, oomph::Problem::linear_solver_pt(), and oomph::oomph_info.

◆ track_eigenvalue_imaginary_part()

void oomph::ANASAZI::track_eigenvalue_imaginary_part ( )
inline

Set the imaginary part fo the quantity of interest.

Definition at line 728 of file trilinos_eigen_solver.h.

◆ track_eigenvalue_magnitude()

void oomph::ANASAZI::track_eigenvalue_magnitude ( )
inline

Set the magnitude to be the quantity of interest.

Definition at line 731 of file trilinos_eigen_solver.h.

◆ track_eigenvalue_real_part()

void oomph::ANASAZI::track_eigenvalue_real_part ( )
inline

Set the real part to be the quantity of interest (default)

Definition at line 725 of file trilinos_eigen_solver.h.

Member Data Documentation

◆ Compute_eigenvectors

bool oomph::ANASAZI::Compute_eigenvectors
private

Boolean to indicate whether or not to compute the eigenvectors.

Definition at line 574 of file trilinos_eigen_solver.h.

◆ Default_linear_solver_pt

LinearSolver* oomph::ANASAZI::Default_linear_solver_pt
private

Pointer to a default linear solver.

Definition at line 557 of file trilinos_eigen_solver.h.

◆ Linear_solver_pt

LinearSolver* oomph::ANASAZI::Linear_solver_pt
private

Pointer to a linear solver.

Definition at line 554 of file trilinos_eigen_solver.h.

◆ NArnoldi

int oomph::ANASAZI::NArnoldi
private

Number of Arnoldi vectors to compute.

Definition at line 564 of file trilinos_eigen_solver.h.

◆ Output_manager_pt

Anasazi::OutputManager<ST>* oomph::ANASAZI::Output_manager_pt
private

Pointer to output manager.

Definition at line 551 of file trilinos_eigen_solver.h.

◆ Sigma

double oomph::ANASAZI::Sigma
private

Set the shifted value.

Definition at line 567 of file trilinos_eigen_solver.h.

◆ Small

bool oomph::ANASAZI::Small
private

Boolean to set which part of the spectrum left (default) or right of the shifted value.

Definition at line 571 of file trilinos_eigen_solver.h.

◆ Spectrum

int oomph::ANASAZI::Spectrum
private

Integer to set whether the real, imaginary or magnitude is required to be small or large.

Definition at line 561 of file trilinos_eigen_solver.h.


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