#dim := 4; #Input dimension #needs a dimension and a list of length 4 called startat Print("Started program in dimension ",dim, ": containing ", NrCrystalSystems(dim), " crystal systems \n"); AppendTo(streamout,"Started program in dimension ",dim, ": containing ", NrCrystalSystems(dim), " crystal systems \n"); WriteLine(streamout, " "); qclass:=startat[2]; Print("Started crystal system (",dim," ", startat[2], "): containing ", NrQClassesCrystalSystem(dim, startat[2]), " Q-classes \n"); AppendTo(streamout,"Started crystal system (",dim," ", startat[2], "): containing ", NrQClassesCrystalSystem(dim, startat[2]), " Q-classes \n"); Print("Started QClass (",dim," ", startat[2]," ",startat[3],"): containing ", NrZClassesQClass(dim,startat[2],startat[3]), " Z-classes \n"); AppendTo(streamout,"Started QClass (",dim," ", startat[2]," ", startat[3],"): containing ", NrZClassesQClass(dim, startat[2],startat[3]), " Z-classes \n"); for zclass in [startat[4]..NrZClassesQClass(dim, startat[2], startat[3])] do Print("For the Z-class (", dim," ", startat[2]," ",startat[3]," ", zclass, "):\n"); AppendTo(streamout,"For the Z-class (", dim," ", startat[2]," ", startat[3]," ", zclass, "):\n"); H := MatGroupZClass(dim, startat[2],startat[3],zclass); if NrSpaceGroupTypesZClass(dim, startat[2], startat[3], zclass) <= 2 then Print("Class skipped as trivial number of space groups. \n"); AppendTo(streamout,"Class skipped as trivial number of space groups. \n"); Print("-------------------------------------------------\n \n \n"); AppendTo(streamout,"-------------------------------------------------\n \n \n"); continue; else Read("DoSpecificZClass.txt"); if ProfClassesInZClass = NrSpaceGroupTypesZClass(dim, startat[2], startat[3], zclass) then Print("All ",NrSpaceGroupTypesZClass(dim, startat[2], startat[3], zclass) ," space groups ARE profinitely distinguished", "\n"); AppendTo(streamout,"All ",NrSpaceGroupTypesZClass(dim, startat[2], startat[3], zclass) ," space groups ARE profinitely distinguished", "\n"); else Print("-------------------------------------------------\n"); AppendTo(streamout,"-------------------------------------------------\n"); Print("All space groups are not profinitely distinguished for this E; beginning stage 5 calculations.", "\n"); AppendTo(streamout,"All space groups are not profinitely distinguished for this E; beginning stage 5 calculations.", "\n"); Read("Depth2ZClass2.txt"); if ProfClassesInZClass = NrSpaceGroupTypesZClass(dim, startat[2], startat[3], zclass) then Print("All ",NrSpaceGroupTypesZClass(dim, startat[2], startat[3], zclass) ," space groups ARE NOW profinitely distinguished", "\n"); AppendTo(streamout,"All ",NrSpaceGroupTypesZClass(dim, startat[2], startat[3], zclass) ," space groups ARE NOW profinitely distinguished", "\n"); else Print("For the Z-class (", dim, startat[2], startat[3], zclass, ") all space groups ARE NOT profinitely distinguished.", "\n"); AppendTo(streamout, "For the Z-class (", dim, startat[2], startat[3], zclass, ") all space groups ARE NOT profinitely distinguished.", "\n"); fi; fi; Print("-------------------------------------------------\n \n \n"); AppendTo(streamout,"-------------------------------------------------\n \n \n"); fi; #TERMINATION OF LOOP OVER Z-CLASSES od; for qclass in [startat[3]+1..NrQClassesCrystalSystem(dim, startat[2])] do Print("Started QClass (",dim," ", startat[2]," ", qclass,"): containing ", NrZClassesQClass(dim,startat[2],qclass), " Z-classes \n"); AppendTo(streamout,"Started QClass (",dim," ", startat[2]," ", qclass,"): containing ", NrZClassesQClass(dim, startat[2],qclass), " Z-classes \n"); for zclass in [1..NrZClassesQClass(dim, startat[2], qclass)] do Print("For the Z-class (", dim," ", startat[2]," ", qclass," ", zclass, "):\n"); AppendTo(streamout,"For the Z-class (", dim," ", startat[2]," ", qclass," ", zclass, "):\n"); H := MatGroupZClass(dim, startat[2],qclass,zclass); if NrSpaceGroupTypesZClass(dim, startat[2], qclass, zclass) <= 2 then Print("Class skipped as trivial number of space groups. \n"); AppendTo(streamout,"Class skipped as trivial number of space groups. \n"); Print("-------------------------------------------------\n \n \n"); AppendTo(streamout,"-------------------------------------------------\n \n \n"); continue; else Read("DoSpecificZClass.txt"); if ProfClassesInZClass = NrSpaceGroupTypesZClass(dim, startat[2], qclass, zclass) then Print("All ",NrSpaceGroupTypesZClass(dim, startat[2], qclass, zclass) ," space groups ARE profinitely distinguished", "\n"); AppendTo(streamout,"All ",NrSpaceGroupTypesZClass(dim, startat[2], qclass, zclass) ," space groups ARE profinitely distinguished", "\n"); else Print("-------------------------------------------------\n"); AppendTo(streamout,"-------------------------------------------------\n"); Print("All space groups are not profinitely distinguished for this E; beginning stage 5 calculations.", "\n"); AppendTo(streamout,"All space groups are not profinitely distinguished for this E; beginning stage 5 calculations.", "\n"); Read("Depth2ZClass2.txt"); if ProfClassesInZClass = NrSpaceGroupTypesZClass(dim, startat[2], qclass, zclass) then Print("All ",NrSpaceGroupTypesZClass(dim, startat[2], qclass, zclass) ," space groups ARE NOW profinitely distinguished", "\n"); AppendTo(streamout,"All ",NrSpaceGroupTypesZClass(dim, startat[2], qclass, zclass) ," space groups ARE NOW profinitely distinguished", "\n"); else Print("For the Z-class (", dim, startat[2], qclass, zclass, ") all space groups ARE NOT profinitely distinguished.", "\n"); AppendTo(streamout, "For the Z-class (", dim, startat[2], qclass, zclass, ") all space groups ARE NOT profinitely distinguished.", "\n"); fi; fi; Print("-------------------------------------------------\n \n \n"); AppendTo(streamout,"-------------------------------------------------\n \n \n"); fi; #TERMINATION OF LOOP OVER Z-CLASSES od; od; for sys in [ startat[2]+1..NrCrystalSystems(dim)] do Print("Started crystal system (",dim," ", sys, "): containing ", NrQClassesCrystalSystem(dim,sys), " Q-classes \n"); AppendTo(streamout,"Started crystal system (",dim," ", sys, "): containing ", NrQClassesCrystalSystem(dim,sys), " Q-classes \n"); for qclass in [1..NrQClassesCrystalSystem(dim, sys)] do Print("Started QClass (",dim," ", sys," ", qclass,"): containing ", NrZClassesQClass(dim,sys,qclass), " Z-classes \n"); AppendTo(streamout,"Started QClass (",dim," ", sys," ", qclass,"): containing ", NrZClassesQClass(dim,sys,qclass), " Z-classes \n"); for zclass in [1..NrZClassesQClass(dim, sys, qclass)] do Print("For the Z-class (", dim," ", sys," ", qclass," ", zclass, "):\n"); AppendTo(streamout,"For the Z-class (", dim," ", sys," ", qclass," ", zclass, "):\n"); H := MatGroupZClass(dim,sys,qclass,zclass); if NrSpaceGroupTypesZClass(dim, sys, qclass, zclass) <= 2 then Print("Class skipped as trivial number of space groups. \n"); AppendTo(streamout,"Class skipped as trivial number of space groups. \n"); Print("-------------------------------------------------\n \n \n"); AppendTo(streamout,"-------------------------------------------------\n \n \n"); continue; else Read("DoSpecificZClass.txt"); if ProfClassesInZClass = NrSpaceGroupTypesZClass(dim, sys, qclass, zclass) then Print("All ",NrSpaceGroupTypesZClass(dim, sys, qclass, zclass) ," space groups ARE profinitely distinguished", "\n"); AppendTo(streamout,"All ",NrSpaceGroupTypesZClass(dim, sys, qclass, zclass) ," space groups ARE profinitely distinguished", "\n"); else Print("-------------------------------------------------\n"); AppendTo(streamout,"-------------------------------------------------\n"); Print("All space groups are not profinitely distinguished for this E; beginning stage 5 calculations.", "\n"); AppendTo(streamout,"All space groups are not profinitely distinguished for this E; beginning stage 5 calculations.", "\n"); Read("Depth2ZClass2.txt"); if ProfClassesInZClass = NrSpaceGroupTypesZClass(dim, sys, qclass, zclass) then Print("All ",NrSpaceGroupTypesZClass(dim, sys, qclass, zclass) ," space groups ARE NOW profinitely distinguished", "\n"); AppendTo(streamout,"All ",NrSpaceGroupTypesZClass(dim, sys, qclass, zclass) ," space groups ARE NOW profinitely distinguished", "\n"); else Print("For the Z-class (", dim, sys, qclass, zclass, ") all space groups ARE NOT profinitely distinguished.", "\n"); AppendTo(streamout, "For the Z-class (", dim, sys, qclass, zclass, ") all space groups ARE NOT profinitely distinguished.", "\n"); fi; fi; Print("-------------------------------------------------\n \n \n"); AppendTo(streamout,"-------------------------------------------------\n \n \n"); fi; #TERMINATION OF LOOP OVER Z-CLASSES od; od; od;