SeldonSolver.hxx
1 // Copyright (C) 2003-2009 Marc DuruflĂ©
2 // Copyright (C) 2001-2009 Vivien Mallet
3 //
4 // This file is part of the linear-algebra library Seldon,
5 // http://seldon.sourceforge.net/.
6 //
7 // Seldon is free software; you can redistribute it and/or modify it under the
8 // terms of the GNU Lesser General Public License as published by the Free
9 // Software Foundation; either version 2.1 of the License, or (at your option)
10 // any later version.
11 //
12 // Seldon is distributed in the hope that it will be useful, but WITHOUT ANY
13 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
15 // more details.
16 //
17 // You should have received a copy of the GNU Lesser General Public License
18 // along with Seldon. If not, see http://www.gnu.org/licenses/.
19 
20 
21 #ifndef SELDON_FILE_SELDON_SOLVER_HXX
22 #define SELDON_FILE_SELDON_SOLVER_HXX
23 
24 #include "SeldonSolverHeader.hxx"
25 #include "SeldonSolverInline.hxx"
26 
27 #include "Seldon.hxx"
28 
29 // additional classes and functions for sparse matrices
30 #include "matrix_sparse/Matrix_Conversions.cxx"
31 #include "matrix_sparse/Matrix_ArraySparse.cxx"
32 #include "matrix_sparse/Permutation_ScalingMatrix.cxx"
33 #include "matrix_sparse/Relaxation_MatVect.cxx"
34 #include "matrix_sparse/Functions_MatrixArray.cxx"
35 
36 
37 // interfaces with direct solvers
38 #ifndef SELDON_WITH_COMPILED_LIBRARY
39 #ifdef SELDON_WITH_MUMPS
40 #include "computation/interfaces/direct/Mumps.cxx"
41 #endif
42 
43 #ifdef SELDON_WITH_UMFPACK
44 #include "computation/interfaces/direct/UmfPack.cxx"
45 #endif
46 
47 #ifdef SELDON_WITH_SUPERLU
48 #include "computation/interfaces/direct/SuperLU.cxx"
49 #endif
50 
51 #ifdef SELDON_WITH_PASTIX
52 #include "computation/interfaces/direct/Pastix.cxx"
53 #endif
54 
55 #ifdef SELDON_WITH_PARDISO
56 #include "computation/interfaces/direct/Pardiso.cxx"
57 #endif
58 #endif
59 
60 #ifdef SELDON_WITH_WSMP
61 #include "computation/interfaces/direct/Wsmp.cxx"
62 #endif
63 
64 #ifdef SELDON_WITH_PRECONDITIONING
65 #include "SeldonPreconditioner.hxx"
66 #endif
67 
68 #include "computation/solver/Ordering.cxx"
69 #include "computation/solver/SparseSolver.cxx"
70 #include "computation/interfaces/direct/SparseDirectSolver.cxx"
71 
72 // iterative solvers and preconditioning
73 #include "computation/solver/iterative/Iterative.cxx"
74 
75 // Cholesky Solver
76 #ifndef SELDON_WITH_COMPILED_LIBRARY
77 #ifdef SELDON_WITH_CHOLMOD
78 #include "computation/interfaces/direct/Cholmod.cxx"
79 #endif
80 #endif
81 
82 #include "computation/solver/SparseCholeskyFactorisation.cxx"
83 
84 #ifdef SELDON_WITH_MPI
85 #include "SeldonDistributed.hxx"
86 #endif
87 
88 #ifdef SELDON_WITH_HYPRE
89 #include "computation/solver/preconditioner/Hypre.cxx"
90 #endif
91 
92 // eigenvalue stuff
93 #ifdef SELDON_WITH_ARPACK
94 #include "computation/interfaces/eigenvalue/Arpack.cxx"
95 #include "computation/interfaces/eigenvalue/ArpackSolver.cxx"
96 #endif
97 
98 #ifdef SELDON_WITH_ANASAZI
99 #include "computation/interfaces/eigenvalue/MyMultiVec.cpp"
100 #include "computation/interfaces/eigenvalue/Anasazi.cxx"
101 #endif
102 
103 #ifdef SELDON_WITH_FEAST
104 #include "computation/interfaces/eigenvalue/Feast.cxx"
105 #endif
106 
107 #ifdef SELDON_WITH_SLEPC
108 #include "computation/interfaces/eigenvalue/Slepc.cxx"
109 #endif
110 
111 #ifdef SELDON_WITH_VIRTUAL
112 #include "computation/interfaces/eigenvalue/VirtualEigenvalueSolver.cxx"
113 #include "computation/interfaces/eigenvalue/PolynomialEigenvalueSolver.cxx"
114 #include "computation/interfaces/eigenvalue/NonLinearEigenvalueSolver.cxx"
115 #else
116 #include "computation/interfaces/eigenvalue/EigenvalueSolver.cxx"
117 #endif
118 
119 #endif