Lines Matching refs:DMKSP
24 Three levels of KSP/DM share the same DMKSP
28 objects share a common `DMKSP` object. The code to access the inner
29 `DMKSP` object is
33 DMKSP dmksp;
38 To obtain a new DMKSP object for which you can change the callback
39 functions (or their contexts) without affecting the original DMKSP, call
43 DMKSP dmksp;
53 Two levels of KSP/DM share the same DMKSP; one has its own private copy
56 The `DMKSP` object is essentially the list of callback functions and
60 typedef struct _p_DMKSP *DMKSP;
66 PetscErrorCode (*destroy)(DMKSP*);
67 PetscErrorCode (*duplicate)(DMKSP,DMKSP);
78 …void); /* Store our own function pointers so they are associated with the DMKSP instead of the DM …
83 user are passed down to the inner `DMKSP` object. For each user level
109 DMKSP kdm;
126 PetscErrorCode DMGetDMKSPWrite(DM dm,DMKSP *kspdm)
128 DMKSP kdm;
135 DMKSP oldkdm = kdm;
136 PetscCall(PetscInfo(dm,"Copying DMKSP due to write\n"));
139 PetscCall(DMKSPDestroy((DMKSP*)&dm->dmksp));
151 PetscErrorCode DMGetDMKSP(DM dm,DMKSP *kspdm)
155 *kspdm = (DMKSP) dm->dmksp;
157 PetscCall(PetscInfo(dm,"Creating new DMKSP\n"));
190 PetscCall(DMKSPDestroy((DMKSP*)&dmdest->dmksp));