<div>Hi,</div><div>i am solving a system for which is interfaced both with petsc and hypre.</div><div>I.e. i have some data and build the matrix up either via petsc or hypre</div><div>(for hypre i use the sstruct interface). The output of the system after</div>
<div>several hundred timestep is only different on the order of 1e-04 for a</div><div>non-linear system. So in terms of accuracy things agree pretty well such</div><div>that i think i can rule out that the issue is related to the matrix itself.</div>
<div><br></div><div> Anyway, for both interfaces i am using the Euclid/BiCGSTAB combination</div><div>(rel.tol. 1e-08). I would expect similar results in terms of performance</div><div>which i do not get.</div><div>For PETSC:HYPRE_EUCLID:BICGSTAB for the first 10 timesteps i get 12</div>
<div>iterations per timestep. Using HYPRE directly i get convergence after 3</div><div>iterations. At first the it seems like the tolerance is the issue. I get</div><div>the residuals and iterations as follows:</div><div>
1) HYPRE:</div><div>HYPRE_SStructBiCGSTABGetNumIterations(m_SStruct-&gt;ssSolver, &amp;a_iterations);</div><div>HYPRE_SStructBiCGSTABGetFinalRelativeResidualNorm(m_SStruct-&gt;ssSolver,</div><div>&amp;a_relres);</div><div>
2) PETSC:</div><div>m_ierr = KSPGetIterationNumber(m_ksp, &amp;a_iterations_solver);</div><div>m_ierr = KSPGetResidualNorm(m_ksp, &amp;a_relres_solver);</div><div>Other than that i do change the type of norm or anything.</div>
<div><br></div><div>The residual using HYPRE is on the order of 1e-09</div><div>The residual using PETSC is on the order of 1e-04</div><div><br></div><div>So not only dies HYPRE use less iterations, it also gives the smaller</div>
<div>residual.</div><div><br></div><div>I think this is a user error as i cannot really explain why there would be</div><div>such a vast difference. I was just wondering if anyone has any insight as</div><div>to what else i could try or an attempt at some explanation as to what i am</div>
<div>seeing.</div><div><br></div><div>thanks</div><div>matt</div>