<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div>Hi all,<br><br></div>In my DMPlex program, I have these lines:<br><br></div><div>Mat A,J;<br></div><div><br>...<br><br></div>ierr = DMSetMatType(dm, MATAIJ); CHKERRQ(ierr);<br></div>ierr = DMCreateMatrix(dm, &J); CHKERRQ(ierr);<br></div>A = J;<br><br></div>ierr = DMSNESSetFunctionLocal(dm, ...); CHKERRQ(ierr);<br></div>ierr = DMSNESSetJacobianLocal(dm, ...); CHKERRQ(ierr);<br></div>ierr = SNESSetJacobian(snes, A, J, NULL, NULL); CHKERRQ(ierr);<br></div>ierr = SNESSetFromOptions(snes); CHKERRQ(ierr);<br><br>...<br><br></div>ierr = SNESSolve(snes, NULL, x); CHKERRQ(ierr);<br><br>...<br></div><div>ierr = MatDestroy(&J); CHKERRQ(ierr);<br></div><div><br><br></div>For the line "A = J;", what exactly is the difference, if any, between that and "ierr = MatDuplicate(...)" or "ierr = MatCopy(...)"? Do these different options somehow affect memory usage/performance? Say I am solving a standard poisson equation using either GAMG and/or HYPRE.<br><br></div>Thanks,<br></div>Justin<br></div>