Skip to content

Commit

Permalink
Perform analysis only when the problem structure changes + set a sett…
Browse files Browse the repository at this point in the history
…ing in MUMPS to recompute scaling before each factorization
  • Loading branch information
cvanaret committed Dec 4, 2024
1 parent 3dbf333 commit d912ef8
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 1 deletion.
2 changes: 1 addition & 1 deletion uno/linear_algebra/SymmetricIndefiniteLinearSystem.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ namespace uno {
template <typename ElementType>
void SymmetricIndefiniteLinearSystem<ElementType>::factorize_matrix(DirectSymmetricIndefiniteLinearSolver<size_t, ElementType>& linear_solver,
const WarmstartInformation& warmstart_information) {
if (true) {
if (warmstart_information.problem_structure_changed) {
DEBUG << "Performing symbolic analysis of the indefinite system\n";
linear_solver.do_symbolic_analysis(this->matrix);
}
Expand Down
1 change: 1 addition & 0 deletions uno/solvers/MUMPS/MUMPSSolver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ namespace uno {
this->mumps_structure.jcn = this->column_indices.data();
this->mumps_structure.a = nullptr;
dmumps_c(&this->mumps_structure);
this->mumps_structure.icntl[7] = 8; // ICNTL(8) = 8: recompute scaling before factorization
}

void MUMPSSolver::do_numerical_factorization(const SymmetricMatrix<size_t, double>& matrix) {
Expand Down

0 comments on commit d912ef8

Please sign in to comment.