Hello,
In step-22, I replaced the solve() function with the following function that is based on the solve() function of step-29, where a direct solver UMFPACK is used.
template <int dim>
void StokesProblem<dim>::solve ()
{
SparseDirectUMFPACK A_direct;
A_direct.initialize(system_matrix);
A_direct.vmult (solution, system_rhs);
}
To my surprise, the solution that was obtained using UMFPACK solver is very different than the one that was obtained by the original solver of step-22. Attached are screenshots of the velocity x-component of the original solution and the one that was obtained from the direct solver.
Does anyone have any explanation to the discrepancy?
Thanks,
Oded