fix the subface adjacency logic - Brent wrote:

8<================================

That said, the ptex library doesn't assume prman orientation of subfaces.  The
general rule is that if a subface points to a non-subface neighbor and the
neighbor points back to the subface, then it's in the primary position; if not
it's assumed to be in the secondary position.  In the secondary position, the
neighbor on edge e must point to the neighbor on edge (e+1)%4.

Expressed in code:
if (finfo.isSubface() && !adjf.isSubface()) {
   // neighbor face might be pointing to "other" subface
   if (oppfid == finfo.adjface((e+1)%4)) continue;
}