00001
00019
00020
00021
00022
00023
00024 #ifndef _ML_ANASAZI_H_
00025 #define _ML_ANASAZI_H_
00026
00027 #include "ml_include.h"
00028 #include "ml_struct.h"
00029 #include "ml_smoother.h"
00030
00031 #if defined(HAVE_ML_EPETRA) && defined(HAVE_ML_TEUCHOS) && defined(HAVE_ML_ANASAZI)
00032
00033
00034
00035 #include "Teuchos_ParameterList.hpp"
00036
00038
00039 namespace ML_Anasazi {
00040
00042
00092 int Interface(const Epetra_RowMatrix * RowMatrix, Epetra_MultiVector & EigenVectors,
00093 double RealEigenvalues[], double ImagEigenvalues[],
00094 Teuchos::ParameterList & List,
00095 double RealEigenvectors[] = 0, double ImagEigenvectors[] = 0,
00096 int * NumRealEigenvectors = 0, int * NumImagEigenvectors = 0,
00097 ML * ml = 0);
00098
00100 int GetFieldOfValuesBox(const Epetra_RowMatrix * RowMatrix,
00101 double & MaxReal, double & MaxImag,
00102 Teuchos::ParameterList & AnasaziList);
00103
00104 }
00105
00106 #endif
00107
00108 #ifndef ML_CPP
00109 #ifdef __cplusplus
00110 extern "C"
00111 {
00112 #endif
00113 #endif
00114
00116 extern int ML_Anasazi_Get_FieldOfValuesBox_Interface(ML_Operator * Amat,
00117 struct ML_Field_Of_Values * fov );
00118
00120 extern int ML_Anasazi_Get_SpectralNorm_Anasazi(ML_Operator* Amat,
00121 ML_Smoother* smoother,
00122 int MaxIters, double Tolerance,
00123 int IsProblemSymmetric,
00124 int UseDiagonalScaling,
00125 double* LambdaMax );
00126 #ifndef ML_CPP
00127 #ifdef __cplusplus
00128 }
00129 #endif
00130 #endif
00131
00132 #endif