diff --git a/src/poly/solver/private/polySolver.cpp b/src/poly/solver/private/polySolver.cpp index 21dfc6b..f04affe 100644 --- a/src/poly/solver/private/polySolver.cpp +++ b/src/poly/solver/private/polySolver.cpp @@ -183,11 +183,6 @@ void PolySolver::solve() const { // Finalize with the initial state of theta for the initial jacobian calculation m_polytropOperator->finalize(thetaVec); - if (!m_polytropOperator->isFinalized()) { - LOG_ERROR(m_logger, "PolytropeOperator is not finalized. Cannot solve."); - throw std::runtime_error("PolytropeOperator is not finalized. Cannot solve."); - } - // It's safer to get the offsets directly from the operator after finalization const mfem::Array& block_offsets = m_polytropOperator->GetBlockOffsets(); // Assuming a getter exists or accessing member if public/friend mfem::BlockVector state_vector(block_offsets); @@ -411,7 +406,7 @@ solverBundle PolySolver::setupNewtonSolver() const { solver.solver.SetPrintLevel(gmresPrintLevel); // Preconditioner turned off because the polytrope operator seems *very* well conditioned without it - // solver.solver.SetPreconditioner(m_polytropOperator->GetPreconditioner()); + solver.solver.SetPreconditioner(m_polytropOperator->GetPreconditioner()); // --- Set up the Newton solver --- solver.newton.SetRelTol(newtonRelTol); solver.newton.SetAbsTol(newtonAbsTol);