# DAAppSetADElementFunctionGradient2

Set routine that evaluates the local part of a function on a 2-dimensional periodic DA with 4 degrees of freedom.

## Synopsis

    int DAAppSetADElementFunctionGradient2(TAO_APPLICATION daapplication,
                                         int (*funcgrad)(int[2],DERIV_TYPE[16],DERIV_TYPE*,void*),
                                         int flops, void *ctx)

Collective on TAO_APPLICATION

## Input Parameters

| daapp | - the TAO_DA_APPLICATION solver context
| funcgrad | - local function gradient routine
| flops | - the number of flops done performed in the funcgrad routine
| fgctx | - [optional] user-defined context for private data for the evaluation.

## Calling sequence of funcgrad

        int funcgrad(int coordinates[2], DERIV_TYPE x[16], DERIV_TYPE *f, void* ctx)

| coord | - the global coordinates [i j] in each direction of the DA
| x | - the variables on the DA ( da[j][i], da[j][j+1], da[j+1][i], da[j+1][i+1] ) (bottom left, bottom right, top left, top right)
| g | - the ADIC differentiated objective function with respect to each variable
| ctx | - user defined context

Calling sequence of func before calling ADIC

        int func(int coordinates[2], double x[16], double *f, void* ctx)

| coord | - the global coordinates [i j] in each direction of the DA
| x | - the variables on the DA ( da[j][i], da[j][j+1], da[j+1][i], da[j+1][i+1] ) (bottom left, bottom right, top left, top right)
| f | - the objective function
| ctx | - user defined context

Concepts: DA, gradient, ADIC

## See Also

DAAppSetObjectiveAndGradientRoutine(), DAAppSetADElementFunctionGradient()

Level:intermediate
Location:src/petsctao/gridapplication/daadic/adelement2.c
TAO DA Application Index
Table of Contents