1-Passing U and f into evaluate(), 2-resizing domain after particles
moved.