xref: /petsc/src/dm/impls/da/dapf.c (revision dce8aeba1c9b69b19f651c53d8a6b674bd7e9cbd)
147c6ae99SBarry Smith 
2af0996ceSBarry Smith #include <petsc/private/dmdaimpl.h> /*I   "petscdmda.h"   I*/
347c6ae99SBarry Smith 
447c6ae99SBarry Smith /*@C
5*dce8aebaSBarry Smith    DMDACreatePF - Creates an appropriately dimensioned `PF` mathematical function object
6aa219208SBarry Smith       from a DMDA.
747c6ae99SBarry Smith 
8d083f849SBarry Smith    Collective on da
947c6ae99SBarry Smith 
1047c6ae99SBarry Smith    Input Parameter:
1147c6ae99SBarry Smith .  da - initial distributed array
1247c6ae99SBarry Smith 
1347c6ae99SBarry Smith    Output Parameter:
1447c6ae99SBarry Smith .  pf - the mathematical function object
1547c6ae99SBarry Smith 
1647c6ae99SBarry Smith    Level: advanced
1747c6ae99SBarry Smith 
18*dce8aebaSBarry Smith    Fortran Note:
19f5f57ec0SBarry Smith    Not supported from Fortran
2047c6ae99SBarry Smith 
21*dce8aebaSBarry Smith .seealso: `DM`, `PF`, `DMDA`, `DMDACreate1d()`, `DMDACreate2d()`, `DMDACreate3d()`, `DMDestroy()`, `DMCreateGlobalVector()`
2247c6ae99SBarry Smith @*/
23d71ae5a4SJacob Faibussowitsch PetscErrorCode DMDACreatePF(DM da, PF *pf)
24d71ae5a4SJacob Faibussowitsch {
2547c6ae99SBarry Smith   DM_DA *dd = (DM_DA *)da->data;
2647c6ae99SBarry Smith 
2747c6ae99SBarry Smith   PetscFunctionBegin;
28a9a02de4SBarry Smith   PetscValidHeaderSpecificType(da, DM_CLASSID, 1, DMDA);
2947c6ae99SBarry Smith   PetscValidPointer(pf, 2);
309566063dSJacob Faibussowitsch   PetscCall(PFCreate(PetscObjectComm((PetscObject)da), da->dim, dd->w, pf));
3147c6ae99SBarry Smith   PetscFunctionReturn(0);
3247c6ae99SBarry Smith }
33