• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

QCAD_GenEigensolver.hpp

Go to the documentation of this file.
00001 //*****************************************************************//
00002 //    Albany 2.0:  Copyright 2012 Sandia Corporation               //
00003 //    This Software is released under the BSD license detailed     //
00004 //    in the file "license.txt" in the top-level Albany directory  //
00005 //*****************************************************************//
00006 
00007 #ifndef QCAD_GENEIGENSOLVER_H
00008 #define QCAD_GENEIGENSOLVER_H
00009 
00010 #include <iostream>
00011 
00012 //#include "LOCA.H"
00013 //#include "LOCA_Epetra.H"
00014 #include "Epetra_Map.h"
00015 #include "Epetra_Vector.h"
00016 //#include "Epetra_LocalMap.h"
00017 #include "EpetraExt_ModelEvaluator.h"
00018 #include "Teuchos_RCP.hpp"
00019 #include "Teuchos_ParameterList.hpp"
00020 
00021 #include "Albany_StateManager.hpp"
00022 
00023 //#include "LOCA_Epetra_ModelEvaluatorInterface.H"
00024 //#include <NOX_Epetra_MultiVector.H>
00025 
00026 //#include "Albany_ModelEvaluator.hpp"
00027 //#include "Albany_Utils.hpp"
00028 //#include "Piro_Epetra_StokhosNOXObserver.hpp"
00029 
00030 
00031 namespace QCAD {
00032 
00037   class GenEigensolver : public EpetraExt::ModelEvaluator {
00038   public:
00039 
00042 
00043       GenEigensolver(const Teuchos::RCP<Teuchos::ParameterList>& appParams,
00044          const Teuchos::RCP<EpetraExt::ModelEvaluator>& model,
00045          const Teuchos::RCP<Albany::StateManager>& observer,
00046          Teuchos::RCP<const Epetra_Comm> comm);
00048 
00049     ~GenEigensolver();
00050 
00051     Teuchos::RCP<const Epetra_Map> get_x_map() const;
00052     Teuchos::RCP<const Epetra_Map> get_f_map() const;
00053     Teuchos::RCP<const Epetra_Map> get_p_map(int l) const;
00054     Teuchos::RCP<const Epetra_Map> get_g_map(int j) const;
00055 
00056     Teuchos::RCP<const Epetra_Vector> get_x_init() const;
00057     Teuchos::RCP<const Epetra_Vector> get_x_dot_init() const;
00058     Teuchos::RCP<const Epetra_Vector> get_p_init(int l) const;
00059 
00060     EpetraExt::ModelEvaluator::InArgs createInArgs() const;
00061     EpetraExt::ModelEvaluator::OutArgs createOutArgs() const;
00062 
00063     void evalModel( const InArgs& inArgs, const OutArgs& outArgs ) const;    
00064 
00065   private:
00066     Teuchos::RCP<EpetraExt::ModelEvaluator> model;
00067     Teuchos::RCP<Albany::StateManager> observer; //use a state manager as an observer (holds eigen data)
00068     int model_num_p, model_num_g;
00069 
00070     Teuchos::RCP<const Epetra_Comm> myComm;
00071 
00072     //Eigensolver parameters
00073     bool bHermitian;
00074     std::string which;
00075     int nev, blockSize, maxIters;
00076     double conv_tol;
00077   };
00078 }
00079 #endif

Generated on Wed Mar 26 2014 18:36:43 for Albany: a Trilinos-based PDE code by  doxygen 1.7.1