DMProjectFunctionLocal#
This projects the given function into the function space provided by a DM
, putting the coefficients in a local vector.
Synopsis#
#include "petscdm.h"
#include "petscdmlabel.h"
#include "petscds.h"
PetscErrorCode DMProjectFunctionLocal(DM dm, PetscReal time, PetscErrorCode (**funcs)(PetscInt dim, PetscReal time, const PetscReal x[], PetscInt Nc, PetscScalar *u, void *ctx), void **ctxs, InsertMode mode, Vec localX)
Not Collective
Input Parameters#
dm - The
DM
time - The time
funcs - The coordinate functions to evaluate, one per field
ctxs - Optional array of contexts to pass to each coordinate function. ctxs itself may be null.
mode - The insertion mode for values
Output Parameter#
localX - vector
Calling sequence of funcs
#
dim - The spatial dimension
time - The current timestep
x - The coordinates
Nc - The number of components
u - The output field values
ctx - optional user-defined function context
Developer Notes#
This API is specific to only particular usage of DM
The notes need to provide some information about what has to be provided to the DM
to be able to perform the computation.
See Also#
DM Basics, DM
, DMProjectFunction()
, DMProjectFunctionLabel()
, DMComputeL2Diff()
Level#
developer
Location#
Examples#
src/dm/field/tutorials/ex1.c
src/ts/tutorials/ex47.c
src/snes/tutorials/ex12.c
src/snes/tutorials/ex77.c
Implementations#
DMProjectFunctionLocal_pforest(DM dm, PetscReal time, PetscErrorCode (**funcs)() in src/dm/impls/forest/p4est/pforest.h
DMProjectFunctionLocal_Plex(DM dm, PetscReal time, PetscErrorCode (**funcs)() in src/dm/impls/plex/plexproject.c
Index of all DM routines
Table of Contents for all manual pages
Index of all manual pages