[petsc-users] recommended error-checking for PetscInitialize() and PetscFinalize()

Barry Smith bsmith at petsc.dev
Fri Sep 11 17:05:54 CDT 2020



> On Sep 11, 2020, at 2:58 PM, Matthew Knepley <knepley at gmail.com> wrote:
> 
> On Fri, Sep 11, 2020 at 3:57 PM Ed Bueler <elbueler at alaska.edu <mailto:elbueler at alaska.edu>> wrote:
> Dear PETSc --
> 
> I notice in the users manual that the C examples show
> 
> ierr = PetscInitialize(&argc,&args,(char*)0,help);if (ierr) return ierr;
> 
> at the start of main() and 
> 
> ierr = PetscFinalize();
> return ierr;
> 
> at the end of main().  Is this the deliberate, recommended style?
> 
> Yes.
>  
>   My understanding of these choices is that if PetscInitialize() fails then CHKERRQ(ierr) may not do the right thing,
> 
> Yes, failure early-on in Initialize() can predate setting up error handling.
>  
> while if PetscFinalize() fails then that should be the result of main() (without any fiddling by CHKERRQ etc.).  Is this the correct understanding?
> 
> Yes.

  If there is a failure in PetscFinalize() then PETSc will be in some unknown state where the CHKERRQ macros will no longer work so PETSc error handling should not be called.

  Barry

> 
>   Thanks,
> 
>      Matt
>  
> Thanks,
> 
> Ed
> 
> -- 
> Ed Bueler
> Dept of Mathematics and Statistics
> University of Alaska Fairbanks
> Fairbanks, AK 99775-6660
> 306C Chapman
> 
> 
> -- 
> What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.
> -- Norbert Wiener
> 
> https://www.cse.buffalo.edu/~knepley/ <http://www.cse.buffalo.edu/~knepley/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20200911/581f2dfa/attachment.html>


More information about the petsc-users mailing list