Skip to main content
`Ctrl`+`K`

# PetscFEIntegrateBdJacobian

Produce the boundary element Jacobian for a chunk of elements by quadrature integration

## Synopsis

    #include "petscfe.h"
    PetscErrorCode PetscFEIntegrateBdJacobian(PetscDS ds, PetscWeakForm wf, PetscFEJacobianType jtype, PetscFormKey key, PetscInt Ne, PetscFEGeom *fgeom, const PetscScalar coefficients[], const PetscScalar coefficients_t[], PetscDS probAux, const PetscScalar coefficientsAux[], PetscReal t, PetscReal u_tshift, PetscScalar elemMat[])

Not Collective

## Input Parameters

- ds - The `PetscDS` specifying the discretizations and continuum functions

- wf - The PetscWeakForm holding the pointwise functions

- jtype - The type of matrix pointwise functions that should be used

- key - The (label+value, fieldI*Nf + fieldJ) being integrated

- Ne - The number of elements in the chunk

- fgeom - The face geometry for each cell in the chunk

- coefficients - The array of FEM basis coefficients for the elements for the Jacobian evaluation point

- 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

- u_tshift - A multiplier for the dF/du_t term (as opposed to the dF/du term)

## Output Parameter

- elemMat - the element matrices for the Jacobian from each element

## Note

      Loop over batch of elements (e):
        Loop over element matrix entries (f,fc,g,gc --> i,j):
          Loop over quadrature points (q):
            Make u_q and gradU_q (loops over fields,Nb,Ncomp)
              elemMat[i,j] += \psi^{fc}_f(q) g0_{fc,gc}(u, \nabla u) \phi^{gc}_g(q)
                           + \psi^{fc}_f(q) \cdot g1_{fc,gc,dg}(u, \nabla u) \nabla\phi^{gc}_g(q)
                           + \nabla\psi^{fc}_f(q) \cdot g2_{fc,gc,df}(u, \nabla u) \phi^{gc}_g(q)
                           + \nabla\psi^{fc}_f(q) \cdot g3_{fc,gc,df,dg}(u, \nabla u) \nabla\phi^{gc}_g(q)

## See Also

`PetscFEIntegrateJacobian()`, `PetscFEIntegrateResidual()`

## Level

intermediate

## Location

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

## Implementations

PetscFEIntegrateBdJacobian_Basic() in src/dm/dt/fe/impls/basic/febasic.c

Index of all FE routines
Table of Contents for all manual pages
Index of all manual pages