[petsc-users] Tao iterations

Justin Chang jychang48 at gmail.com
Mon Apr 20 18:32:17 CDT 2015


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 <jason.sarich at gmail.com>
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 <jychang48 at gmail.com> 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 <jason.sarich at gmail.com>
>> 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." <bsmith at mcs.anl.gov> 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 <jchang27 at uh.edu> 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
>>>>
>>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20150420/76355fba/attachment.html>


More information about the petsc-users mailing list