1 #ifndef SELDON_FILE_DISTRIBUTED_SOLVER_HXX
18 typedef typename ClassComplexType<T>::Treal Treal;
25 #ifdef SELDON_WITH_MPI
28 int nodl_scalar_, nb_unknowns_scal_;
30 IVect* ProcSharingRows_;
32 IVect global_col_numbers, local_col_numbers;
41 template<
class MatrixSparse>
52 template<
class Prop0,
class Storage0,
class Allocator0>
54 bool keep_matrix =
false,
bool scale_matrix =
false);
56 template<
class Prop0,
class Storage0,
class Allocator0>
59 template<
class Prop0,
class Storage0,
class Allocator0>
61 bool scale_matrix =
false);
63 #ifdef SELDON_WITH_MPI
64 template<
class Prop0,
class Storage0,
class Allocator0>
66 bool keep_matrix =
false,
bool scale_matrix =
false);
68 template<
class Prop0,
class Storage0,
class Allocator0>
71 template<
class Prop0,
class Storage0,
class Allocator0>
73 bool scale_matrix =
false);
98 template<
class MatrixSparse,
class MatrixFull>
100 const IVect& num, MatrixFull& mat_schur);
108 #define SELDON_FILE_DISTRIBUTED_SOLVER_HXX
void ScaleMatrixRowCol(MatrixSparse &A)
scales matrix with 1 / \sum a_{i, j} (rows and columns)
general class for direct solver
SparseDistributedSolver()
Default constructor.
void Clear()
Clears LU matrices.
Class grouping different direct solvers.
Vector< Treal > diagonal_scale_left
left scaling
Vector< Treal > diagonal_scale_right
right scaling
bool diagonal_scaling_left
left scaling ?
void TransSolve(Vector< T1 > &x_solution)
solution of linear system A^T x = b by using LU factorization (with scaling)
void GetSchurComplement(MatrixSparse &mat_direct, const IVect &num, MatrixFull &mat_schur)
Computation of a Schur Complement.
matrix distributed over all the processors
size_t GetMemorySize() const
returns in bytes the memory used by the direct solver
void SetPrintLevel(int print)
Changes the level of displayed messages.
bool diagonal_scaling_right
right scaling ?
void Solve(Vector< T1 > &x_solution, const Vector< T1 > &b_rhs)
solution of linear system Ax = b by using LU factorization (with scaling)