public void interact(Particle p) {
		if (contains(p.rx, p.ry)) {
			if (viscosity > Particle.ZERO) {
				double dmp = MDModel.GF_CONVERSION_CONSTANT * viscosity / p.getMass();
				p.fx -= dmp * p.vx;
				p.fy -= dmp * p.vy;
			}
			if (reflection) {
				if (p instanceof Atom) {
					internalReflection((Atom) p);
				}
			}
		}
		else {
			if (reflection) {
				if (p instanceof Atom) {
					if (intersects(p.getBounds2D().getBounds()))
						externalReflection((Atom) p);
				}
			}
		}
	}