<br><br><div class="gmail_quote">On Fri, Feb 10, 2012 at 8:11 PM, Dmitry Karpeev <span dir="ltr"><<a href="mailto:karpeev@mcs.anl.gov">karpeev@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<br><br><div class="gmail_quote"><div><div class="h5">On Fri, Feb 10, 2012 at 7:57 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div><div class="gmail_quote">On Fri, Feb 10, 2012 at 19:51, Dmitry Karpeev <span dir="ltr"><<a href="mailto:karpeev@mcs.anl.gov" target="_blank">karpeev@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div>How does this explanation square with the following code from KSPSetUp?</div><div><br></div><div> if (ksp->dmActive && !ksp->setupstage) {</div><div>    /* first time in so build matrix and vector data structures using DM */</div>





<div>    if (!ksp->vec_rhs) {ierr = DMCreateGlobalVector(ksp->dm,&ksp->vec_rhs);CHKERRQ(ierr);}</div><div>    if (!ksp->vec_sol) {ierr = DMCreateGlobalVector(ksp->dm,&ksp->vec_sol);CHKERRQ(ierr);}</div>





<div>    ierr = DMCreateMatrix(ksp->dm,MATAIJ,&A);CHKERRQ(ierr);</div><div>    ierr = KSPSetOperators(ksp,A,A,stflg);CHKERRQ(ierr);  </div><div>    ierr = PetscObjectDereference((PetscObject)A);CHKERRQ(ierr); </div>





<div> }</div></blockquote></div><br></div><div>Look down the page a little, DMComputeJacobian() is what actually assembles.</div><div><br></div><div><div>    if (ksp->setupstage != KSP_SETUP_NEWRHS) {</div><div>      ierr = KSPGetOperators(ksp,&A,&A,PETSC_NULL);CHKERRQ(ierr);</div>



<div>      ierr = DMComputeJacobian(ksp->dm,PETSC_NULL,A,A,&stflg);CHKERRQ(ierr);</div><div>      ierr = KSPSetOperators(ksp,A,A,stflg);CHKERRQ(ierr); </div><div>    }</div></div><div><br></div></blockquote></div>

</div><div>Okay.  Then what's the need for DMSetPreallocateOnly()?</div></div></blockquote><div>Oh, I see: preallocate the space, but don't set the exact sparsity pattern.</div><div>Dmitry. </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="gmail_quote"><span class="HOEnZb"><font color="#888888">
<div><br></div><div>Dmitry. </div></font></span></div><br>
</blockquote></div><br>