[petsc-dev] fortran binding for TSConvergedReason

Blaise Bourdin bourdin at lsu.edu
Thu Oct 27 15:15:28 CDT 2011


after deleting externalpackages/sow*, updating petsc and BuildSystem, reconfiguring, deleting src/ts/interface/ftn-auto/tsf.c, regenerating the fortran bindings, then rebuilding, I still get the same error (and the fortan binding is unchanged)

Blaise

On Oct 27, 2011, at 3:02 PM, Satish Balay wrote:

> I  just updated the tarball with an entry for TSGetConvergedReason
> [hence the rebuild request]
> 
> 
> Satish
> 
> On Thu, 27 Oct 2011, Blaise Bourdin wrote:
> 
>> Satish,
>> 
>> This is a brand new petsc configured and installed today using sowing 1.1.16c
>> 
>> Blaise
>> 
>> On Oct 27, 2011, at 2:57 PM, Satish Balay wrote:
>> 
>>> Can you do the following and configure/rebuild petsc-dev - and see if
>>> the error goes away?
>>> 
>>> rm -rf externalpacakges/sowing* PETSC_ARCH/conf/sowing
>>> 
>>> Satish
>>> 
>>> On Thu, 27 Oct 2011, Blaise Bourdin wrote:
>>> 
>>>> Hi,
>>>> 
>>>> Thanks for all the help in tracking our issue with TS... I think that  there is a small problem with the auto binding for TSGetConvergedReason (both dev and 3.2).
>>>> I added a call to TSGetConvergedReason after the TSSolve in ex22f.F and get the following result:
>>>> 
>>>> (gdb) cont
>>>> Continuing.
>>>> [0]PETSC ERROR: TSGetConvergedReason() line 2755 in /opt/HPC/petsc-dev/src/ts/interface/ts.c Invalid Pointer: Parameter # 2
>>>> 
>>>> Program received signal SIGABRT, Aborted.
>>>> 0x00007fff98e4e82a in __kill ()
>>>> (gdb) where
>>>> #0  0x00007fff98e4e82a in __kill ()
>>>> #1  0x00007fff975f7a9c in abort ()
>>>> #2  0x0000000105bcbd52 in PetscAbortErrorHandler (comm=1140850689, line=2755, fun=0x10691bb70 'TSGetConvergedReason\000', file=0x10691ae38 '/opt/HPC/petsc-dev/src/ts/interface/ts.c\000', dir=0x1068be9a0 '\000', n=68, p=Invalid F77 type code 5 in symbol table.
>>>> ) at errabort.c:62
>>>> #3  0x0000000105bc4ce4 in PetscError (comm=1140850689, line=2755, func=0x10691bb70 'TSGetConvergedReason\000', file=0x10691ae38 '/opt/HPC/petsc-dev/src/ts/interface/ts.c\000', dir=0x1068be9a0 '\000', n=68, p=Invalid F77 type code 5 in symbol table.
>>>> ) at err.c:356
>>>> #4  0x000000010689e86b in TSGetConvergedReason (ts=0x7f7fab8e4370, reason=0x162f727375) at ts.c:2755
>>>> #5  0x000000010682772d in tsgetconvergedreason_ (ts=0x7fff656ccf80, reason=0x7fff656ccf8c, __ierr=0x7fff656ccfa8) at tsf.c:433
>>>> #6  0x0000000105ad037a in MAIN__ () at ex22f.F:127
>>>> #7  0x0000000105ad0426 in main (argc=3, argv=0x7fff656cd208 './ex22f\000') at ex22f.F:137
>>>> 
>>>> 
>>>> 
>>>> 
>>>> If I replace te current binding in src/ts/interface/ftn-auto/tsf.c (yes, I know I am not supposed to do that):
>>>> void PETSC_STDCALL  tsgetconvergedreason_(TS ts,TSConvergedReason *reason, int *__ierr ){
>>>> *__ierr = TSGetConvergedReason(
>>>>       (TS)PetscToPointer((ts) ),
>>>>       (TSConvergedReason* )PetscToPointer((reason) ));
>>>> 
>>>> with this one:
>>>> void PETSC_STDCALL  tsgetconvergedreason_(TS ts,TSConvergedReason *reason, int *__ierr ){
>>>> *__ierr = TSGetConvergedReason(
>>>>       (TS)PetscToPointer((ts) ),
>>>>       reason);
>>>> }
>>>> 
>>>> everything seems to work OK. Does this function need a custom binding?
>>>> 
>>>> And also, the man page for TSGetConvergedReason states "see TSConvergedReason or the manual pages for the individual convergence tests for complete lists", but this man page does not seem to exist.
>>>> 
>>>> Thanks,
>>>> 
>>>> Blaise
>>>> 
>>>> 
>>> 
>> 
>> 
> 

-- 
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin










More information about the petsc-dev mailing list