[petsc-users] residual norm with TSPSEUDO
Smith, Barry F.
bsmith at mcs.anl.gov
Wed Jun 13 11:18:43 CDT 2018
-ts_monitor_pseudo ?
> On Jun 13, 2018, at 10:54 AM, Praveen C <cpraveen at gmail.com> wrote:
>
> Hello Barry
>
> I am working in Fortran :-(
>
> I can see the residual if I use -info but it prints too much information. Is it possible to reduce the amount of log messages printed to screen, some sort of log-level ???
| grep -i "String you want" ?
>
> Thanks
> praveen
>
>> On 13-Jun-2018, at 8:29 PM, Smith, Barry F. <bsmith at mcs.anl.gov> wrote:
>>
>> Take a look at TSPseudoMonitorDefault() in src/ts/impls/pseudo/posindep.c
>>
>> The problem is that you need to expose
>>
>> typedef struct {
>> Vec update; /* work vector where new solution is formed */
>> Vec func; /* work vector where F(t[i],u[i]) is stored */
>> Vec xdot; /* work vector for time derivative of state */
>>
>> /* information used for Pseudo-timestepping */
>>
>> PetscErrorCode (*dt)(TS,PetscReal*,void*); /* compute next timestep, and related context */
>> void *dtctx;
>> PetscErrorCode (*verify)(TS,Vec,void*,PetscReal*,PetscBool*); /* verify previous timestep and related context */
>> void *verifyctx;
>>
>> PetscReal fnorm_initial,fnorm; /* original and current norm of F(u) */
>> PetscReal fnorm_previous;
>>
>> PetscReal dt_initial; /* initial time-step */
>> PetscReal dt_increment; /* scaling that dt is incremented each time-step */
>> PetscReal dt_max; /* maximum time step */
>> PetscBool increment_dt_from_initial_dt;
>> PetscReal fatol,frtol;
>> } TS_Pseudo;
>>
>> inside your application code (that is make a copy of this struct definition and put it in your code so you can access the fields).
>>
>> Barry
>
More information about the petsc-users
mailing list