PETSc version v3.15.4-900-g21e6d802fb
Fix/Edit manual page

# PetscFEIntegrateResidual

Produce the element residual vector for a chunk of elements by quadrature integration

### Synopsis

#include "petscfe.h"
PetscErrorCode PetscFEIntegrateResidual(PetscDS ds, PetscFormKey key, PetscInt Ne, PetscFEGeom *cgeom,
const PetscScalar coefficients[], const PetscScalar coefficients_t[], PetscDS probAux, const PetscScalar coefficientsAux[], PetscReal t, PetscScalar elemVec[])

Not collective

### Input Parameters

 ds - The PetscDS specifying the discretizations and continuum functions key - The (label+value, field) being integrated Ne - The number of elements in the chunk cgeom - The cell geometry for each cell in the chunk coefficients - The array of FEM basis coefficients for the elements coefficients_t - The array of FEM basis time derivative coefficients for the elements probAux - The PetscDS specifying the auxiliary discretizations coefficientsAux - The array of FEM auxiliary basis coefficients for the elements t - The time

### Output Parameter

 elemVec - the element residual vectors from each element

### Note

Loop over batch of elements (e):

  Loop over quadrature points (q):

    Make u_q and gradU_q (loops over fields,Nb,Ncomp) and x_q

    Call f_0 and f_1

  Loop over element vector entries (f,fc --> i):

    elemVec[i] += \psi^{fc}_f(q) f0_{fc}(u, \nabla u) + \nabla\psi^{fc}_f(q) \cdot f1_{fc,df}(u, \nabla u)


PetscFEIntegrateResidual()

intermediate

### Location

src/dm/dt/fe/interface/fe.c

### Implementations

src/dm/dt/fe/impls/basic/febasic.c:369:PetscErrorCode PetscFEIntegrateResidual_Basic(PetscDS ds, PetscFormKey key, PetscInt Ne, PetscFEGeom *cgeom, src/dm/dt/fe/impls/opencl/feopencl.c:516:static PetscErrorCode PetscFEIntegrateResidual_OpenCL(PetscDS prob, PetscFormKey key, PetscInt Ne, PetscFEGeom *cgeom,
Index of all FE routines