#include "ml_config.h"
#include "ml_common.h"
#if defined(HAVE_ML_MLAPI) && defined(HAVE_ML_GALERI)
int main(int argc, char *argv[])
{
#ifdef HAVE_MPI
MPI_Init(&argc,&argv);
#endif
try {
Init();
int NumGlobalRows = 16;
Space MySpace(NumGlobalRows);
Operator A = Gallery(
"Tridiag", MySpace);
x.Random();
x = x / sqrt(x * x);
int MaxIters = 10;
for (int i = 0 ; i < MaxIters ; ++i) {
y = A * x;
double RQ = (y * x) / (x * x);
if (GetMyPID() == 0)
std::cout << "iter = " << i << ", RQ = " << RQ << std::endl;
x = y / sqrt(y * y);
}
Finalize();
}
catch (const int e) {
std::cout << "Caught integer exception, code = " << e << std::endl;
}
catch (...) {
std::cout << "problems here..." << std::endl;
}
#ifdef HAVE_MPI
MPI_Finalize();
#endif
return(0);
}
#else
#include "ml_include.h"
int main(int argc, char *argv[])
{
#ifdef HAVE_MPI
MPI_Init(&argc,&argv);
#endif
puts("This MLAPI example requires the following configuration options:");
puts("\t--enable-epetra");
puts("\t--enable-teuchos");
puts("\t--enable-ifpack");
puts("\t--enable-amesos");
puts("\t--enable-galeri");
puts("Please check your configure line.");
#ifdef HAVE_MPI
MPI_Finalize();
#endif
return(0);
}
#endif
Overloaded operators for MultiVector's, Operator's, and InverseOpereator's.
MLAPI interface to the Galeri package.
MLAPI wrapper for double vectors.
Basic class to define operators within MLAPI.
Class to specify the number and distribution among processes of elements.
Basic class for distributed double-precision vectors.
Definition MLAPI_MultiVector.h:103
Operator: basic class to define operators within MLAPI.
Definition MLAPI_Operator.h:44
Specifies the number and distribution among processes of elements.
Definition MLAPI_Space.h:40
MLAPI: Default namespace for all MLAPI objects and functions.
Definition MLAPI_Aggregation.h:24