GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
#!/bin/bash12DIRH=`pwd`345# Bereite File vor, in dem Befehle fuer GAP stehen6# Log-File: t-groups.log7echo LogTo\(\"t-groups.log\"\)\; > t-groups.out8echo RequirePackage\(\"carat\"\)\; >> t-groups.out9echo names := \[\]\; >> t-groups.out10echo GROUPS := \[\]\; >> t-groups.out11i=0;1213# Wir wollen die Worte fuer alle Q-Klassen14for x in dir.* ; do15cd $x1617for y in ordnung.* ; do18cd $y1920for z in * ; do21cd $z2223for zz in group.* min.* max.* ; do24if [ -s $zz ] ; then25i=$[$i+1]26echo R := CaratReadBravaisFile\(\"$x/$y/$z/$zz\"\)\; >> $DIRH/t-groups.out27echo P$i := Group\(R.generators\)\; >> $DIRH/t-groups.out28echo Append\(names,\[\"$x/$y/$z/words.$zz\"\]\)\; >> $DIRH/t-groups.out29echo Append\(GROUPS,\[P$i\]\)\; >> $DIRH/t-groups.out30if [ -s words.$zz ] ; then31rm words.$zz32fi33fi34done3536cd ..37done38cd ..39done4041cd $DIRH4243done4445# Nun sagen wir GAP noch, was es tun soll46echo "Print(GROUPS,\"\\n\");" >> t-groups.out47echo "Print(names,\"\\n\");" >> t-groups.out48echo "Size(GROUPS);" >> t-groups.out49echo "Size(names);" >> t-groups.out50echo Read\(\"..\/TGROUPS.GAP\"\)\; >> t-groups.out51echo "for i in [1..Size(GROUPS)] do" >> t-groups.out52echo " SubgroupWords(GROUPS[i], names[i]);" >> t-groups.out53echo "od;" >> t-groups.out54echo "LogTo();" >> t-groups.out555657# wir starten GAP und lassen es die Files mit den Worten58# fuer die Untergruppen anlegen59gap -o 1024m < t-groups.out606162# Wir berechnen alle Raumgruppen und deren maximale translationengleiche63# Untergruppen bis auf Konjugation unter dem affinen Normalisator64# Dabei merken wir uns CARAT-Namen und Nummer eines Vertreters jeder Bahn65for x in dir.* ; do66cd $x6768for y in ordnung.* ; do69cd $y7071for z in * ; do72cd $z7374for zz in group.* min.* max.* ; do75if [ -s $zz ] ; then7677QtoZ $zz -D ;78for a in $zz.* ; do79Extensions -S $a80for b in $a.* ; do81echo $b82if ! TSubgroups -g -p -c $b $a words.$zz >> words.$zz ; then83echo $x/$y/$z/$b >> $DIRH/FEHLER84fi85rm ${b} ;86echo87echo88echo89done90rm $a ;91done9293fi94done9596cd ..97done98cd ..99done100101cd $DIRH102103done104105106