> On May 20, 2014, at 6:36 AM, Derek Gaston <notifications@github.com> wrote:
> 
> In framework/src/dirackernels/DiracKernel.C:
> 
> >  {
> > +  if (id != libMesh::invalid_uint)
> > +  {
> > +    // OK, the user gave us an ID, let's see if we already have it...
> > +    std::map<unsigned, std::pair<const Elem*, Point> >::iterator it = _point_cache.find(id);
> > +
> > +    if (it != _point_cache.end())
> > +    {
> > +      // We have something cached, now make sure it's actually the same Point.
> > +      // TODO: we should probably use this same comparison in the DiracKernelInfo code!
> > +      Point cached_point = (it->second).second;
> > +
> > +      if (cached_point.relative_fuzzy_equals(p))
> > +      {
> > +        // use cached data and call the other addPoint() method
> > +        const Elem * cached_elem = (it->second).first;
> Hmmm.... this isn't quite right. You need to make sure this point is still in the cached element.
> 
> The mesh may have moved out from under the point...
> 

Ok, I can add that check.