PetscObjectCompose#

Associates another PETSc object with a given PETSc object.

Synopsis#

#include "petscsys.h"    
PetscErrorCode PetscObjectCompose(PetscObject obj, const char name[], PetscObject ptr)

Not Collective

Input Parameters#

  • obj - the PETSc object; this must be cast with (PetscObject), for example, PetscObjectCompose((PetscObject)mat,…);

  • name - name associated with the child object

  • ptr - the other PETSc object to associate with the PETSc object; this must also be cast with (PetscObject)

Notes#

The second objects reference count is automatically increased by one when it is composed.

Replaces any previous object that had been composed with the same name.

If ptr is NULL and name has previously been composed using an object, then that entry is removed from obj.

PetscObjectCompose() can be used with any PETSc object (such as Mat, Vec, KSP, SNES, etc.) or any user-provided object.

PetscContainerCreate() or PetscObjectContainerCompose() can be used to create an object from a user-provided pointer that may then be composed with PETSc objects using PetscObjectCompose()

See Also#

PetscObjectQuery(), PetscContainerCreate(), PetscObjectComposeFunction(), PetscObjectQueryFunction(), PetscContainer, PetscContainerSetPointer(), PetscObject, PetscObjectContainerCompose()

Level#

advanced

Location#

src/sys/objects/inherit.c

Examples#

src/ts/tutorials/ex76.c
src/ts/tutorials/ex77.c
src/ts/tutorials/ex46.c
src/ts/tutorials/ex30.c
src/ksp/ksp/tutorials/ex73.c
src/snes/tutorials/ex69.c
src/snes/tutorials/ex48.c
src/ts/tutorials/ex29.c
src/snes/tutorials/ex35.c
src/snes/tutorials/ex77.c


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