petsc-3.13.6 2020-09-29
Report Typos and Errors

PetscHeaderCreate

Creates a PETSc object of a particular class

Synopsis

#define PetscHeaderCreate(h,classid,class_name,descr,mansec,comm,destroy,view) \
  (PetscNew(&(h)) || \
   PetscHeaderCreate_Private((PetscObject)(h),classid,class_name,descr,mansec,comm,(PetscObjectDestroyFunction)(destroy),(PetscObjectViewFunction)(view)) || \
   PetscLogObjectCreate(h) || \
   PetscLogObjectMemory((PetscObject)(h),sizeof(*(h))))

PETSC_EXTERN PetscErrorCode PetscComposedQuantitiesDestroy(PetscObject obj);
PETSC_EXTERN PetscErrorCode PetscHeaderCreate_Private(PetscObject,PetscClassId,const char[],const char[],const char[],MPI_Comm,PetscObjectDestroyFunction,PetscObjectViewFunction);

/*@C
    PetscHeaderDestroy - Final step in destroying a PetscObject

    Input Parameters:
.   h - the header created with PetscHeaderCreate()

    

.seealso: PetscHeaderCreate()
@*/
#define PetscHeaderDestroy(h) (PetscHeaderDestroy_Private((PetscObject)(*(h))) || PetscFree(*(h)))

PETSC_EXTERN PetscErrorCode PetscHeaderDestroy_Private(PetscObject);
PETSC_EXTERN PetscErrorCode PetscObjectCopyFortranFunctionPointers(PetscObject,PetscObject);
PETSC_EXTERN PetscErrorCode PetscObjectSetFortranCallback(PetscObject,PetscFortranCallbackType,PetscFortranCallbackId*,void(*)(void),void *ctx);
PETSC_EXTERN PetscErrorCode PetscObjectGetFortranCallback(PetscObject,PetscFortranCallbackType,PetscFortranCallbackId,void(**)(void),void **ctx);

PETSC_INTERN PetscErrorCode PetscCitationsInitialize(void);
PETSC_INTERN PetscErrorCode PetscFreeMPIResources(void);



PETSC_EXTERN PetscBool PetscCheckPointer(const void*,PetscDataType);
#if defined(PETSC_HAVE_CUDA)
PETSC_EXTERN PetscBool PetscCheckMpiGpuAwareness(void);
#endif
/*
    Macros to test if a PETSc object is valid and if pointers are valid
*/
#if !defined(PETSC_USE_DEBUG)

#define PetscValidHeaderSpecific(h,ck,arg) do

Input Parameters

classid - the classid associated with this object (for example VEC_CLASSID)
class_name - string name of class; should be static (for example "Vec")
descr - string containing short description; should be static (for example "Vector")
mansec - string indicating section in manual pages; should be static (for example "Vec")
comm - the MPI Communicator
destroy - the destroy routine for this object (for example VecDestroy())
view - the view routine for this object (for example VecView())

Output Parameter

h -the newly created object

See Also

PetscHeaderDestroy(), PetscClassIdRegister()

Level

developer

Location

include/petsc/private/petscimpl.h

Examples

src/snes/tutorials/ex48.c.html
src/ts/tutorials/ex14.c.html

Index of all Sys routines
Table of Contents for all manual pages
Index of all manual pages