Jason, I am using TaoGetSolutionStatus(tao,&its, ...) and it gives me exactly what I want. However, I seem to be having an issue with blmvm
I wrote my own backward euler code for a transient linear diffusion problem with lower bounds >= 0 and upper bounds <= 1. For the first several time steps I am getting its > 0, and it decreases over time due to the nature of the discrete maximum principles. However, at some point my its become 0 and the solution does not "update", which seems to me that TaoSolve is not doing anything after that. This doesn't happen if I were to use tron (my KSP and PC are cg and jacobi respectively). Do you know why this behavior may occur? Thanks, On Tue, Apr 14, 2015 at 9:35 AM, Jason Sarich <[email protected]> wrote: > Hi Justin, > > I have pushed these changes to the "next" branch, your code snippet should > work fine there. > > Note that there is also available (since version 3.5.0) the routine > TaoGetSolutionStatus(tao,&its,NULL,NULL,NULL,NULL,NULL) which will provide > the > same information > > Jason > > On Fri, Apr 10, 2015 at 6:28 PM, Justin Chang <[email protected]> wrote: > >> Whatever is convenient and/or follow the "PETSc" standards. Something >> similar to SNESGetIterationNumber() or KSPGetIterationNumber() would be >> nice. Ideally I want my code to look like this: >> >> ierr = TaoGetIterationNumber(tao,&its);CHKERRQ(ierr); >> ierr = PetscPrintf(PETSC_COMM_WORLD, "Number of Tao iterations = %D\n", >> its); >> >> Thanks :) >> >> On Fri, Apr 10, 2015 at 5:53 PM, Jason Sarich <[email protected]> >> wrote: >> >>> Hi Justin, I'll get this in. I assume that displaying the number of >>> iterations with tao_converged_reason is what you are asking for in >>> particular? Or did you have something else in mind? >>> >>> Jason >>> On Apr 10, 2015 16:42, "Smith, Barry F." <[email protected]> wrote: >>> >>>> >>>> Justin, >>>> >>>> Sorry TAO simply doesn't even collect this information currently. >>>> But yes we should definitely make it available! >>>> >>>> Jason, >>>> >>>> Could you please add this; almost all the TaoSolve_xxx() have a >>>> local variable iter; change that to tao->niter (I'm guess this is suppose >>>> to capture this information) and add a TaoGetIterationNumber() and the uses >>>> can access this. Also modify at the end of TaoSolve() -tao_converged_reason >>>> to also print the iteration count. At the same time since you add this you >>>> can add a tao->totalits which would accumulate all iterations over all the >>>> solves for that Tao object and the routine TaoGetTotalIterations() to >>>> access this. Note that TaoSolve() would initialize tao->niter = 0 at the >>>> top. >>>> >>>> Thanks >>>> >>>> Barry >>>> >>>> >>>> >>>> > On Apr 10, 2015, at 4:16 PM, Justin Chang <[email protected]> wrote: >>>> > >>>> > Hi all, >>>> > >>>> > Is there a way to generically obtain the number of Tao iterations? I >>>> am looking through the -help options for Tao and I don't see any metric >>>> where you can output this quantity in the manner that you could for SNES or >>>> KSP solves. I am currently using blmvm and tron, and the only way I can see >>>> getting this metric is by outputting -tao_view and/or -tao_monitor and >>>> manually finding this number. I find this cumbersome especially for >>>> transient problems where I would like to simply have this number printed >>>> for each step instead of ending up with unnecessary info. >>>> > >>>> > Thanks, >>>> > >>>> > >>>> > -- >>>> > Justin Chang >>>> > PhD Candidate, Civil Engineering - Computational Sciences >>>> > University of Houston, Department of Civil and Environmental >>>> Engineering >>>> > Houston, TX 77004 >>>> > (512) 963-3262 >>>> >>>> >> >
