On Fri, Feb 10, 2012 at 8:11 PM, Dmitry Karpeev <karpeev at mcs.anl.gov> wrote:
> > > On Fri, Feb 10, 2012 at 7:57 PM, Jed Brown <jedbrown at mcs.anl.gov> wrote: > >> On Fri, Feb 10, 2012 at 19:51, Dmitry Karpeev <karpeev at mcs.anl.gov>wrote: >> >>> How does this explanation square with the following code from KSPSetUp? >>> >>> if (ksp->dmActive && !ksp->setupstage) { >>> /* first time in so build matrix and vector data structures using DM >>> */ >>> if (!ksp->vec_rhs) {ierr = >>> DMCreateGlobalVector(ksp->dm,&ksp->vec_rhs);CHKERRQ(ierr);} >>> if (!ksp->vec_sol) {ierr = >>> DMCreateGlobalVector(ksp->dm,&ksp->vec_sol);CHKERRQ(ierr);} >>> ierr = DMCreateMatrix(ksp->dm,MATAIJ,&A);CHKERRQ(ierr); >>> ierr = KSPSetOperators(ksp,A,A,stflg);CHKERRQ(ierr); >>> ierr = PetscObjectDereference((PetscObject)A);CHKERRQ(ierr); >>> } >>> >> >> Look down the page a little, DMComputeJacobian() is what actually >> assembles. >> >> if (ksp->setupstage != KSP_SETUP_NEWRHS) { >> ierr = KSPGetOperators(ksp,&A,&A,PETSC_NULL);CHKERRQ(ierr); >> ierr = >> DMComputeJacobian(ksp->dm,PETSC_NULL,A,A,&stflg);CHKERRQ(ierr); >> ierr = KSPSetOperators(ksp,A,A,stflg);CHKERRQ(ierr); >> } >> >> Okay. Then what's the need for DMSetPreallocateOnly()? > Oh, I see: preallocate the space, but don't set the exact sparsity pattern. Dmitry. > > Dmitry. > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120210/406bfa98/attachment.html>