Skip to content

Commit

Permalink
work on surfaces via butterfly insertion
Browse files Browse the repository at this point in the history
  • Loading branch information
alice authored and alice committed Sep 12, 2024
1 parent 6e204cc commit 223a31d
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 9 deletions.
21 changes: 21 additions & 0 deletions gap/PolygonalComplexes/discs.gi
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,24 @@ end




# Compute up to isomorphism all surfaces that can be obtained from
# the surface surf by a butterfly insertion along a relevant 2-path

InstallMethod( AllSimplicialSurfacesByEssentialButterflyInsertion,
"for a simplicial surface",
[IsSimplicialSurface],


function(surf)

local allp, surfaces;

allp := __SIMPLICIAL_AllEssentialTwoPaths(surf);

surfaces := List(allp, t-> ButterflyInsertionSurface(surf, t)[1]);


return IsomorphismRepresentatives(surfaces);

end);
5 changes: 3 additions & 2 deletions gap/PolygonalComplexes/modification.gd
Original file line number Diff line number Diff line change
Expand Up @@ -1596,8 +1596,9 @@ DeclareOperation("SplitAllVertices", [IsPolygonalComplex]);
#! Inserting a butterfly along the vertex-edge path
#! @BeginExampleSession
#! gap> disc := SimplicialUmbrella(5);
#! gap> t:= [1,2,6];
#! gap> discbig:=ButterflyInsertionSurface(disc,1);
#! simplicial surface (6 vertices, 10 edges, and 5 faces)
#! gap> t:= [1,2,6];;
#! gap> discbig:=ButterflyInsertionSurface(disc,t)[1];
#! simplicial surface (7 vertices, 13 edges, and 7 faces)
#! gap> CounterOfVertices(discbig);
#! counter of vertices ([ 2, 3, 6 ] degrees, and [ 3, 3, 1 ] multiplicities)
Expand Down
7 changes: 0 additions & 7 deletions gap/PolygonalComplexes/modification.gi
Original file line number Diff line number Diff line change
Expand Up @@ -1892,9 +1892,6 @@ InstallMethod( ButterflyInsertionSurface,
Length(CommonVerticesOfEdgesNC(surface,t[1],t[2])) = 0 then
ErrorNoReturn("Requires a pair of adjacent edges");
fi;
if CommonFacesOfEdges(surface, t[1],t[2]) <> [] then
ErrorNoReturn("Edges cannot be incident to common face");
fi;
t := Union(VerticesOfEdge(surface,t[1]),VerticesOfEdge(surface,t[2]));
if not t[2] in CommonVerticesOfEdgesNC(surface,t[1],t[2]) then
w := t[2]; t[2] := t[1]; t[1] := w;
Expand All @@ -1905,10 +1902,6 @@ InstallMethod( ButterflyInsertionSurface,
not IsVerticesAdjacent(surface, t[1], t[2] ) or
not IsVerticesAdjacent(surface, t[2], t[3] ) then
ErrorNoReturn("Requires vertex path of length 3");fi;
if Intersection(CommonFacesOfVertices(surface, t[1],t[2]),
CommonFacesOfVertices(surface, t[2],t[3])) <> [] then
ErrorNoReturn("Edges cannot be incident to common face");
fi;
fi;


Expand Down

0 comments on commit 223a31d

Please sign in to comment.