# DiracKernels System

## Point Source

• Point sources (sometimes known as point loads) are typically modeled with Dirac distributions in finite element analysis.

• We will employ the following generalized form for the Dirac delta distribution acting at :

where and are continuous functions.

• The Dirac delta distribution is thus an integral operator which "samples" the continuous functions and at the point .

• The special case is frequently used to induce the short-hand (abuse of) notation

• A diffusion equation with a point source/sink of strength (which can depend on ) located at can therefore be written as:

• Using th definiton above, the weak form for this equation (assuming Dirichlet BCs) is:

• Assume the point falls in element . Then:

• That is: we get a contribution for each DOF whose associated basis function is nonzero at .

• The DiracKernel class computes these contributions given and .

## Dirac Kernels

• A DiracKernel provides a residual (and optionally a Jacobian) at a set of points in the domain.

• The structure is very similar to kernels:

• computeQpResidual/computeQpJacobian()

• Parameters

• Coupling

• Material Properties

• etc.

• The only difference is that DiracKernel must override the virtual addPoints() function to tell MOOSE the points at which the DiracKernel is active.

• Inside of addPoints() there are two different ways to tell MOOSE about the points:

• addPoint(Point p) : Adds the physical point p that lies inside the domain of the problem.

• addPoint(Elem * e, Point p) : Adds the physical point p that lies inside the element e.

• The second version is much more efficient if you know, a-priori, the element in which the point is located.

## (Some) Values Available to DiracKernels

• _u, _grad_u : Value and gradient of variable this DiracKernel is operating on.

• _phi, _grad_phi : Value () and gradient () of the trial functions at the current Dirac point.

• _test, _grad_test : Value () and gradient () of the test functions at the current Dirac point.

• _q_point : XYZ coordinates of the current Dirac Point.

• _i, _j : Current shape functions for test and trial functions respectively.

• _current_elem : A pointer to the current element that is being operated on.

• _current_point : The point where the DiracKernel is currently being asked to compute.

See Example 17