petsc-3.13.6 2020-09-29
Report Typos and Errors

PetscFEIntegrateResidual

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

Synopsis

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

Input Parameters

fem - The PetscFE object for the field being integrated
prob - The PetscDS specifying the discretizations and continuum functions
field - The 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:360:PetscErrorCode PetscFEIntegrateResidual_Basic(PetscDS ds, PetscInt field, PetscInt Ne, PetscFEGeom *cgeom, src/dm/dt/fe/impls/opencl/feopencl.c:516:static PetscErrorCode PetscFEIntegrateResidual_OpenCL(PetscDS prob, PetscInt field, PetscInt Ne, PetscFEGeom *cgeom,
Index of all FE routines
Table of Contents for all manual pages
Index of all manual pages