Boolean difference modifier misbehaves with fluid sim I have a scene where I am using a fluid simulation to splash water into an invisible diamond shape. I'm using a boolean modifier to remove (subtract) the jagged edges from the outside of the water. However, the modifier only works on some frames. On others, it causes most of the water to be completely flattened into a diamond shape, effectively deleting the surface of the water where it should not be touched by the modifier.

Basically, this is what I'm starting with:


I'm using a boolean modifier to subtract this from the water mesh:


This is the intended result (on a previous frame where it works):


And this is what I get instead on some frames:


Here is the .blend file, for reference:



I have made sure that the normals of the mesh I am subtracting are correct. I have also tried applying the fluidsim modifier on the frame I want, removing doubles and making normals consistent with ctrl+N, but the result is the same.

What is causing the boolean difference modifier to behave like this? Is there anything I can do in my project to fix it?
The problem appears to be due to quads in the object used in the Boolean operation.

If the you look at the mesh for the object used in the difference boolean operation, there are quads visible.

 

In edit mode, here is a quad face highlighted.



If you either triangulate the mesh or add a triangulate modifier to the mesh (and enable it...) the Boolean operation looks like expected.