one or more singularities in a homoclinic or heteroclinic orbit

2.  Exit the boundary

3.  Approach a limit cycle

4.  Approach a limit set that is all of $M$. In this case, $M$ must be a torus.

Because we are tracing out separatrices on a discrete mesh, in practice, they never line up perfectly with another singularity, so homoclinic and heteroclinic orbits will never occur. Thus streamlines in the discrete case can only either exit the boundary, or continue forever approaching either a limit cycle, or a limit set that is all of $M$. In order to generate a quad partition via separatrix tracing, separatrices that continue forever must be cut off after crossing some separatrix orthogonally. In practice, we use two stopping conditions: separatrices are traced until they either exit the boundary or cross the same separatrix more than once. The second condition is a simple way to eliminate the possibility of tracing out a separatrix forever, but can potentially create T-junctions on separatrices that would eventually exit the boundary.

When tracing streamlines using a numerical method such as Heun’s method, there is no guarantee that streamlines won’t cross each other or exit the boundary tangentially. This becomes especially 