#include "petscdmda.h" #include "petscsnes.h" PetscErrorCode DMDASNESSetPicardLocal(DM dm,InsertMode imode,PetscErrorCode (*func)(DMDALocalInfo*,void*,void*,void*), PetscErrorCode (*jac)(DMDALocalInfo*,void*,Mat,Mat,void*),void *ctx)Logically Collective
dm | - DM to associate callback with | |
imode | - INSERT_VALUES if local function computes owned part, ADD_VALUES if it contributes to ghosted part | |
func | - local residual evaluation | |
ctx | - optional context for local residual evaluation |
info | - DMDALocalInfo defining the subdomain to evaluate the residual on | |
x | - dimensional pointer to state at which to evaluate residual | |
f | - dimensional pointer to residual, write the residual here | |
ctx | - optional context passed above |
Notes: The user must use extern PetscErrorCode SNESPicardComputeFunction(SNES,Vec,Vec,void*); extern PetscErrorCode SNESPicardComputeJacobian(SNES,Vec,Mat,Mat,MatStructure*,void*); ierr = SNESSetFunction(snes,NULL,SNESPicardComputeFunction,&user);CHKERRQ(ierr); in their code before calling this routine.