22 #ifndef __HERMES_COMMON_SOLVER_EPETRA_H_
23 #define __HERMES_COMMON_SOLVER_EPETRA_H_
27 #define EPETRA_NO_64BIT_GLOBAL_INDICES
31 #include <Epetra_SerialComm.h>
32 #include <Epetra_Map.h>
33 #include <Epetra_Vector.h>
34 #include <Epetra_CrsGraph.h>
35 #include <Epetra_CrsMatrix.h>
36 #include <EpetraExt_MatrixMatrix.h>
37 #include <EpetraExt_RowMatrixOut.h>
38 #include <EpetraExt_VectorOut.h>
39 #include <Teuchos_TestForException.hpp>
45 template <
typename Scalar>
class AmesosSolver;
46 template <
typename Scalar>
class AztecOOSolver;
48 namespace Preconditioners
59 template <
typename Scalar>
68 virtual void prealloc(
unsigned int n);
69 virtual void pre_add_ij(
unsigned int row,
unsigned int col);
70 virtual void finish();
74 virtual Scalar
get(
unsigned int m,
unsigned int n)
const;
75 virtual int get_num_row_entries(
unsigned int row);
76 virtual void extract_row_copy(
unsigned int row,
unsigned int len,
unsigned int &n_entries,
double *vals,
unsigned int *idxs);
78 virtual void add(
unsigned int m,
unsigned int n, Scalar v);
79 virtual void multiply_with_vector(Scalar* vector_in, Scalar*& vector_out,
bool vector_out_initialized =
false)
const;
80 virtual void multiply_with_Scalar(Scalar value);
86 virtual void add(
unsigned int m,
unsigned int n, Scalar *mat,
int *rows,
int *cols,
const int size);
88 virtual void export_to_file(
const char *filename,
const char *var_name,
MatrixExportFormat fmt,
char* number_format =
"%lf");
89 virtual unsigned int get_matrix_size()
const;
90 virtual unsigned int get_nnz()
const;
91 virtual double get_fill_in()
const;
92 Epetra_CrsMatrix *mat;
95 Epetra_BlockMap *std_map;
96 Epetra_CrsGraph *grph;
108 template <
typename Scalar>
116 virtual void alloc(
unsigned int ndofs);
118 virtual Scalar
get(
unsigned int idx)
const;
119 virtual void extract(Scalar *v)
const;
124 virtual void set(
unsigned int idx, Scalar y);
125 virtual void add(
unsigned int idx, Scalar y);
126 virtual void add(
unsigned int n,
unsigned int *idx, Scalar *y);
128 virtual void export_to_file(
const char *filename,
const char *var_name,
MatrixExportFormat fmt,
char* number_format =
"%lf");
132 Epetra_BlockMap *std_map;
General (abstract) matrix representation in Hermes.
General namespace for the Hermes library.
Encapsulation of AztecOO linear solver.
Preconditioners built on IFPACK.
General (abstract) vector representation in Hermes.
File containing common definitions, and basic global enums etc. for HermesCommon. ...
General (abstract) sparse matrix representation in Hermes.
MatrixExportFormat
Format of file matrix and vector output.
Encapsulation of Amesos linear solver.
Preconditioners built on ML.
Basic matrix classes and operations.
void change_sign(T **matrix, unsigned int m, unsigned int n)
Changes the sign of a matrix.
Basic vector classes and operations.
Epetra_Vector * vec_im
Imaginary part of the vector, vec holds the real part.
Epetra_CrsMatrix * mat_im
Imaginary part of the matrix, mat holds the real part.