[petsc-users] Obtaining TS rosw solver output at regular time steps

Fiona Reid fiona at epcc.ed.ac.uk
Thu May 22 11:59:56 CDT 2014


Dear PETSc Users,

Can anyone advise as to how I can obtain output from the TS rosw solver 
at regular time steps, e.g. every 0.05 seconds?

I'm using a very slightly modified version of the example code from 
petsc-3.4.3/src/ts/examples/tutorials/ex20.c (changes are user.mu = 1.0 
and user->next_output += 0.05). I set the initial time step to be 0.05 
via TSSetInitialTimeStep.

If I use the default solver (beuler) and the -monitor option I get 
output looking like:

./ex20 -ts_type beuler -monitor | more
[0.0] 0 TS 0.000000 (dt = 0.050000) X  2.000000e+00  0.000000e+00
[0.1] 1 TS 0.050000 (dt = 0.050000) X  1.995658e+00 -8.683325e-02
[0.1] 2 TS 0.100000 (dt = 0.050000) X  1.987545e+00 -1.622726e-01
[0.2] 3 TS 0.150000 (dt = 0.050000) X  1.976146e+00 -2.279661e-01
[0.2] 4 TS 0.200000 (dt = 0.050000) X  1.961876e+00 -2.854046e-01
[0.2] 5 TS 0.250000 (dt = 0.050000) X  1.945081e+00 -3.359109e-01
[0.3] 6 TS 0.300000 (dt = 0.050000) X  1.926048e+00 -3.806427e-01
[0.3] 7 TS 0.350000 (dt = 0.050000) X  1.905018e+00 -4.206033e-01
[0.4] 8 TS 0.400000 (dt = 0.050000) X  1.882185e+00 -4.566572e-01
[0.4] 9 TS 0.450000 (dt = 0.050000) X  1.857708e+00 -4.895467e-01
[0.5] 10 TS 0.500000 (dt = 0.050000) X  1.831713e+00 -5.199087e-01

However if I switch to using the rosw solver instead I get:

./ex20 -ts_type rosw -monitor  | more
[0.0] 0 TS 0.000000 (dt = 0.050000) X  0.000000e+00  0.000000e+00
[0.1] 1 TS 0.050000 (dt = 0.061949) X  1.997620e+00 -9.284729e-02
[0.1] 2 TS 0.111949 (dt = 0.065192) X  1.990961e+00 -1.726821e-01
[0.2] 3 TS 0.177141 (dt = 0.068763) X  1.980577e+00 -2.414006e-01
[0.2] 4 TS 0.245904 (dt = 0.073732) X  1.966977e+00 -3.007620e-01
[0.2] 5 TS 0.319635 (dt = 0.080204) X  1.950593e+00 -3.523419e-01
[0.3] 5 TS 0.319635 (dt = 0.080204) X  1.931848e+00 -3.974691e-01
[0.3] 6 TS 0.399840 (dt = 0.088357) X  1.910959e+00 -4.373211e-01
[0.4] 7 TS 0.488197 (dt = 0.098465) X  1.888151e+00 -4.729449e-01
[0.4] 7 TS 0.488197 (dt = 0.098465) X  1.863723e+00 -5.051196e-01
[0.5] 8 TS 0.586663 (dt = 0.110786) X  1.837695e+00 -5.346152e-01
[0.5] 8 TS 0.586663 (dt = 0.110786) X  1.810291e+00 -5.620222e-01

Sometimes I get two different X values for the same value of TS. Ideally 
I'd like to have the output from rosw for exactly the same time values 
as beuler, e.g. every 0.05 seconds, such that it's possible to directly 
compare the two solvers.

Is there a way to fix the time step in PETSc for the rosw solver such 
that I can get output every 0.05 seconds? if so how can I do this?

Thank you very much in advance.

Fiona

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140522/59e482f7/attachment.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140522/59e482f7/attachment.ksh>


More information about the petsc-users mailing list