[petsc-users] VecValid

Sanjay Govindjee s_g at berkeley.edu
Thu May 3 21:17:16 CDT 2012


The entry points for our code can vary.  Thus a vector for example can 
get created in a handful
of routines.  But it is possible that the vector has already been 
created in another routine.  So
we perform a VecValid check on it.  If it is false we create it, else we 
go on and use it.  Also at
the end when we exit the program we clean up with a series of VecDestroy 
calls but we check first if the vector is valid before calling 
VecDestroy on it.  Same for MatValid/MatDestroy.

Obviously we can store a logical flag in a common block or the like upon 
creation; but VecValid and
MatValid were handy utility functions for us.

Is is feasible to call PetscValidHeaderSpecific( ) out of fortran?  Or 
should should I just set up my own
collection of allocate/deallocate flags.

-sanjay

On 5/3/12 7:08 PM, Matthew Knepley wrote:
> On Thu, May 3, 2012 at 9:20 PM, Sanjay Govindjee <s_g at berkeley.edu 
> <mailto:s_g at berkeley.edu>> wrote:
>
>     We have some code that has worked up through petsc-3.1 and we are
>     in the process of updating it to petsc-3.2.
>
>     One thing that I can not find mentioned in the change logs
>     (looking all the way back to petsc-2.1.0) or the FAQs is the
>     elimination of the VecValid and MatValid tests.
>
>
> In C, this is now the macro PetscValidHeaderSpecific(). This check now 
> happens in every function call. What
> logic would need to look for a corrupt Vec beyond CHKERRQ?
>
>   Thanks,
>
>       Matt
>
>     We used to perform operations like:
>
>          call VecValid(xvec, chk, ierr)
>
>          if(chk .eqv. PETSC_FALSE) then
>                    call VecCreate        (PETSC_COMM_WORLD, xvec, ierr)
>                    call VecSetSizes      (xvec, numpeq, PETSC_DECIDE,
>     ierr)
>                    call VecSetFromOptions(xvec, ierr)
>          else
>            ....
>          endif
>
>     But it seems VecValid and MatValid have been eliminated.  Is there
>     a reason for this?  or have
>     I made a mistake?  Is there a replacement test for invalid Vec and
>     Mat pointers?
>
>     -sanjay
>
>
>
>
> -- 
> 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

-- 
-----------------------------------------------
Sanjay Govindjee, PhD, PE
Professor of Civil Engineering

779 Davis Hall
Structural Engineering, Mechanics and Materials
Department of Civil Engineering
University of California
Berkeley, CA 94720-1710

Voice:  +1 510 642 6060
FAX:    +1 510 643 5264
s_g at berkeley.edu
http://www.ce.berkeley.edu/~sanjay
-----------------------------------------------

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120503/6ae92626/attachment.htm>


More information about the petsc-users mailing list