Classification of Bieberbach groups
You may want to look into GAP, a system for computational discrete algebra, which contains the CrystCat package. This package contains all information contained in the book you mention.
To check if a group is Bieberbach, you can use DisplaySpaceGroupType
, which will mention "fp-free" if the group is torsion-free.
gap> DisplaySpaceGroupType(3,6,1,1,1);
#I Space-group type (3,6,1,1,1); IT(168) = P6; orbit size 1
gap> DisplaySpaceGroupType(3,6,1,1,4);
#I *Space-group type (3,6,1,1,4); IT(169) = P61, IT(170) = P65;
#I orbit size 2; fp-free
If you want a simple list of generators and relations, see the following example:
gap> S := SpaceGroupOnRightBBNWZ(3,6,1,1,4);
SpaceGroupOnRightBBNWZ( 3, 6, 1, 1, 4 )
gap> F := Image(IsomorphismFpGroup(S));
<fp group on the generators [ f1, f2, f3, f4, f5 ]>
gap> RelatorsOfFpGroup(F);
[ f1^3*f5^2, f2^-1*f1^-1*f2*f1, f2^2*f5, f3^-1*f1^-1*f3*f1*f3*f4^-1,
f4^-1*f1^-1*f4*f1*f3*f4^2, f5^-1*f1^-1*f5*f1, f3^-1*f2^-1*f3*f2*f3^2,
f4^-1*f2^-1*f4*f2*f4^2, f5^-1*f2^-1*f5*f2, f4^-1*f3^-1*f4*f3,
f5^-1*f3^-1*f5*f3, f5^-1*f4^-1*f5*f4 ]
You can then simplify this presentation as follows:
gap> G := SimplifiedFpGroup(F);
<fp group on the generators [ f1, f2, f4 ]>
gap> RelatorsOfFpGroup(G);
[ f2^-1*f1^-1*f2*f1, f2^-1*f4*f2*f4, f2^-4*f1^3, (f4^-1*f1)^2*f4^-1*f1^-2,
f1^-1*(f4*f1)^2*f4*f1^-1, f2*f4^-1*f1^-1*f2^-2*f1*f4*f2 ]
You may also be interested in the Carat package, which allows you to calculate a database of higher-dimensional crystallographic groups and the AcLib package, which contains a database of almost-crystallographic groups.