ADRayKernel
Description
ADRayKernel
is the base class for the objects that calculate residual vector contributions of non-linear scalar field variables that use Automatic Differentiation along a Ray. See also RayKernel for the non-AD version of this object.
The use of a ADRayKernel
is the same of a standard Kernel. In an ADRayKernel
subclass the computeQpResidual()
function must be overridden. This is where you implement your PDE weak form terms.
Inside your ADRayKernel
class, you have access to several member variables for computing the residual:
_i
,_j
: indices for the current test and trial shape functions respectively._qp
: current quadrature point index._u
,_grad_u
: value and gradient of the variable this Kernel operates on; indexed by_qp
(i.e._u[_qp]
)._test
,_grad_test
: value () and gradient () of the test functions at the q-points; indexed by_i
and then_qp
(i.e.,_test[_i][_qp]
)._phi
,_grad_phi
: value () and gradient () of the trial functions at the q-points; indexed by_j
and then_qp
(i.e.,_phi[_j][_qp]
)._q_point
: XYZ coordinates of the current quadrature point._current_elem
: pointer to the current element being operated on.
Also available for override is precalculateResidual()
, which is an insertion point immediately before computing the residual. This can be useful when computing cached values that are valid for all quadrature points.
Many other useful member variables exist that describe the Ray segment. For more information, see Using a RayKernel.
RZ
and RSPHERICAL
coordinate changes are not valid for a RayKernel
. This is because said coordinate systems have no way to represent a line source—one would end up with a plane/surface source or a volumetric source, respectively. This is why _coord[_qp]
is not utilized in RayKernel
.