Boundary Integrals Differentiated
This page describes how the boundary integral contribution to the Jacobian is calculated.
Entry Point
EulerEquationMod.evalBoundaryIntegrals_diff
— Function.Functions
Computes the jacobian of the boundary condition terms for a given BC and assembles it into the Jacobian. See calcBoundaryFlux_nopre
. Note that this function does not depend on any quatiites being precomputed.
Inputs
mesh
sbp
eqn
functor: this is the regular BCType functor, not BCType_diff
idx_range: range of indices in mesh.bndryfaces that bndry_facenums came from
bndry_facenums: array of Boundary objects to compute the BC for
assembler: AssembleElementData needed to assemble the element level jacobian into the system jacobian
Implementation Notes
Currently this computes the jacobian of the flux with respect to the face via complex step (using eqn.params_complex). This should be replaced with dual numbers eventually
EulerEquationMod.getBCFluxes_diff
— Method.Computes the jacobian of the boundary condition terms computed by getBCFluxes
and assembles them into the Jacobian
Inputs
mesh
sbp
eqn
opts
assembler: AssembleElementData
Boundary Condition Functors
The same functors used to compute the boundary integral are also used to compute the Jacobian contribution.