Stokhos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Stokhos_PCEAnasaziKL.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Stokhos Package
4 //
5 // Copyright 2009 NTESS and the Stokhos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef STOKHOS_PCE_ANASAZI_KL_HPP
11 #define STOKHOS_PCE_ANASAZI_KL_HPP
12 
13 #include "Stokhos_ConfigDefs.h"
14 #ifdef HAVE_STOKHOS_ANASAZI
15 
18 #include "AnasaziBasicEigenproblem.hpp"
19 #include "AnasaziEpetraAdapter.hpp"
20 
21 namespace Stokhos {
22 
24 
29  class PCEAnasaziKL {
30  public:
31 
33  PCEAnasaziKL(const Stokhos::VectorOrthogPoly<Epetra_Vector>& X_poly,
34  int num_KL_);
35 
37  PCEAnasaziKL(const Teuchos::RCP<const EpetraExt::BlockVector>& X,
39  int num_KL_);
40 
42  PCEAnasaziKL(const Teuchos::RCP<const Epetra_MultiVector>& X,
44  int num_KL_);
45 
47  virtual ~PCEAnasaziKL() {}
48 
50  Teuchos::ParameterList getDefaultParams() const;
51 
53  bool computeKL(Teuchos::ParameterList& anasazi_params);
54 
56  Teuchos::Array<double> getEigenvalues() const;
57 
59  Teuchos::RCP<Epetra_MultiVector> getEigenvectors() const;
60 
61  private:
62 
64  PCEAnasaziKL(const PCEAnasaziKL&);
65 
67  PCEAnasaziKL& operator=(const PCEAnasaziKL&);
68 
69  protected:
70 
71  typedef double ScalarType;
73  typedef SCT::magnitudeType MagnitudeType;
74  typedef Epetra_MultiVector MV;
75  typedef Epetra_Operator OP;
76  typedef Anasazi::MultiVecTraits<ScalarType,MV> MVT;
77  typedef Anasazi::OperatorTraits<ScalarType,MV,OP> OPT;
78 
81 
83  int num_KL;
84 
87 
88  // Eigen solution
89  Anasazi::Eigensolution<ScalarType,MV> sol;
90 
91  }; // PCEAnasaziKL
92 
93 } // namespace Stokhos
94 
95 #endif // HAVE_STOKHOS_ANASAZI
96 
97 #endif // STOKHOS_PCE_ANASAZI_KL_HPP