Hi Justin, what reason is blmvm giving for stopping the solve? (you can use -tao_view or -tao_converged_reason to get this)
Jason On Mon, Apr 20, 2015 at 6:32 PM, Justin Chang <[email protected]> wrote: > 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 >>>>> >>>>> >>> >> >
