Teko Version of the Day
Teko_mlutils.hpp
00001 #ifndef __Teko_mlutils_hpp__
00002 #define __Teko_mlutils_hpp__
00003 
00004 #include "ml_operator.h"
00005 #include "Epetra_Map.h"
00006 #include "Epetra_CrsMatrix.h"
00007 
00008 #include "Teuchos_RCP.hpp"
00009 
00010 #include "Teko_Utilities.hpp"
00011 
00012 namespace Teko {
00013 
00014 class InverseLibrary;
00015 
00016 namespace mlutils {
00017 
00019 Teuchos::RCP<Epetra_Map> buildRowMap(ML_Operator * mlOp);
00020 
00024 Teuchos::RCP<Epetra_CrsMatrix> convertToCrsMatrix(ML_Operator * mlOp,
00025                                                   const Teuchos::RCP<Epetra_Map> & rowMap=Teuchos::null);
00026 
00027 Teko::LinearOp buildTekoBlockOp(ML_Operator * mlOp,int level);
00028 
00029 
00032 struct SmootherData {
00033    Teuchos::RCP<Epetra_Operator> Amat;
00034    Teuchos::RCP<Epetra_Operator> smootherOperator;
00035 };
00036 
00039 int smoother(ML_Smoother *mydata, int leng1, double x[], int leng2, 
00040              double rhs[]);
00041 
00042 extern "C" 
00043 int ML_Gen_Smoother_Teko(ML *ml, int level, int pre_or_post, int ntimes, const Teuchos::RCP<const Teuchos::ParameterList> & tekoPL,
00044                          const Teuchos::RCP<const Teko::InverseLibrary> & invLib, const std::string & inverse, bool isBlocked);
00045 
00046 }
00047 }
00048 
00049 #endif
 All Classes Files Functions Variables