PETSc version 3.15.5
PetscFEIntegrateResidual
Produce the element residual vector for a chunk of elements by quadrature integration
Synopsis
#include "petscfe.h"
PetscErrorCode PetscFEIntegrateResidual(PetscDS ds, PetscHashFormKey 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)
See Also
PetscFEIntegrateResidual()
Level
intermediate
Location
src/dm/dt/fe/interface/fe.c
Implementations
src/dm/dt/fe/impls/basic/febasic.c:369:PetscErrorCode PetscFEIntegrateResidual_Basic(PetscDS ds, PetscHashFormKey key, PetscInt Ne, PetscFEGeom *cgeom,
src/dm/dt/fe/impls/opencl/feopencl.c:516:static PetscErrorCode PetscFEIntegrateResidual_OpenCL(PetscDS prob, PetscHashFormKey key, PetscInt Ne, PetscFEGeom *cgeom,
Index of all FE routines
Table of Contents for all manual pages
Index of all manual pages