#define PetscHeaderCreate(h,tp,pops,cook,t,class_name,com,des,vie) \
(PetscNew(struct tp,&(h)) || \
PetscNew(PetscOps,&((h)->bops)) || \
PetscNew(pops,&((h)->ops)) || \
PetscHeaderCreate_Private((PetscObject)h,cook,t,class_name,com,(PetscObjectFunction)des,(PetscObjectViewerFunction)vie) || \
PetscLogObjectCreate(h))
/*@C
PetscHeaderDestroy - Final step in destroying a PetscObject
Input Parameters:
. h - the header created with PetscHeaderCreate()
.seealso: PetscHeaderCreate()
@*/
#define PetscHeaderDestroy(h) \
(PetscLogObjectDestroy((PetscObject)(h)) || \
PetscHeaderDestroy_Private((PetscObject)(h)) || \
PetscFree(h))
/* ---------------------------------------------------------------------------------------*/
#if !defined(PETSC_USE_DEBUG)
#define PetscValidHeaderSpecific(h,ck,arg)
#define PetscValidHeader(h,arg)
#define PetscValidPointer(h,arg)
#define PetscValidCharPointer(h,arg)
#define PetscValidIntPointer(h,arg)
#define PetscValidScalarPointer(h,arg)
#elif !defined(PETSC_HAVE_CRAY90_POINTER)
/*
Macros to test if a PETSc object is valid and if pointers are
valid
*/
#define PetscValidHeaderSpecific(h,ck,arg) \
| tp | - the data structure type of the object | |
| pops | - the data structure type of the objects operations (for example VecOps) | |
| cook | - the cookie associated with this object | |
| t | - type (no longer should be used) | |
| class_name | - string name of class; should be static | |
| com | - the MPI Communicator | |
| des | - the destroy routine for this object | |
| vie | - the view routine for this object |
Level:developer
Location:include/private/petscimpl.h
Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages