From ea4c16c7156ed18e8585b987f8a2aa275a7582f1 Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Tue, 15 Feb 2022 14:25:13 +0100 Subject: [PATCH 01/11] add morphisms.dot --- data/morphisms.dot | 304 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 data/morphisms.dot diff --git a/data/morphisms.dot b/data/morphisms.dot new file mode 100644 index 0000000..b44d38c --- /dev/null +++ b/data/morphisms.dot @@ -0,0 +1,304 @@ +"G^{14,14,48}_{0}" -> "G^{14,14,24}_{1}" +"G^{14,14,48}_{0}" -> "G^{14,14,16}_{1}" +"G^{14,14,48}_{1}" -> "G^{14,14,24}_{0}" +"G^{14,14,48}_{1}" -> "G^{14,14,16}_{0}" +"G^{14,14,48}_{4}" -> "G^{14,14,24}_{5}" +"G^{14,14,48}_{4}" -> "G^{14,14,16}_{5}" +"G^{14,14,48}_{5}" -> "G^{14,14,24}_{4}" +"G^{14,14,48}_{5}" -> "G^{14,14,16}_{4}" +"G^{14,14,54}_{0}" -> "G^{14,14,18}_{0}" +"G^{14,14,54}_{4}" -> "G^{14,14,18}_{4}" +"G^{14,16,48}_{0}" -> "G^{14,16,24}_{1}" +"G^{14,16,48}_{0}" -> "G^{14,16,16}_{1}" +"G^{14,16,48}_{1}" -> "G^{14,16,24}_{0}" +"G^{14,16,48}_{1}" -> "G^{14,16,16}_{0}" +"G^{14,16,54}_{0}" -> "G^{14,16,18}_{0}" +"G^{14,16,54}_{2}" -> "G^{14,16,18}_{0}" +"G^{14,18,48}_{0}" -> "G^{14,18,24}_{0}" +"G^{14,18,48}_{0}" -> "G^{14,16,18}_{0}" +"G^{14,18,54}_{0}" -> "G^{14,18,18}_{0}" +"G^{14,18,54}_{2}" -> "G^{14,18,18}_{0}" +"G^{14,24,48}_{0}" -> "G^{14,24,24}_{1}" +"G^{14,24,48}_{0}" -> "G^{14,16,24}_{1}" +"G^{14,24,48}_{1}" -> "G^{14,24,24}_{0}" +"G^{14,24,48}_{1}" -> "G^{14,16,24}_{0}" +"G^{14,24,54}_{0}" -> "G^{14,18,24}_{0}" +"G^{14,24,54}_{2}" -> "G^{14,18,24}_{0}" +"G^{14,26,48}_{0}" -> "G^{14,24,26}_{3}" +"G^{14,26,48}_{0}" -> "G^{14,16,26}_{3}" +"G^{14,26,48}_{1}" -> "G^{14,24,26}_{7}" +"G^{14,26,48}_{1}" -> "G^{14,16,26}_{7}" +"G^{14,26,48}_{4}" -> "G^{14,24,26}_{0}" +"G^{14,26,48}_{4}" -> "G^{14,16,26}_{0}" +"G^{14,26,48}_{5}" -> "G^{14,24,26}_{1}" +"G^{14,26,48}_{5}" -> "G^{14,16,26}_{1}" +"G^{14,26,54}_{0}" -> "G^{14,18,26}_{3}" +"G^{14,26,54}_{2}" -> "G^{14,18,26}_{3}" +"G^{14,26,54}_{4}" -> "G^{14,18,26}_{0}" +"G^{14,26,54}_{6}" -> "G^{14,18,26}_{0}" +"G^{16,16,48}_{0}" -> "G^{16,16,24}_{1}" +"G^{16,16,48}_{0}" -> "G^{16,16,16}_{1}" +"G^{16,16,48}_{1}" -> "G^{16,16,24}_{0}" +"G^{16,16,48}_{1}" -> "G^{16,16,16}_{0}" +"G^{16,16,54}_{0}" -> "G^{16,16,18}_{0}" +"G^{16,18,48}_{0}" -> "G^{16,18,24}_{0}" +"G^{16,18,48}_{0}" -> "G^{16,16,18}_{0}" +"G^{16,18,54}_{0}" -> "G^{16,18,18}_{0}" +"G^{16,18,54}_{2}" -> "G^{16,18,18}_{0}" +"G^{16,24,48}_{0}" -> "G^{16,24,24}_{1}" +"G^{16,24,48}_{0}" -> "G^{16,16,24}_{1}" +"G^{16,24,48}_{1}" -> "G^{16,24,24}_{0}" +"G^{16,24,48}_{1}" -> "G^{16,16,24}_{0}" +"G^{16,24,54}_{0}" -> "G^{16,18,24}_{0}" +"G^{16,24,54}_{2}" -> "G^{16,18,24}_{0}" +"G^{16,26,48}_{0}" -> "G^{16,24,26}_{1}" +"G^{16,26,48}_{0}" -> "G^{16,16,26}_{1}" +"G^{16,26,48}_{1}" -> "G^{16,24,26}_{0}" +"G^{16,26,48}_{1}" -> "G^{16,16,26}_{0}" +"G^{16,26,54}_{0}" -> "G^{16,18,26}_{0}" +"G^{16,26,54}_{2}" -> "G^{16,18,26}_{0}" +"G^{18,18,48}_{0}" -> "G^{18,18,24}_{0}" +"G^{18,18,48}_{0}" -> "G^{16,18,18}_{0}" +"G^{18,18,54}_{0}" -> "G^{18,18,18}_{0}" +"G^{18,24,48}_{0}" -> "G^{18,24,24}_{0}" +"G^{18,24,48}_{0}" -> "G^{16,18,24}_{0}" +"G^{18,24,54}_{0}" -> "G^{18,18,24}_{0}" +"G^{18,24,54}_{2}" -> "G^{18,18,24}_{0}" +"G^{18,26,48}_{0}" -> "G^{18,24,26}_{0}" +"G^{18,26,48}_{0}" -> "G^{16,18,26}_{0}" +"G^{18,26,54}_{0}" -> "G^{18,18,26}_{0}" +"G^{18,26,54}_{2}" -> "G^{18,18,26}_{0}" +"G^{24,24,48}_{0}" -> "G^{24,24,24}_{1}" +"G^{24,24,48}_{0}" -> "G^{16,24,24}_{1}" +"G^{24,24,48}_{1}" -> "G^{24,24,24}_{0}" +"G^{24,24,48}_{1}" -> "G^{16,24,24}_{0}" +"G^{24,24,54}_{0}" -> "G^{18,24,24}_{0}" +"G^{24,26,48}_{0}" -> "G^{24,24,26}_{1}" +"G^{24,26,48}_{0}" -> "G^{16,24,26}_{1}" +"G^{24,26,48}_{1}" -> "G^{24,24,26}_{0}" +"G^{24,26,48}_{1}" -> "G^{16,24,26}_{0}" +"G^{24,26,54}_{0}" -> "G^{18,24,26}_{0}" +"G^{24,26,54}_{2}" -> "G^{18,24,26}_{0}" +"G^{26,26,48}_{0}" -> "G^{24,26,26}_{3}" +"G^{26,26,48}_{0}" -> "G^{16,26,26}_{3}" +"G^{26,26,48}_{1}" -> "G^{24,26,26}_{0}" +"G^{26,26,48}_{1}" -> "G^{16,26,26}_{0}" +"G^{26,26,48}_{4}" -> "G^{24,26,26}_{5}" +"G^{26,26,48}_{4}" -> "G^{16,26,26}_{5}" +"G^{26,26,48}_{5}" -> "G^{24,26,26}_{1}" +"G^{26,26,48}_{5}" -> "G^{16,26,26}_{1}" +"G^{26,26,54}_{0}" -> "G^{18,26,26}_{0}" +"G^{26,26,54}_{4}" -> "G^{18,26,26}_{1}" +"G^{14,40,48}_{0}" -> "G^{14,24,40}_{0}" +"G^{14,40,48}_{0}" -> "G^{14,16,40}_{0}" +"G^{14,40,54}_{0}" -> "G^{14,18,40}_{0}" +"G^{14,40,54}_{2}" -> "G^{14,18,40}_{0}" +"G^{14,48,48}_{0}" -> "G^{14,24,48}_{1}" +"G^{14,48,48}_{0}" -> "G^{14,16,48}_{1}" +"G^{14,48,48}_{0}" -> "G^{14,24,48}_{1}" +"G^{14,48,48}_{0}" -> "G^{14,16,48}_{1}" +"G^{14,48,48}_{1}" -> "G^{14,24,48}_{0}" +"G^{14,48,48}_{1}" -> "G^{14,16,48}_{0}" +"G^{14,48,48}_{1}" -> "G^{14,24,48}_{0}" +"G^{14,48,48}_{1}" -> "G^{14,16,48}_{0}" +"G^{14,48,54}_{0}" -> "G^{14,18,48}_{0}" +"G^{14,48,54}_{0}" -> "G^{14,24,54}_{0}" +"G^{14,48,54}_{0}" -> "G^{14,16,54}_{0}" +"G^{14,48,54}_{2}" -> "G^{14,18,48}_{0}" +"G^{14,48,54}_{2}" -> "G^{14,24,54}_{2}" +"G^{14,48,54}_{2}" -> "G^{14,16,54}_{2}" +"G^{14,54,54}_{0}" -> "G^{14,18,54}_{2}" +"G^{14,54,54}_{0}" -> "G^{14,18,54}_{0}" +"G^{14,54,54}_{2}" -> "G^{14,18,54}_{2}" +"G^{14,54,54}_{2}" -> "G^{14,18,54}_{2}" +"G^{14,54,54}_{8}" -> "G^{14,18,54}_{0}" +"G^{14,54,54}_{8}" -> "G^{14,18,54}_{0}" +"G^{16,40,40}_{0}" -> "G^{8,40,40}_{0}" +"G^{16,40,48}_{0}" -> "G^{16,24,40}_{0}" +"G^{16,40,48}_{0}" -> "G^{16,16,40}_{0}" +"G^{16,40,48}_{0}" -> "G^{8,40,48}_{0}" +"G^{16,40,54}_{0}" -> "G^{16,18,40}_{0}" +"G^{16,40,54}_{0}" -> "G^{8,40,54}_{0}" +"G^{16,40,54}_{2}" -> "G^{16,18,40}_{0}" +"G^{16,40,54}_{2}" -> "G^{8,40,54}_{2}" +"G^{16,48,48}_{0}" -> "G^{16,24,48}_{1}" +"G^{16,48,48}_{0}" -> "G^{16,16,48}_{1}" +"G^{16,48,48}_{0}" -> "G^{16,24,48}_{1}" +"G^{16,48,48}_{0}" -> "G^{16,16,48}_{1}" +"G^{16,48,48}_{0}" -> "G^{8,48,48}_{1}" +"G^{16,48,48}_{1}" -> "G^{16,24,48}_{0}" +"G^{16,48,48}_{1}" -> "G^{16,16,48}_{0}" +"G^{16,48,48}_{1}" -> "G^{16,24,48}_{0}" +"G^{16,48,48}_{1}" -> "G^{16,16,48}_{0}" +"G^{16,48,48}_{1}" -> "G^{8,48,48}_{0}" +"G^{16,48,54}_{0}" -> "G^{16,18,48}_{0}" +"G^{16,48,54}_{0}" -> "G^{16,24,54}_{0}" +"G^{16,48,54}_{0}" -> "G^{16,16,54}_{0}" +"G^{16,48,54}_{0}" -> "G^{8,48,54}_{0}" +"G^{16,48,54}_{2}" -> "G^{16,18,48}_{0}" +"G^{16,48,54}_{2}" -> "G^{16,24,54}_{2}" +"G^{16,48,54}_{2}" -> "G^{16,16,54}_{0}" +"G^{16,48,54}_{2}" -> "G^{8,48,54}_{2}" +"G^{16,54,54}_{0}" -> "G^{16,18,54}_{2}" +"G^{16,54,54}_{0}" -> "G^{16,18,54}_{0}" +"G^{16,54,54}_{0}" -> "G^{8,54,54}_{0}" +"G^{16,54,54}_{2}" -> "G^{16,18,54}_{2}" +"G^{16,54,54}_{2}" -> "G^{16,18,54}_{2}" +"G^{16,54,54}_{2}" -> "G^{8,54,54}_{2}" +"G^{16,54,54}_{8}" -> "G^{16,18,54}_{0}" +"G^{16,54,54}_{8}" -> "G^{16,18,54}_{0}" +"G^{16,54,54}_{8}" -> "G^{8,54,54}_{8}" +"G^{18,40,40}_{0}" -> "G^{6,40,40}_{0}" +"G^{18,40,48}_{0}" -> "G^{18,24,40}_{0}" +"G^{18,40,48}_{0}" -> "G^{16,18,40}_{0}" +"G^{18,40,48}_{0}" -> "G^{6,40,48}_{0}" +"G^{18,40,54}_{0}" -> "G^{18,18,40}_{0}" +"G^{18,40,54}_{0}" -> "G^{6,40,54}_{0}" +"G^{18,40,54}_{2}" -> "G^{18,18,40}_{0}" +"G^{18,40,54}_{2}" -> "G^{6,40,54}_{2}" +"G^{18,48,48}_{0}" -> "G^{18,24,48}_{0}" +"G^{18,48,48}_{0}" -> "G^{16,18,48}_{0}" +"G^{18,48,48}_{0}" -> "G^{18,24,48}_{0}" +"G^{18,48,48}_{0}" -> "G^{16,18,48}_{0}" +"G^{18,48,48}_{0}" -> "G^{6,48,48}_{0}" +"G^{18,48,54}_{0}" -> "G^{18,18,48}_{0}" +"G^{18,48,54}_{0}" -> "G^{18,24,54}_{0}" +"G^{18,48,54}_{0}" -> "G^{16,18,54}_{2}" +"G^{18,48,54}_{0}" -> "G^{6,48,54}_{0}" +"G^{18,48,54}_{2}" -> "G^{18,18,48}_{0}" +"G^{18,48,54}_{2}" -> "G^{18,24,54}_{2}" +"G^{18,48,54}_{2}" -> "G^{16,18,54}_{0}" +"G^{18,48,54}_{2}" -> "G^{6,48,54}_{2}" +"G^{18,54,54}_{0}" -> "G^{18,18,54}_{0}" +"G^{18,54,54}_{0}" -> "G^{18,18,54}_{0}" +"G^{18,54,54}_{0}" -> "G^{6,54,54}_{0}" +"G^{18,54,54}_{2}" -> "G^{18,18,54}_{0}" +"G^{18,54,54}_{2}" -> "G^{18,18,54}_{0}" +"G^{18,54,54}_{2}" -> "G^{6,54,54}_{2}" +"G^{18,54,54}_{8}" -> "G^{18,18,54}_{0}" +"G^{18,54,54}_{8}" -> "G^{18,18,54}_{0}" +"G^{18,54,54}_{8}" -> "G^{6,54,54}_{8}" +"G^{24,40,40}_{0}" -> "G^{6,40,40}_{0}" +"G^{24,40,40}_{0}" -> "G^{8,40,40}_{0}" +"G^{24,40,48}_{0}" -> "G^{24,24,40}_{0}" +"G^{24,40,48}_{0}" -> "G^{16,24,40}_{0}" +"G^{24,40,48}_{0}" -> "G^{6,40,48}_{0}" +"G^{24,40,48}_{0}" -> "G^{8,40,48}_{0}" +"G^{24,40,54}_{0}" -> "G^{18,24,40}_{0}" +"G^{24,40,54}_{0}" -> "G^{6,40,54}_{0}" +"G^{24,40,54}_{0}" -> "G^{8,40,54}_{0}" +"G^{24,40,54}_{2}" -> "G^{18,24,40}_{0}" +"G^{24,40,54}_{2}" -> "G^{6,40,54}_{2}" +"G^{24,40,54}_{2}" -> "G^{8,40,54}_{2}" +"G^{24,48,48}_{0}" -> "G^{24,24,48}_{1}" +"G^{24,48,48}_{0}" -> "G^{16,24,48}_{1}" +"G^{24,48,48}_{0}" -> "G^{24,24,48}_{1}" +"G^{24,48,48}_{0}" -> "G^{16,24,48}_{1}" +"G^{24,48,48}_{0}" -> "G^{6,48,48}_{0}" +"G^{24,48,48}_{0}" -> "G^{8,48,48}_{1}" +"G^{24,48,48}_{1}" -> "G^{24,24,48}_{0}" +"G^{24,48,48}_{1}" -> "G^{16,24,48}_{0}" +"G^{24,48,48}_{1}" -> "G^{24,24,48}_{0}" +"G^{24,48,48}_{1}" -> "G^{16,24,48}_{0}" +"G^{24,48,48}_{1}" -> "G^{6,48,48}_{0}" +"G^{24,48,48}_{1}" -> "G^{8,48,48}_{0}" +"G^{24,48,54}_{0}" -> "G^{18,24,48}_{0}" +"G^{24,48,54}_{0}" -> "G^{24,24,54}_{0}" +"G^{24,48,54}_{0}" -> "G^{16,24,54}_{2}" +"G^{24,48,54}_{0}" -> "G^{6,48,54}_{0}" +"G^{24,48,54}_{0}" -> "G^{8,48,54}_{0}" +"G^{24,48,54}_{2}" -> "G^{18,24,48}_{0}" +"G^{24,48,54}_{2}" -> "G^{24,24,54}_{0}" +"G^{24,48,54}_{2}" -> "G^{16,24,54}_{0}" +"G^{24,48,54}_{2}" -> "G^{6,48,54}_{2}" +"G^{24,48,54}_{2}" -> "G^{8,48,54}_{2}" +"G^{24,54,54}_{0}" -> "G^{18,24,54}_{0}" +"G^{24,54,54}_{0}" -> "G^{18,24,54}_{2}" +"G^{24,54,54}_{0}" -> "G^{6,54,54}_{0}" +"G^{24,54,54}_{0}" -> "G^{8,54,54}_{0}" +"G^{24,54,54}_{2}" -> "G^{18,24,54}_{0}" +"G^{24,54,54}_{2}" -> "G^{18,24,54}_{0}" +"G^{24,54,54}_{2}" -> "G^{6,54,54}_{2}" +"G^{24,54,54}_{2}" -> "G^{8,54,54}_{2}" +"G^{24,54,54}_{8}" -> "G^{18,24,54}_{2}" +"G^{24,54,54}_{8}" -> "G^{18,24,54}_{2}" +"G^{24,54,54}_{8}" -> "G^{6,54,54}_{8}" +"G^{24,54,54}_{8}" -> "G^{8,54,54}_{8}" +"G^{26,40,48}_{0}" -> "G^{24,26,40}_{0}" +"G^{26,40,48}_{0}" -> "G^{16,26,40}_{0}" +"G^{26,40,54}_{0}" -> "G^{18,26,40}_{0}" +"G^{26,40,54}_{2}" -> "G^{18,26,40}_{0}" +"G^{26,48,48}_{0}" -> "G^{24,26,48}_{1}" +"G^{26,48,48}_{0}" -> "G^{16,26,48}_{1}" +"G^{26,48,48}_{0}" -> "G^{24,26,48}_{1}" +"G^{26,48,48}_{0}" -> "G^{16,26,48}_{1}" +"G^{26,48,48}_{1}" -> "G^{24,26,48}_{0}" +"G^{26,48,48}_{1}" -> "G^{16,26,48}_{0}" +"G^{26,48,48}_{1}" -> "G^{24,26,48}_{0}" +"G^{26,48,48}_{1}" -> "G^{16,26,48}_{0}" +"G^{26,48,54}_{0}" -> "G^{18,26,48}_{0}" +"G^{26,48,54}_{0}" -> "G^{24,26,54}_{2}" +"G^{26,48,54}_{0}" -> "G^{16,26,54}_{2}" +"G^{26,48,54}_{2}" -> "G^{18,26,48}_{0}" +"G^{26,48,54}_{2}" -> "G^{24,26,54}_{0}" +"G^{26,48,54}_{2}" -> "G^{16,26,54}_{0}" +"G^{26,54,54}_{0}" -> "G^{18,26,54}_{0}" +"G^{26,54,54}_{0}" -> "G^{18,26,54}_{2}" +"G^{26,54,54}_{2}" -> "G^{18,26,54}_{0}" +"G^{26,54,54}_{2}" -> "G^{18,26,54}_{0}" +"G^{26,54,54}_{8}" -> "G^{18,26,54}_{2}" +"G^{26,54,54}_{8}" -> "G^{18,26,54}_{2}" +"G^{40,40,48}_{0}" -> "G^{24,40,40}_{0}" +"G^{40,40,48}_{0}" -> "G^{16,40,40}_{0}" +"G^{40,40,54}_{0}" -> "G^{18,40,40}_{0}" +"G^{40,48,48}_{0}" -> "G^{24,40,48}_{0}" +"G^{40,48,48}_{0}" -> "G^{16,40,48}_{0}" +"G^{40,48,48}_{0}" -> "G^{24,40,48}_{0}" +"G^{40,48,48}_{0}" -> "G^{16,40,48}_{0}" +"G^{40,48,54}_{0}" -> "G^{18,40,48}_{0}" +"G^{40,48,54}_{0}" -> "G^{24,40,54}_{2}" +"G^{40,48,54}_{0}" -> "G^{16,40,54}_{2}" +"G^{40,48,54}_{2}" -> "G^{18,40,48}_{0}" +"G^{40,48,54}_{2}" -> "G^{24,40,54}_{0}" +"G^{40,48,54}_{2}" -> "G^{16,40,54}_{0}" +"G^{40,54,54}_{0}" -> "G^{18,40,54}_{0}" +"G^{40,54,54}_{0}" -> "G^{18,40,54}_{2}" +"G^{40,54,54}_{2}" -> "G^{18,40,54}_{0}" +"G^{40,54,54}_{2}" -> "G^{18,40,54}_{0}" +"G^{40,54,54}_{8}" -> "G^{18,40,54}_{2}" +"G^{40,54,54}_{8}" -> "G^{18,40,54}_{2}" +"G^{48,48,48}_{0}" -> "G^{24,48,48}_{1}" +"G^{48,48,48}_{0}" -> "G^{16,48,48}_{1}" +"G^{48,48,48}_{0}" -> "G^{24,48,48}_{1}" +"G^{48,48,48}_{0}" -> "G^{16,48,48}_{1}" +"G^{48,48,48}_{0}" -> "G^{24,48,48}_{1}" +"G^{48,48,48}_{0}" -> "G^{16,48,48}_{1}" +"G^{48,48,48}_{1}" -> "G^{24,48,48}_{0}" +"G^{48,48,48}_{1}" -> "G^{16,48,48}_{0}" +"G^{48,48,48}_{1}" -> "G^{24,48,48}_{0}" +"G^{48,48,48}_{1}" -> "G^{16,48,48}_{0}" +"G^{48,48,48}_{1}" -> "G^{24,48,48}_{0}" +"G^{48,48,48}_{1}" -> "G^{16,48,48}_{0}" +"G^{48,48,54}_{0}" -> "G^{18,48,48}_{0}" +"G^{48,48,54}_{0}" -> "G^{24,48,54}_{2}" +"G^{48,48,54}_{0}" -> "G^{16,48,54}_{2}" +"G^{48,48,54}_{0}" -> "G^{24,48,54}_{0}" +"G^{48,48,54}_{0}" -> "G^{16,48,54}_{0}" +"G^{48,54,54}_{0}" -> "G^{18,48,54}_{0}" +"G^{48,54,54}_{0}" -> "G^{18,48,54}_{2}" +"G^{48,54,54}_{0}" -> "G^{24,54,54}_{0}" +"G^{48,54,54}_{0}" -> "G^{16,54,54}_{0}" +"G^{48,54,54}_{2}" -> "G^{18,48,54}_{0}" +"G^{48,54,54}_{2}" -> "G^{18,48,54}_{0}" +"G^{48,54,54}_{2}" -> "G^{24,54,54}_{2}" +"G^{48,54,54}_{2}" -> "G^{16,54,54}_{2}" +"G^{48,54,54}_{8}" -> "G^{18,48,54}_{2}" +"G^{48,54,54}_{8}" -> "G^{18,48,54}_{2}" +"G^{48,54,54}_{8}" -> "G^{24,54,54}_{8}" +"G^{48,54,54}_{8}" -> "G^{16,54,54}_{8}" +"G^{54,54,54}_{0}" -> "G^{18,54,54}_{0}" +"G^{54,54,54}_{0}" -> "G^{18,54,54}_{0}" +"G^{54,54,54}_{0}" -> "G^{18,54,54}_{0}" +"G^{54,54,54}_{2}" -> "G^{18,54,54}_{0}" +"G^{54,54,54}_{2}" -> "G^{18,54,54}_{8}" +"G^{54,54,54}_{2}" -> "G^{18,54,54}_{2}" From bc6792e9c2cb0474d529e87f114d0f2cd4573fd6 Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Tue, 22 Feb 2022 14:21:01 +0100 Subject: [PATCH 02/11] add python script to generate morphisms json --- data/morphisms.dot | 2 ++ scripts/morphisms/connected_components.py | 41 +++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 scripts/morphisms/connected_components.py diff --git a/data/morphisms.dot b/data/morphisms.dot index b44d38c..8ba0d19 100644 --- a/data/morphisms.dot +++ b/data/morphisms.dot @@ -1,3 +1,4 @@ +digraph { "G^{14,14,48}_{0}" -> "G^{14,14,24}_{1}" "G^{14,14,48}_{0}" -> "G^{14,14,16}_{1}" "G^{14,14,48}_{1}" -> "G^{14,14,24}_{0}" @@ -302,3 +303,4 @@ "G^{54,54,54}_{2}" -> "G^{18,54,54}_{0}" "G^{54,54,54}_{2}" -> "G^{18,54,54}_{8}" "G^{54,54,54}_{2}" -> "G^{18,54,54}_{2}" +} diff --git a/scripts/morphisms/connected_components.py b/scripts/morphisms/connected_components.py new file mode 100644 index 0000000..3f74cce --- /dev/null +++ b/scripts/morphisms/connected_components.py @@ -0,0 +1,41 @@ +import networkx +import json +import os + +DATA_DIR = os.path.join("..", "..", "data") + +MORPHISMS_FILE = os.path.join(DATA_DIR, "morphisms.dot") +MORPHISMS_JSON = os.path.join(DATA_DIR, "triangle_groups_morphisms.json") + +def level(G, node): + parents = list(G.predecessors(node)) + if len(parents) == 0: + return 0 + else: + return 1 + max([level(G, n) for n in parents]) + +def nodes_from_component(G, cc, graph_json): + subG = networkx.induced_subgraph(G, cc) + assert networkx.is_weakly_connected(subG) + + root = [n for n,d in subG.in_degree() if d==0][0] + + for node in graph_json["nodes"]: + if node["id"] in subG: + print(node) + n = node["id"] + node["level"] = level(G, n) + node["component_id"] = root + + return graph_json + +G = networkx.nx_pydot.read_dot(MORPHISMS_FILE) +G_json = networkx.node_link_data(G) +G_components = networkx.weakly_connected_components(G) + +for cc in G_components: + nodes_from_component(G, cc, G_json) + +with open(MORPHISMS_JSON, "w") as file: + print("writing to ", MORPHISMS_JSON, "\n") + json.dump(G_json, file, indent=4) From bf3163f6bdcc631cfd024c08265b87680af3acf3 Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Tue, 22 Feb 2022 14:22:45 +0100 Subject: [PATCH 03/11] separate lib/execution of math rendering in js --- docs/main.js | 13 +++++++++++++ docs/math_render.js | 15 +-------------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/docs/main.js b/docs/main.js index ea9d8c7..e719001 100644 --- a/docs/main.js +++ b/docs/main.js @@ -14,3 +14,16 @@ let table = fetch_json(groups_url) .then(setup_table) .then(setup_filter) ; + +let math_objects = document.getElementsByClassName("math"); +let katex_switch = document.getElementById("renderWithKatex"); +katex_switch.checked = true; +katex_switch.addEventListener( + "change", + function () { + let toggle = this.checked; + for (let element of math_objects) { + toggleKaTeX(element, toggle); + } + } +); diff --git a/docs/math_render.js b/docs/math_render.js index 5eb0b07..f630362 100644 --- a/docs/math_render.js +++ b/docs/math_render.js @@ -18,8 +18,8 @@ function createMathSpan(content) { math_tex.className = "math-tex"; katex.render(prepareTextForKatex(math_text.innerText), math_tex); - item.appendChild(math_text); item.appendChild(math_tex); + item.appendChild(math_text); return item; } @@ -40,16 +40,3 @@ function toggleKaTeX(elt, toggle) { } } } - -let math_objects = document.getElementsByClassName("math"); -let katex_switch = document.getElementById("renderWithKatex"); -katex_switch.checked = true; -katex_switch.addEventListener( - "change", - function () { - let toggle = this.checked; - for (let element of math_objects) { - toggleKaTeX(element, toggle); - } - } -); From e82059e79b2b158d11b4d57bc60df43e61939f0d Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Tue, 22 Feb 2022 14:26:34 +0100 Subject: [PATCH 04/11] =?UTF-8?q?rename=20connected=5Fcomponents.py=20?= =?UTF-8?q?=E2=86=92=20morphisms.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/morphisms/{connected_components.py => morphisms.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename scripts/morphisms/{connected_components.py => morphisms.py} (100%) diff --git a/scripts/morphisms/connected_components.py b/scripts/morphisms/morphisms.py similarity index 100% rename from scripts/morphisms/connected_components.py rename to scripts/morphisms/morphisms.py From f84aa07e9e041454582318b0933020dd69eadb0a Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Tue, 22 Feb 2022 14:30:19 +0100 Subject: [PATCH 05/11] add generated triangle_groups_morphisms.json --- data/triangle_groups_morphisms.json | 2646 +++++++++++++++++++++++++++ 1 file changed, 2646 insertions(+) create mode 100644 data/triangle_groups_morphisms.json diff --git a/data/triangle_groups_morphisms.json b/data/triangle_groups_morphisms.json new file mode 100644 index 0000000..66d9cdc --- /dev/null +++ b/data/triangle_groups_morphisms.json @@ -0,0 +1,2646 @@ +{ + "directed": true, + "multigraph": true, + "graph": { + "name": "G" + }, + "nodes": [ + { + "id": "G^{14,14,48}_{0}", + "level": 0, + "component_id": "G^{14,14,48}_{0}" + }, + { + "id": "G^{14,14,24}_{1}", + "level": 1, + "component_id": "G^{14,14,48}_{0}" + }, + { + "id": "G^{14,14,16}_{1}", + "level": 1, + "component_id": "G^{14,14,48}_{0}" + }, + { + "id": "G^{14,14,48}_{1}", + "level": 0, + "component_id": "G^{14,14,48}_{1}" + }, + { + "id": "G^{14,14,24}_{0}", + "level": 1, + "component_id": "G^{14,14,48}_{1}" + }, + { + "id": "G^{14,14,16}_{0}", + "level": 1, + "component_id": "G^{14,14,48}_{1}" + }, + { + "id": "G^{14,14,48}_{4}", + "level": 0, + "component_id": "G^{14,14,48}_{4}" + }, + { + "id": "G^{14,14,24}_{5}", + "level": 1, + "component_id": "G^{14,14,48}_{4}" + }, + { + "id": "G^{14,14,16}_{5}", + "level": 1, + "component_id": "G^{14,14,48}_{4}" + }, + { + "id": "G^{14,14,48}_{5}", + "level": 0, + "component_id": "G^{14,14,48}_{5}" + }, + { + "id": "G^{14,14,24}_{4}", + "level": 1, + "component_id": "G^{14,14,48}_{5}" + }, + { + "id": "G^{14,14,16}_{4}", + "level": 1, + "component_id": "G^{14,14,48}_{5}" + }, + { + "id": "G^{14,14,54}_{0}", + "level": 0, + "component_id": "G^{14,14,54}_{0}" + }, + { + "id": "G^{14,14,18}_{0}", + "level": 1, + "component_id": "G^{14,14,54}_{0}" + }, + { + "id": "G^{14,14,54}_{4}", + "level": 0, + "component_id": "G^{14,14,54}_{4}" + }, + { + "id": "G^{14,14,18}_{4}", + "level": 1, + "component_id": "G^{14,14,54}_{4}" + }, + { + "id": "G^{14,16,48}_{0}", + "level": 1, + "component_id": "G^{14,48,48}_{1}" + }, + { + "id": "G^{14,16,24}_{1}", + "level": 2, + "component_id": "G^{14,48,48}_{1}" + }, + { + "id": "G^{14,16,16}_{1}", + "level": 2, + "component_id": "G^{14,48,48}_{1}" + }, + { + "id": "G^{14,16,48}_{1}", + "level": 1, + "component_id": "G^{14,48,48}_{0}" + }, + { + "id": "G^{14,16,24}_{0}", + "level": 2, + "component_id": "G^{14,48,48}_{0}" + }, + { + "id": "G^{14,16,16}_{0}", + "level": 2, + "component_id": "G^{14,48,48}_{0}" + }, + { + "id": "G^{14,16,54}_{0}", + "level": 1, + "component_id": "G^{14,48,54}_{0}" + }, + { + "id": "G^{14,16,18}_{0}", + "level": 2, + "component_id": "G^{14,48,54}_{0}" + }, + { + "id": "G^{14,16,54}_{2}", + "level": 1, + "component_id": "G^{14,48,54}_{0}" + }, + { + "id": "G^{14,18,48}_{0}", + "level": 1, + "component_id": "G^{14,48,54}_{0}" + }, + { + "id": "G^{14,18,24}_{0}", + "level": 2, + "component_id": "G^{14,48,54}_{0}" + }, + { + "id": "G^{14,18,54}_{0}", + "level": 1, + "component_id": "G^{14,54,54}_{8}" + }, + { + "id": "G^{14,18,18}_{0}", + "level": 2, + "component_id": "G^{14,54,54}_{8}" + }, + { + "id": "G^{14,18,54}_{2}", + "level": 1, + "component_id": "G^{14,54,54}_{8}" + }, + { + "id": "G^{14,24,48}_{0}", + "level": 1, + "component_id": "G^{14,48,48}_{1}" + }, + { + "id": "G^{14,24,24}_{1}", + "level": 2, + "component_id": "G^{14,48,48}_{1}" + }, + { + "id": "G^{14,24,48}_{1}", + "level": 1, + "component_id": "G^{14,48,48}_{0}" + }, + { + "id": "G^{14,24,24}_{0}", + "level": 2, + "component_id": "G^{14,48,48}_{0}" + }, + { + "id": "G^{14,24,54}_{0}", + "level": 1, + "component_id": "G^{14,48,54}_{0}" + }, + { + "id": "G^{14,24,54}_{2}", + "level": 1, + "component_id": "G^{14,48,54}_{0}" + }, + { + "id": "G^{14,26,48}_{0}", + "level": 0, + "component_id": "G^{14,26,48}_{0}" + }, + { + "id": "G^{14,24,26}_{3}", + "level": 1, + "component_id": "G^{14,26,48}_{0}" + }, + { + "id": "G^{14,16,26}_{3}", + "level": 1, + "component_id": "G^{14,26,48}_{0}" + }, + { + "id": "G^{14,26,48}_{1}", + "level": 0, + "component_id": "G^{14,26,48}_{1}" + }, + { + "id": "G^{14,24,26}_{7}", + "level": 1, + "component_id": "G^{14,26,48}_{1}" + }, + { + "id": "G^{14,16,26}_{7}", + "level": 1, + "component_id": "G^{14,26,48}_{1}" + }, + { + "id": "G^{14,26,48}_{4}", + "level": 0, + "component_id": "G^{14,26,48}_{4}" + }, + { + "id": "G^{14,24,26}_{0}", + "level": 1, + "component_id": "G^{14,26,48}_{4}" + }, + { + "id": "G^{14,16,26}_{0}", + "level": 1, + "component_id": "G^{14,26,48}_{4}" + }, + { + "id": "G^{14,26,48}_{5}", + "level": 0, + "component_id": "G^{14,26,48}_{5}" + }, + { + "id": "G^{14,24,26}_{1}", + "level": 1, + "component_id": "G^{14,26,48}_{5}" + }, + { + "id": "G^{14,16,26}_{1}", + "level": 1, + "component_id": "G^{14,26,48}_{5}" + }, + { + "id": "G^{14,26,54}_{0}", + "level": 0, + "component_id": "G^{14,26,54}_{0}" + }, + { + "id": "G^{14,18,26}_{3}", + "level": 1, + "component_id": "G^{14,26,54}_{0}" + }, + { + "id": "G^{14,26,54}_{2}", + "level": 0, + "component_id": "G^{14,26,54}_{0}" + }, + { + "id": "G^{14,26,54}_{4}", + "level": 0, + "component_id": "G^{14,26,54}_{6}" + }, + { + "id": "G^{14,18,26}_{0}", + "level": 1, + "component_id": "G^{14,26,54}_{6}" + }, + { + "id": "G^{14,26,54}_{6}", + "level": 0, + "component_id": "G^{14,26,54}_{6}" + }, + { + "id": "G^{16,16,48}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,16,24}_{1}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,16,16}_{1}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,16,48}_{1}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,16,24}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,16,16}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,16,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,16,18}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,18,48}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,18,24}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,18,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,18,18}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,18,54}_{2}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,24,48}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,24,24}_{1}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,24,48}_{1}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,24,24}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,24,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,24,54}_{2}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,26,48}_{0}", + "level": 1, + "component_id": "G^{26,48,48}_{1}" + }, + { + "id": "G^{16,24,26}_{1}", + "level": 2, + "component_id": "G^{26,48,48}_{1}" + }, + { + "id": "G^{16,16,26}_{1}", + "level": 2, + "component_id": "G^{26,48,48}_{1}" + }, + { + "id": "G^{16,26,48}_{1}", + "level": 1, + "component_id": "G^{26,48,48}_{0}" + }, + { + "id": "G^{16,24,26}_{0}", + "level": 2, + "component_id": "G^{26,48,48}_{0}" + }, + { + "id": "G^{16,16,26}_{0}", + "level": 2, + "component_id": "G^{26,48,48}_{0}" + }, + { + "id": "G^{16,26,54}_{0}", + "level": 1, + "component_id": "G^{26,48,54}_{2}" + }, + { + "id": "G^{16,18,26}_{0}", + "level": 2, + "component_id": "G^{26,48,54}_{2}" + }, + { + "id": "G^{16,26,54}_{2}", + "level": 1, + "component_id": "G^{26,48,54}_{2}" + }, + { + "id": "G^{18,18,48}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,18,24}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,18,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,18,18}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,24,48}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,24,24}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,24,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,24,54}_{2}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,26,48}_{0}", + "level": 1, + "component_id": "G^{26,48,54}_{2}" + }, + { + "id": "G^{18,24,26}_{0}", + "level": 2, + "component_id": "G^{26,48,54}_{2}" + }, + { + "id": "G^{18,26,54}_{0}", + "level": 1, + "component_id": "G^{26,54,54}_{0}" + }, + { + "id": "G^{18,18,26}_{0}", + "level": 2, + "component_id": "G^{26,54,54}_{0}" + }, + { + "id": "G^{18,26,54}_{2}", + "level": 1, + "component_id": "G^{26,54,54}_{0}" + }, + { + "id": "G^{24,24,48}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,24,24}_{1}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,24,48}_{1}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,24,24}_{0}", + "level": 3, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,24,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,26,48}_{0}", + "level": 1, + "component_id": "G^{26,48,48}_{1}" + }, + { + "id": "G^{24,24,26}_{1}", + "level": 2, + "component_id": "G^{26,48,48}_{1}" + }, + { + "id": "G^{24,26,48}_{1}", + "level": 1, + "component_id": "G^{26,48,48}_{0}" + }, + { + "id": "G^{24,24,26}_{0}", + "level": 2, + "component_id": "G^{26,48,48}_{0}" + }, + { + "id": "G^{24,26,54}_{0}", + "level": 1, + "component_id": "G^{26,48,54}_{2}" + }, + { + "id": "G^{24,26,54}_{2}", + "level": 1, + "component_id": "G^{26,48,54}_{2}" + }, + { + "id": "G^{26,26,48}_{0}", + "level": 0, + "component_id": "G^{26,26,48}_{0}" + }, + { + "id": "G^{24,26,26}_{3}", + "level": 1, + "component_id": "G^{26,26,48}_{0}" + }, + { + "id": "G^{16,26,26}_{3}", + "level": 1, + "component_id": "G^{26,26,48}_{0}" + }, + { + "id": "G^{26,26,48}_{1}", + "level": 0, + "component_id": "G^{26,26,48}_{1}" + }, + { + "id": "G^{24,26,26}_{0}", + "level": 1, + "component_id": "G^{26,26,48}_{1}" + }, + { + "id": "G^{16,26,26}_{0}", + "level": 1, + "component_id": "G^{26,26,48}_{1}" + }, + { + "id": "G^{26,26,48}_{4}", + "level": 0, + "component_id": "G^{26,26,48}_{4}" + }, + { + "id": "G^{24,26,26}_{5}", + "level": 1, + "component_id": "G^{26,26,48}_{4}" + }, + { + "id": "G^{16,26,26}_{5}", + "level": 1, + "component_id": "G^{26,26,48}_{4}" + }, + { + "id": "G^{26,26,48}_{5}", + "level": 0, + "component_id": "G^{26,26,48}_{5}" + }, + { + "id": "G^{24,26,26}_{1}", + "level": 1, + "component_id": "G^{26,26,48}_{5}" + }, + { + "id": "G^{16,26,26}_{1}", + "level": 1, + "component_id": "G^{26,26,48}_{5}" + }, + { + "id": "G^{26,26,54}_{0}", + "level": 0, + "component_id": "G^{26,26,54}_{0}" + }, + { + "id": "G^{18,26,26}_{0}", + "level": 1, + "component_id": "G^{26,26,54}_{0}" + }, + { + "id": "G^{26,26,54}_{4}", + "level": 0, + "component_id": "G^{26,26,54}_{4}" + }, + { + "id": "G^{18,26,26}_{1}", + "level": 1, + "component_id": "G^{26,26,54}_{4}" + }, + { + "id": "G^{14,40,48}_{0}", + "level": 0, + "component_id": "G^{14,40,48}_{0}" + }, + { + "id": "G^{14,24,40}_{0}", + "level": 1, + "component_id": "G^{14,40,48}_{0}" + }, + { + "id": "G^{14,16,40}_{0}", + "level": 1, + "component_id": "G^{14,40,48}_{0}" + }, + { + "id": "G^{14,40,54}_{0}", + "level": 0, + "component_id": "G^{14,40,54}_{0}" + }, + { + "id": "G^{14,18,40}_{0}", + "level": 1, + "component_id": "G^{14,40,54}_{0}" + }, + { + "id": "G^{14,40,54}_{2}", + "level": 0, + "component_id": "G^{14,40,54}_{0}" + }, + { + "id": "G^{14,48,48}_{0}", + "level": 0, + "component_id": "G^{14,48,48}_{0}" + }, + { + "id": "G^{14,48,48}_{1}", + "level": 0, + "component_id": "G^{14,48,48}_{1}" + }, + { + "id": "G^{14,48,54}_{0}", + "level": 0, + "component_id": "G^{14,48,54}_{0}" + }, + { + "id": "G^{14,48,54}_{2}", + "level": 0, + "component_id": "G^{14,48,54}_{0}" + }, + { + "id": "G^{14,54,54}_{0}", + "level": 0, + "component_id": "G^{14,54,54}_{8}" + }, + { + "id": "G^{14,54,54}_{2}", + "level": 0, + "component_id": "G^{14,54,54}_{8}" + }, + { + "id": "G^{14,54,54}_{8}", + "level": 0, + "component_id": "G^{14,54,54}_{8}" + }, + { + "id": "G^{16,40,40}_{0}", + "level": 1, + "component_id": "G^{40,40,48}_{0}" + }, + { + "id": "G^{8,40,40}_{0}", + "level": 2, + "component_id": "G^{40,40,48}_{0}" + }, + { + "id": "G^{16,40,48}_{0}", + "level": 1, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{16,24,40}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{16,16,40}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{8,40,48}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{16,40,54}_{0}", + "level": 1, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{16,18,40}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{8,40,54}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{16,40,54}_{2}", + "level": 1, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{8,40,54}_{2}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{16,48,48}_{0}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{8,48,48}_{1}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,48,48}_{1}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{8,48,48}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,48,54}_{0}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{8,48,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,48,54}_{2}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{8,48,54}_{2}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,54,54}_{0}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{8,54,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,54,54}_{2}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{8,54,54}_{2}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{16,54,54}_{8}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{8,54,54}_{8}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,40,40}_{0}", + "level": 1, + "component_id": "G^{40,40,48}_{0}" + }, + { + "id": "G^{6,40,40}_{0}", + "level": 2, + "component_id": "G^{40,40,48}_{0}" + }, + { + "id": "G^{18,40,48}_{0}", + "level": 1, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{18,24,40}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{6,40,48}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{18,40,54}_{0}", + "level": 1, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{18,18,40}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{6,40,54}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{18,40,54}_{2}", + "level": 1, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{6,40,54}_{2}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{18,48,48}_{0}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{6,48,48}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,48,54}_{0}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{6,48,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,48,54}_{2}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{6,48,54}_{2}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,54,54}_{0}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{6,54,54}_{0}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,54,54}_{2}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{6,54,54}_{2}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{18,54,54}_{8}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{6,54,54}_{8}", + "level": 2, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,40,40}_{0}", + "level": 1, + "component_id": "G^{40,40,48}_{0}" + }, + { + "id": "G^{24,40,48}_{0}", + "level": 1, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{24,24,40}_{0}", + "level": 2, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{24,40,54}_{0}", + "level": 1, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{24,40,54}_{2}", + "level": 1, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{24,48,48}_{0}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,48,48}_{1}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,48,54}_{0}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,48,54}_{2}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,54,54}_{0}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,54,54}_{2}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{24,54,54}_{8}", + "level": 1, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{26,40,48}_{0}", + "level": 0, + "component_id": "G^{26,40,48}_{0}" + }, + { + "id": "G^{24,26,40}_{0}", + "level": 1, + "component_id": "G^{26,40,48}_{0}" + }, + { + "id": "G^{16,26,40}_{0}", + "level": 1, + "component_id": "G^{26,40,48}_{0}" + }, + { + "id": "G^{26,40,54}_{0}", + "level": 0, + "component_id": "G^{26,40,54}_{0}" + }, + { + "id": "G^{18,26,40}_{0}", + "level": 1, + "component_id": "G^{26,40,54}_{0}" + }, + { + "id": "G^{26,40,54}_{2}", + "level": 0, + "component_id": "G^{26,40,54}_{0}" + }, + { + "id": "G^{26,48,48}_{0}", + "level": 0, + "component_id": "G^{26,48,48}_{0}" + }, + { + "id": "G^{26,48,48}_{1}", + "level": 0, + "component_id": "G^{26,48,48}_{1}" + }, + { + "id": "G^{26,48,54}_{0}", + "level": 0, + "component_id": "G^{26,48,54}_{2}" + }, + { + "id": "G^{26,48,54}_{2}", + "level": 0, + "component_id": "G^{26,48,54}_{2}" + }, + { + "id": "G^{26,54,54}_{0}", + "level": 0, + "component_id": "G^{26,54,54}_{0}" + }, + { + "id": "G^{26,54,54}_{2}", + "level": 0, + "component_id": "G^{26,54,54}_{0}" + }, + { + "id": "G^{26,54,54}_{8}", + "level": 0, + "component_id": "G^{26,54,54}_{0}" + }, + { + "id": "G^{40,40,48}_{0}", + "level": 0, + "component_id": "G^{40,40,48}_{0}" + }, + { + "id": "G^{40,40,54}_{0}", + "level": 0, + "component_id": "G^{40,40,48}_{0}" + }, + { + "id": "G^{40,48,48}_{0}", + "level": 0, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{40,48,54}_{0}", + "level": 0, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{40,48,54}_{2}", + "level": 0, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{40,54,54}_{0}", + "level": 0, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{40,54,54}_{2}", + "level": 0, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{40,54,54}_{8}", + "level": 0, + "component_id": "G^{40,48,54}_{0}" + }, + { + "id": "G^{48,48,48}_{0}", + "level": 0, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{48,48,48}_{1}", + "level": 0, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{48,48,54}_{0}", + "level": 0, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{48,54,54}_{0}", + "level": 0, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{48,54,54}_{2}", + "level": 0, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{48,54,54}_{8}", + "level": 0, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{54,54,54}_{0}", + "level": 0, + "component_id": "G^{54,54,54}_{2}" + }, + { + "id": "G^{54,54,54}_{2}", + "level": 0, + "component_id": "G^{54,54,54}_{2}" + } + ], + "links": [ + { + "source": "G^{14,14,48}_{0}", + "target": "G^{14,14,24}_{1}", + "key": 0 + }, + { + "source": "G^{14,14,48}_{0}", + "target": "G^{14,14,16}_{1}", + "key": 0 + }, + { + "source": "G^{14,14,48}_{1}", + "target": "G^{14,14,24}_{0}", + "key": 0 + }, + { + "source": "G^{14,14,48}_{1}", + "target": "G^{14,14,16}_{0}", + "key": 0 + }, + { + "source": "G^{14,14,48}_{4}", + "target": "G^{14,14,24}_{5}", + "key": 0 + }, + { + "source": "G^{14,14,48}_{4}", + "target": "G^{14,14,16}_{5}", + "key": 0 + }, + { + "source": "G^{14,14,48}_{5}", + "target": "G^{14,14,24}_{4}", + "key": 0 + }, + { + "source": "G^{14,14,48}_{5}", + "target": "G^{14,14,16}_{4}", + "key": 0 + }, + { + "source": "G^{14,14,54}_{0}", + "target": "G^{14,14,18}_{0}", + "key": 0 + }, + { + "source": "G^{14,14,54}_{4}", + "target": "G^{14,14,18}_{4}", + "key": 0 + }, + { + "source": "G^{14,16,48}_{0}", + "target": "G^{14,16,24}_{1}", + "key": 0 + }, + { + "source": "G^{14,16,48}_{0}", + "target": "G^{14,16,16}_{1}", + "key": 0 + }, + { + "source": "G^{14,16,48}_{1}", + "target": "G^{14,16,24}_{0}", + "key": 0 + }, + { + "source": "G^{14,16,48}_{1}", + "target": "G^{14,16,16}_{0}", + "key": 0 + }, + { + "source": "G^{14,16,54}_{0}", + "target": "G^{14,16,18}_{0}", + "key": 0 + }, + { + "source": "G^{14,16,54}_{2}", + "target": "G^{14,16,18}_{0}", + "key": 0 + }, + { + "source": "G^{14,18,48}_{0}", + "target": "G^{14,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{14,18,48}_{0}", + "target": "G^{14,16,18}_{0}", + "key": 0 + }, + { + "source": "G^{14,18,54}_{0}", + "target": "G^{14,18,18}_{0}", + "key": 0 + }, + { + "source": "G^{14,18,54}_{2}", + "target": "G^{14,18,18}_{0}", + "key": 0 + }, + { + "source": "G^{14,24,48}_{0}", + "target": "G^{14,24,24}_{1}", + "key": 0 + }, + { + "source": "G^{14,24,48}_{0}", + "target": "G^{14,16,24}_{1}", + "key": 0 + }, + { + "source": "G^{14,24,48}_{1}", + "target": "G^{14,24,24}_{0}", + "key": 0 + }, + { + "source": "G^{14,24,48}_{1}", + "target": "G^{14,16,24}_{0}", + "key": 0 + }, + { + "source": "G^{14,24,54}_{0}", + "target": "G^{14,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{14,24,54}_{2}", + "target": "G^{14,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{14,26,48}_{0}", + "target": "G^{14,24,26}_{3}", + "key": 0 + }, + { + "source": "G^{14,26,48}_{0}", + "target": "G^{14,16,26}_{3}", + "key": 0 + }, + { + "source": "G^{14,26,48}_{1}", + "target": "G^{14,24,26}_{7}", + "key": 0 + }, + { + "source": "G^{14,26,48}_{1}", + "target": "G^{14,16,26}_{7}", + "key": 0 + }, + { + "source": "G^{14,26,48}_{4}", + "target": "G^{14,24,26}_{0}", + "key": 0 + }, + { + "source": "G^{14,26,48}_{4}", + "target": "G^{14,16,26}_{0}", + "key": 0 + }, + { + "source": "G^{14,26,48}_{5}", + "target": "G^{14,24,26}_{1}", + "key": 0 + }, + { + "source": "G^{14,26,48}_{5}", + "target": "G^{14,16,26}_{1}", + "key": 0 + }, + { + "source": "G^{14,26,54}_{0}", + "target": "G^{14,18,26}_{3}", + "key": 0 + }, + { + "source": "G^{14,26,54}_{2}", + "target": "G^{14,18,26}_{3}", + "key": 0 + }, + { + "source": "G^{14,26,54}_{4}", + "target": "G^{14,18,26}_{0}", + "key": 0 + }, + { + "source": "G^{14,26,54}_{6}", + "target": "G^{14,18,26}_{0}", + "key": 0 + }, + { + "source": "G^{16,16,48}_{0}", + "target": "G^{16,16,24}_{1}", + "key": 0 + }, + { + "source": "G^{16,16,48}_{0}", + "target": "G^{16,16,16}_{1}", + "key": 0 + }, + { + "source": "G^{16,16,48}_{1}", + "target": "G^{16,16,24}_{0}", + "key": 0 + }, + { + "source": "G^{16,16,48}_{1}", + "target": "G^{16,16,16}_{0}", + "key": 0 + }, + { + "source": "G^{16,16,54}_{0}", + "target": "G^{16,16,18}_{0}", + "key": 0 + }, + { + "source": "G^{16,18,48}_{0}", + "target": "G^{16,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{16,18,48}_{0}", + "target": "G^{16,16,18}_{0}", + "key": 0 + }, + { + "source": "G^{16,18,54}_{0}", + "target": "G^{16,18,18}_{0}", + "key": 0 + }, + { + "source": "G^{16,18,54}_{2}", + "target": "G^{16,18,18}_{0}", + "key": 0 + }, + { + "source": "G^{16,24,48}_{0}", + "target": "G^{16,24,24}_{1}", + "key": 0 + }, + { + "source": "G^{16,24,48}_{0}", + "target": "G^{16,16,24}_{1}", + "key": 0 + }, + { + "source": "G^{16,24,48}_{1}", + "target": "G^{16,24,24}_{0}", + "key": 0 + }, + { + "source": "G^{16,24,48}_{1}", + "target": "G^{16,16,24}_{0}", + "key": 0 + }, + { + "source": "G^{16,24,54}_{0}", + "target": "G^{16,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{16,24,54}_{2}", + "target": "G^{16,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{16,26,48}_{0}", + "target": "G^{16,24,26}_{1}", + "key": 0 + }, + { + "source": "G^{16,26,48}_{0}", + "target": "G^{16,16,26}_{1}", + "key": 0 + }, + { + "source": "G^{16,26,48}_{1}", + "target": "G^{16,24,26}_{0}", + "key": 0 + }, + { + "source": "G^{16,26,48}_{1}", + "target": "G^{16,16,26}_{0}", + "key": 0 + }, + { + "source": "G^{16,26,54}_{0}", + "target": "G^{16,18,26}_{0}", + "key": 0 + }, + { + "source": "G^{16,26,54}_{2}", + "target": "G^{16,18,26}_{0}", + "key": 0 + }, + { + "source": "G^{18,18,48}_{0}", + "target": "G^{18,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{18,18,48}_{0}", + "target": "G^{16,18,18}_{0}", + "key": 0 + }, + { + "source": "G^{18,18,54}_{0}", + "target": "G^{18,18,18}_{0}", + "key": 0 + }, + { + "source": "G^{18,24,48}_{0}", + "target": "G^{18,24,24}_{0}", + "key": 0 + }, + { + "source": "G^{18,24,48}_{0}", + "target": "G^{16,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{18,24,54}_{0}", + "target": "G^{18,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{18,24,54}_{2}", + "target": "G^{18,18,24}_{0}", + "key": 0 + }, + { + "source": "G^{18,26,48}_{0}", + "target": "G^{18,24,26}_{0}", + "key": 0 + }, + { + "source": "G^{18,26,48}_{0}", + "target": "G^{16,18,26}_{0}", + "key": 0 + }, + { + "source": "G^{18,26,54}_{0}", + "target": "G^{18,18,26}_{0}", + "key": 0 + }, + { + "source": "G^{18,26,54}_{2}", + "target": "G^{18,18,26}_{0}", + "key": 0 + }, + { + "source": "G^{24,24,48}_{0}", + "target": "G^{24,24,24}_{1}", + "key": 0 + }, + { + "source": "G^{24,24,48}_{0}", + "target": "G^{16,24,24}_{1}", + "key": 0 + }, + { + "source": "G^{24,24,48}_{1}", + "target": "G^{24,24,24}_{0}", + "key": 0 + }, + { + "source": "G^{24,24,48}_{1}", + "target": "G^{16,24,24}_{0}", + "key": 0 + }, + { + "source": "G^{24,24,54}_{0}", + "target": "G^{18,24,24}_{0}", + "key": 0 + }, + { + "source": "G^{24,26,48}_{0}", + "target": "G^{24,24,26}_{1}", + "key": 0 + }, + { + "source": "G^{24,26,48}_{0}", + "target": "G^{16,24,26}_{1}", + "key": 0 + }, + { + "source": "G^{24,26,48}_{1}", + "target": "G^{24,24,26}_{0}", + "key": 0 + }, + { + "source": "G^{24,26,48}_{1}", + "target": "G^{16,24,26}_{0}", + "key": 0 + }, + { + "source": "G^{24,26,54}_{0}", + "target": "G^{18,24,26}_{0}", + "key": 0 + }, + { + "source": "G^{24,26,54}_{2}", + "target": "G^{18,24,26}_{0}", + "key": 0 + }, + { + "source": "G^{26,26,48}_{0}", + "target": "G^{24,26,26}_{3}", + "key": 0 + }, + { + "source": "G^{26,26,48}_{0}", + "target": "G^{16,26,26}_{3}", + "key": 0 + }, + { + "source": "G^{26,26,48}_{1}", + "target": "G^{24,26,26}_{0}", + "key": 0 + }, + { + "source": "G^{26,26,48}_{1}", + "target": "G^{16,26,26}_{0}", + "key": 0 + }, + { + "source": "G^{26,26,48}_{4}", + "target": "G^{24,26,26}_{5}", + "key": 0 + }, + { + "source": "G^{26,26,48}_{4}", + "target": "G^{16,26,26}_{5}", + "key": 0 + }, + { + "source": "G^{26,26,48}_{5}", + "target": "G^{24,26,26}_{1}", + "key": 0 + }, + { + "source": "G^{26,26,48}_{5}", + "target": "G^{16,26,26}_{1}", + "key": 0 + }, + { + "source": "G^{26,26,54}_{0}", + "target": "G^{18,26,26}_{0}", + "key": 0 + }, + { + "source": "G^{26,26,54}_{4}", + "target": "G^{18,26,26}_{1}", + "key": 0 + }, + { + "source": "G^{14,40,48}_{0}", + "target": "G^{14,24,40}_{0}", + "key": 0 + }, + { + "source": "G^{14,40,48}_{0}", + "target": "G^{14,16,40}_{0}", + "key": 0 + }, + { + "source": "G^{14,40,54}_{0}", + "target": "G^{14,18,40}_{0}", + "key": 0 + }, + { + "source": "G^{14,40,54}_{2}", + "target": "G^{14,18,40}_{0}", + "key": 0 + }, + { + "source": "G^{14,48,48}_{0}", + "target": "G^{14,24,48}_{1}", + "key": 0 + }, + { + "source": "G^{14,48,48}_{0}", + "target": "G^{14,24,48}_{1}", + "key": 1 + }, + { + "source": "G^{14,48,48}_{0}", + "target": "G^{14,16,48}_{1}", + "key": 0 + }, + { + "source": "G^{14,48,48}_{0}", + "target": "G^{14,16,48}_{1}", + "key": 1 + }, + { + "source": "G^{14,48,48}_{1}", + "target": "G^{14,24,48}_{0}", + "key": 0 + }, + { + "source": "G^{14,48,48}_{1}", + "target": "G^{14,24,48}_{0}", + "key": 1 + }, + { + "source": "G^{14,48,48}_{1}", + "target": "G^{14,16,48}_{0}", + "key": 0 + }, + { + "source": "G^{14,48,48}_{1}", + "target": "G^{14,16,48}_{0}", + "key": 1 + }, + { + "source": "G^{14,48,54}_{0}", + "target": "G^{14,18,48}_{0}", + "key": 0 + }, + { + "source": "G^{14,48,54}_{0}", + "target": "G^{14,24,54}_{0}", + "key": 0 + }, + { + "source": "G^{14,48,54}_{0}", + "target": "G^{14,16,54}_{0}", + "key": 0 + }, + { + "source": "G^{14,48,54}_{2}", + "target": "G^{14,18,48}_{0}", + "key": 0 + }, + { + "source": "G^{14,48,54}_{2}", + "target": "G^{14,24,54}_{2}", + "key": 0 + }, + { + "source": "G^{14,48,54}_{2}", + "target": "G^{14,16,54}_{2}", + "key": 0 + }, + { + "source": "G^{14,54,54}_{0}", + "target": "G^{14,18,54}_{2}", + "key": 0 + }, + { + "source": "G^{14,54,54}_{0}", + "target": "G^{14,18,54}_{0}", + "key": 0 + }, + { + "source": "G^{14,54,54}_{2}", + "target": "G^{14,18,54}_{2}", + "key": 0 + }, + { + "source": "G^{14,54,54}_{2}", + "target": "G^{14,18,54}_{2}", + "key": 1 + }, + { + "source": "G^{14,54,54}_{8}", + "target": "G^{14,18,54}_{0}", + "key": 0 + }, + { + "source": "G^{14,54,54}_{8}", + "target": "G^{14,18,54}_{0}", + "key": 1 + }, + { + "source": "G^{16,40,40}_{0}", + "target": "G^{8,40,40}_{0}", + "key": 0 + }, + { + "source": "G^{16,40,48}_{0}", + "target": "G^{16,24,40}_{0}", + "key": 0 + }, + { + "source": "G^{16,40,48}_{0}", + "target": "G^{16,16,40}_{0}", + "key": 0 + }, + { + "source": "G^{16,40,48}_{0}", + "target": "G^{8,40,48}_{0}", + "key": 0 + }, + { + "source": "G^{16,40,54}_{0}", + "target": "G^{16,18,40}_{0}", + "key": 0 + }, + { + "source": "G^{16,40,54}_{0}", + "target": "G^{8,40,54}_{0}", + "key": 0 + }, + { + "source": "G^{16,40,54}_{2}", + "target": "G^{16,18,40}_{0}", + "key": 0 + }, + { + "source": "G^{16,40,54}_{2}", + "target": "G^{8,40,54}_{2}", + "key": 0 + }, + { + "source": "G^{16,48,48}_{0}", + "target": "G^{16,24,48}_{1}", + "key": 0 + }, + { + "source": "G^{16,48,48}_{0}", + "target": "G^{16,24,48}_{1}", + "key": 1 + }, + { + "source": "G^{16,48,48}_{0}", + "target": "G^{16,16,48}_{1}", + "key": 0 + }, + { + "source": "G^{16,48,48}_{0}", + "target": "G^{16,16,48}_{1}", + "key": 1 + }, + { + "source": "G^{16,48,48}_{0}", + "target": "G^{8,48,48}_{1}", + "key": 0 + }, + { + "source": "G^{16,48,48}_{1}", + "target": "G^{16,24,48}_{0}", + "key": 0 + }, + { + "source": "G^{16,48,48}_{1}", + "target": "G^{16,24,48}_{0}", + "key": 1 + }, + { + "source": "G^{16,48,48}_{1}", + "target": "G^{16,16,48}_{0}", + "key": 0 + }, + { + "source": "G^{16,48,48}_{1}", + "target": "G^{16,16,48}_{0}", + "key": 1 + }, + { + "source": "G^{16,48,48}_{1}", + "target": "G^{8,48,48}_{0}", + "key": 0 + }, + { + "source": "G^{16,48,54}_{0}", + "target": "G^{16,18,48}_{0}", + "key": 0 + }, + { + "source": "G^{16,48,54}_{0}", + "target": "G^{16,24,54}_{0}", + "key": 0 + }, + { + "source": "G^{16,48,54}_{0}", + "target": "G^{16,16,54}_{0}", + "key": 0 + }, + { + "source": "G^{16,48,54}_{0}", + "target": "G^{8,48,54}_{0}", + "key": 0 + }, + { + "source": "G^{16,48,54}_{2}", + "target": "G^{16,18,48}_{0}", + "key": 0 + }, + { + "source": "G^{16,48,54}_{2}", + "target": "G^{16,24,54}_{2}", + "key": 0 + }, + { + "source": "G^{16,48,54}_{2}", + "target": "G^{16,16,54}_{0}", + "key": 0 + }, + { + "source": "G^{16,48,54}_{2}", + "target": "G^{8,48,54}_{2}", + "key": 0 + }, + { + "source": "G^{16,54,54}_{0}", + "target": "G^{16,18,54}_{2}", + "key": 0 + }, + { + "source": "G^{16,54,54}_{0}", + "target": "G^{16,18,54}_{0}", + "key": 0 + }, + { + "source": "G^{16,54,54}_{0}", + "target": "G^{8,54,54}_{0}", + "key": 0 + }, + { + "source": "G^{16,54,54}_{2}", + "target": "G^{16,18,54}_{2}", + "key": 0 + }, + { + "source": "G^{16,54,54}_{2}", + "target": "G^{16,18,54}_{2}", + "key": 1 + }, + { + "source": "G^{16,54,54}_{2}", + "target": "G^{8,54,54}_{2}", + "key": 0 + }, + { + "source": "G^{16,54,54}_{8}", + "target": "G^{16,18,54}_{0}", + "key": 0 + }, + { + "source": "G^{16,54,54}_{8}", + "target": "G^{16,18,54}_{0}", + "key": 1 + }, + { + "source": "G^{16,54,54}_{8}", + "target": "G^{8,54,54}_{8}", + "key": 0 + }, + { + "source": "G^{18,40,40}_{0}", + "target": "G^{6,40,40}_{0}", + "key": 0 + }, + { + "source": "G^{18,40,48}_{0}", + "target": "G^{18,24,40}_{0}", + "key": 0 + }, + { + "source": "G^{18,40,48}_{0}", + "target": "G^{16,18,40}_{0}", + "key": 0 + }, + { + "source": "G^{18,40,48}_{0}", + "target": "G^{6,40,48}_{0}", + "key": 0 + }, + { + "source": "G^{18,40,54}_{0}", + "target": "G^{18,18,40}_{0}", + "key": 0 + }, + { + "source": "G^{18,40,54}_{0}", + "target": "G^{6,40,54}_{0}", + "key": 0 + }, + { + "source": "G^{18,40,54}_{2}", + "target": "G^{18,18,40}_{0}", + "key": 0 + }, + { + "source": "G^{18,40,54}_{2}", + "target": "G^{6,40,54}_{2}", + "key": 0 + }, + { + "source": "G^{18,48,48}_{0}", + "target": "G^{18,24,48}_{0}", + "key": 0 + }, + { + "source": "G^{18,48,48}_{0}", + "target": "G^{18,24,48}_{0}", + "key": 1 + }, + { + "source": "G^{18,48,48}_{0}", + "target": "G^{16,18,48}_{0}", + "key": 0 + }, + { + "source": "G^{18,48,48}_{0}", + "target": "G^{16,18,48}_{0}", + "key": 1 + }, + { + "source": "G^{18,48,48}_{0}", + "target": "G^{6,48,48}_{0}", + "key": 0 + }, + { + "source": "G^{18,48,54}_{0}", + "target": "G^{18,18,48}_{0}", + "key": 0 + }, + { + "source": "G^{18,48,54}_{0}", + "target": "G^{18,24,54}_{0}", + "key": 0 + }, + { + "source": "G^{18,48,54}_{0}", + "target": "G^{16,18,54}_{2}", + "key": 0 + }, + { + "source": "G^{18,48,54}_{0}", + "target": "G^{6,48,54}_{0}", + "key": 0 + }, + { + "source": "G^{18,48,54}_{2}", + "target": "G^{18,18,48}_{0}", + "key": 0 + }, + { + "source": "G^{18,48,54}_{2}", + "target": "G^{18,24,54}_{2}", + "key": 0 + }, + { + "source": "G^{18,48,54}_{2}", + "target": "G^{16,18,54}_{0}", + "key": 0 + }, + { + "source": "G^{18,48,54}_{2}", + "target": "G^{6,48,54}_{2}", + "key": 0 + }, + { + "source": "G^{18,54,54}_{0}", + "target": "G^{18,18,54}_{0}", + "key": 0 + }, + { + "source": "G^{18,54,54}_{0}", + "target": "G^{18,18,54}_{0}", + "key": 1 + }, + { + "source": "G^{18,54,54}_{0}", + "target": "G^{6,54,54}_{0}", + "key": 0 + }, + { + "source": "G^{18,54,54}_{2}", + "target": "G^{18,18,54}_{0}", + "key": 0 + }, + { + "source": "G^{18,54,54}_{2}", + "target": "G^{18,18,54}_{0}", + "key": 1 + }, + { + "source": "G^{18,54,54}_{2}", + "target": "G^{6,54,54}_{2}", + "key": 0 + }, + { + "source": "G^{18,54,54}_{8}", + "target": "G^{18,18,54}_{0}", + "key": 0 + }, + { + "source": "G^{18,54,54}_{8}", + "target": "G^{18,18,54}_{0}", + "key": 1 + }, + { + "source": "G^{18,54,54}_{8}", + "target": "G^{6,54,54}_{8}", + "key": 0 + }, + { + "source": "G^{24,40,40}_{0}", + "target": "G^{6,40,40}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,40}_{0}", + "target": "G^{8,40,40}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,48}_{0}", + "target": "G^{24,24,40}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,48}_{0}", + "target": "G^{16,24,40}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,48}_{0}", + "target": "G^{6,40,48}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,48}_{0}", + "target": "G^{8,40,48}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,54}_{0}", + "target": "G^{18,24,40}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,54}_{0}", + "target": "G^{6,40,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,54}_{0}", + "target": "G^{8,40,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,54}_{2}", + "target": "G^{18,24,40}_{0}", + "key": 0 + }, + { + "source": "G^{24,40,54}_{2}", + "target": "G^{6,40,54}_{2}", + "key": 0 + }, + { + "source": "G^{24,40,54}_{2}", + "target": "G^{8,40,54}_{2}", + "key": 0 + }, + { + "source": "G^{24,48,48}_{0}", + "target": "G^{24,24,48}_{1}", + "key": 0 + }, + { + "source": "G^{24,48,48}_{0}", + "target": "G^{24,24,48}_{1}", + "key": 1 + }, + { + "source": "G^{24,48,48}_{0}", + "target": "G^{16,24,48}_{1}", + "key": 0 + }, + { + "source": "G^{24,48,48}_{0}", + "target": "G^{16,24,48}_{1}", + "key": 1 + }, + { + "source": "G^{24,48,48}_{0}", + "target": "G^{6,48,48}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,48}_{0}", + "target": "G^{8,48,48}_{1}", + "key": 0 + }, + { + "source": "G^{24,48,48}_{1}", + "target": "G^{24,24,48}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,48}_{1}", + "target": "G^{24,24,48}_{0}", + "key": 1 + }, + { + "source": "G^{24,48,48}_{1}", + "target": "G^{16,24,48}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,48}_{1}", + "target": "G^{16,24,48}_{0}", + "key": 1 + }, + { + "source": "G^{24,48,48}_{1}", + "target": "G^{6,48,48}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,48}_{1}", + "target": "G^{8,48,48}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{0}", + "target": "G^{18,24,48}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{0}", + "target": "G^{24,24,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{0}", + "target": "G^{16,24,54}_{2}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{0}", + "target": "G^{6,48,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{0}", + "target": "G^{8,48,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{2}", + "target": "G^{18,24,48}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{2}", + "target": "G^{24,24,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{2}", + "target": "G^{16,24,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{2}", + "target": "G^{6,48,54}_{2}", + "key": 0 + }, + { + "source": "G^{24,48,54}_{2}", + "target": "G^{8,48,54}_{2}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{0}", + "target": "G^{18,24,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{0}", + "target": "G^{18,24,54}_{2}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{0}", + "target": "G^{6,54,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{0}", + "target": "G^{8,54,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{2}", + "target": "G^{18,24,54}_{0}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{2}", + "target": "G^{18,24,54}_{0}", + "key": 1 + }, + { + "source": "G^{24,54,54}_{2}", + "target": "G^{6,54,54}_{2}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{2}", + "target": "G^{8,54,54}_{2}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{8}", + "target": "G^{18,24,54}_{2}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{8}", + "target": "G^{18,24,54}_{2}", + "key": 1 + }, + { + "source": "G^{24,54,54}_{8}", + "target": "G^{6,54,54}_{8}", + "key": 0 + }, + { + "source": "G^{24,54,54}_{8}", + "target": "G^{8,54,54}_{8}", + "key": 0 + }, + { + "source": "G^{26,40,48}_{0}", + "target": "G^{24,26,40}_{0}", + "key": 0 + }, + { + "source": "G^{26,40,48}_{0}", + "target": "G^{16,26,40}_{0}", + "key": 0 + }, + { + "source": "G^{26,40,54}_{0}", + "target": "G^{18,26,40}_{0}", + "key": 0 + }, + { + "source": "G^{26,40,54}_{2}", + "target": "G^{18,26,40}_{0}", + "key": 0 + }, + { + "source": "G^{26,48,48}_{0}", + "target": "G^{24,26,48}_{1}", + "key": 0 + }, + { + "source": "G^{26,48,48}_{0}", + "target": "G^{24,26,48}_{1}", + "key": 1 + }, + { + "source": "G^{26,48,48}_{0}", + "target": "G^{16,26,48}_{1}", + "key": 0 + }, + { + "source": "G^{26,48,48}_{0}", + "target": "G^{16,26,48}_{1}", + "key": 1 + }, + { + "source": "G^{26,48,48}_{1}", + "target": "G^{24,26,48}_{0}", + "key": 0 + }, + { + "source": "G^{26,48,48}_{1}", + "target": "G^{24,26,48}_{0}", + "key": 1 + }, + { + "source": "G^{26,48,48}_{1}", + "target": "G^{16,26,48}_{0}", + "key": 0 + }, + { + "source": "G^{26,48,48}_{1}", + "target": "G^{16,26,48}_{0}", + "key": 1 + }, + { + "source": "G^{26,48,54}_{0}", + "target": "G^{18,26,48}_{0}", + "key": 0 + }, + { + "source": "G^{26,48,54}_{0}", + "target": "G^{24,26,54}_{2}", + "key": 0 + }, + { + "source": "G^{26,48,54}_{0}", + "target": "G^{16,26,54}_{2}", + "key": 0 + }, + { + "source": "G^{26,48,54}_{2}", + "target": "G^{18,26,48}_{0}", + "key": 0 + }, + { + "source": "G^{26,48,54}_{2}", + "target": "G^{24,26,54}_{0}", + "key": 0 + }, + { + "source": "G^{26,48,54}_{2}", + "target": "G^{16,26,54}_{0}", + "key": 0 + }, + { + "source": "G^{26,54,54}_{0}", + "target": "G^{18,26,54}_{0}", + "key": 0 + }, + { + "source": "G^{26,54,54}_{0}", + "target": "G^{18,26,54}_{2}", + "key": 0 + }, + { + "source": "G^{26,54,54}_{2}", + "target": "G^{18,26,54}_{0}", + "key": 0 + }, + { + "source": "G^{26,54,54}_{2}", + "target": "G^{18,26,54}_{0}", + "key": 1 + }, + { + "source": "G^{26,54,54}_{8}", + "target": "G^{18,26,54}_{2}", + "key": 0 + }, + { + "source": "G^{26,54,54}_{8}", + "target": "G^{18,26,54}_{2}", + "key": 1 + }, + { + "source": "G^{40,40,48}_{0}", + "target": "G^{24,40,40}_{0}", + "key": 0 + }, + { + "source": "G^{40,40,48}_{0}", + "target": "G^{16,40,40}_{0}", + "key": 0 + }, + { + "source": "G^{40,40,54}_{0}", + "target": "G^{18,40,40}_{0}", + "key": 0 + }, + { + "source": "G^{40,48,48}_{0}", + "target": "G^{24,40,48}_{0}", + "key": 0 + }, + { + "source": "G^{40,48,48}_{0}", + "target": "G^{24,40,48}_{0}", + "key": 1 + }, + { + "source": "G^{40,48,48}_{0}", + "target": "G^{16,40,48}_{0}", + "key": 0 + }, + { + "source": "G^{40,48,48}_{0}", + "target": "G^{16,40,48}_{0}", + "key": 1 + }, + { + "source": "G^{40,48,54}_{0}", + "target": "G^{18,40,48}_{0}", + "key": 0 + }, + { + "source": "G^{40,48,54}_{0}", + "target": "G^{24,40,54}_{2}", + "key": 0 + }, + { + "source": "G^{40,48,54}_{0}", + "target": "G^{16,40,54}_{2}", + "key": 0 + }, + { + "source": "G^{40,48,54}_{2}", + "target": "G^{18,40,48}_{0}", + "key": 0 + }, + { + "source": "G^{40,48,54}_{2}", + "target": "G^{24,40,54}_{0}", + "key": 0 + }, + { + "source": "G^{40,48,54}_{2}", + "target": "G^{16,40,54}_{0}", + "key": 0 + }, + { + "source": "G^{40,54,54}_{0}", + "target": "G^{18,40,54}_{0}", + "key": 0 + }, + { + "source": "G^{40,54,54}_{0}", + "target": "G^{18,40,54}_{2}", + "key": 0 + }, + { + "source": "G^{40,54,54}_{2}", + "target": "G^{18,40,54}_{0}", + "key": 0 + }, + { + "source": "G^{40,54,54}_{2}", + "target": "G^{18,40,54}_{0}", + "key": 1 + }, + { + "source": "G^{40,54,54}_{8}", + "target": "G^{18,40,54}_{2}", + "key": 0 + }, + { + "source": "G^{40,54,54}_{8}", + "target": "G^{18,40,54}_{2}", + "key": 1 + }, + { + "source": "G^{48,48,48}_{0}", + "target": "G^{24,48,48}_{1}", + "key": 0 + }, + { + "source": "G^{48,48,48}_{0}", + "target": "G^{24,48,48}_{1}", + "key": 1 + }, + { + "source": "G^{48,48,48}_{0}", + "target": "G^{24,48,48}_{1}", + "key": 2 + }, + { + "source": "G^{48,48,48}_{0}", + "target": "G^{16,48,48}_{1}", + "key": 0 + }, + { + "source": "G^{48,48,48}_{0}", + "target": "G^{16,48,48}_{1}", + "key": 1 + }, + { + "source": "G^{48,48,48}_{0}", + "target": "G^{16,48,48}_{1}", + "key": 2 + }, + { + "source": "G^{48,48,48}_{1}", + "target": "G^{24,48,48}_{0}", + "key": 0 + }, + { + "source": "G^{48,48,48}_{1}", + "target": "G^{24,48,48}_{0}", + "key": 1 + }, + { + "source": "G^{48,48,48}_{1}", + "target": "G^{24,48,48}_{0}", + "key": 2 + }, + { + "source": "G^{48,48,48}_{1}", + "target": "G^{16,48,48}_{0}", + "key": 0 + }, + { + "source": "G^{48,48,48}_{1}", + "target": "G^{16,48,48}_{0}", + "key": 1 + }, + { + "source": "G^{48,48,48}_{1}", + "target": "G^{16,48,48}_{0}", + "key": 2 + }, + { + "source": "G^{48,48,54}_{0}", + "target": "G^{18,48,48}_{0}", + "key": 0 + }, + { + "source": "G^{48,48,54}_{0}", + "target": "G^{24,48,54}_{2}", + "key": 0 + }, + { + "source": "G^{48,48,54}_{0}", + "target": "G^{16,48,54}_{2}", + "key": 0 + }, + { + "source": "G^{48,48,54}_{0}", + "target": "G^{24,48,54}_{0}", + "key": 0 + }, + { + "source": "G^{48,48,54}_{0}", + "target": "G^{16,48,54}_{0}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{0}", + "target": "G^{18,48,54}_{0}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{0}", + "target": "G^{18,48,54}_{2}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{0}", + "target": "G^{24,54,54}_{0}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{0}", + "target": "G^{16,54,54}_{0}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{2}", + "target": "G^{18,48,54}_{0}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{2}", + "target": "G^{18,48,54}_{0}", + "key": 1 + }, + { + "source": "G^{48,54,54}_{2}", + "target": "G^{24,54,54}_{2}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{2}", + "target": "G^{16,54,54}_{2}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{8}", + "target": "G^{18,48,54}_{2}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{8}", + "target": "G^{18,48,54}_{2}", + "key": 1 + }, + { + "source": "G^{48,54,54}_{8}", + "target": "G^{24,54,54}_{8}", + "key": 0 + }, + { + "source": "G^{48,54,54}_{8}", + "target": "G^{16,54,54}_{8}", + "key": 0 + }, + { + "source": "G^{54,54,54}_{0}", + "target": "G^{18,54,54}_{0}", + "key": 0 + }, + { + "source": "G^{54,54,54}_{0}", + "target": "G^{18,54,54}_{0}", + "key": 1 + }, + { + "source": "G^{54,54,54}_{0}", + "target": "G^{18,54,54}_{0}", + "key": 2 + }, + { + "source": "G^{54,54,54}_{2}", + "target": "G^{18,54,54}_{0}", + "key": 0 + }, + { + "source": "G^{54,54,54}_{2}", + "target": "G^{18,54,54}_{8}", + "key": 0 + }, + { + "source": "G^{54,54,54}_{2}", + "target": "G^{18,54,54}_{2}", + "key": 0 + } + ] +} \ No newline at end of file From 0ae4f333ed5d58385eaabab88d3813229f24a29a Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Tue, 22 Feb 2022 14:33:01 +0100 Subject: [PATCH 06/11] add SmallHyperbolic/morphisms page --- docs/morphisms/index.html | 89 +++++++++++ docs/morphisms/js/d3_visualisation.js | 221 ++++++++++++++++++++++++++ docs/morphisms/js/morphisms.js | 83 ++++++++++ 3 files changed, 393 insertions(+) create mode 100644 docs/morphisms/index.html create mode 100644 docs/morphisms/js/d3_visualisation.js create mode 100644 docs/morphisms/js/morphisms.js diff --git a/docs/morphisms/index.html b/docs/morphisms/index.html new file mode 100644 index 0000000..ff87ecb --- /dev/null +++ b/docs/morphisms/index.html @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + +
+ +
+ + + + + + + + + diff --git a/docs/morphisms/js/d3_visualisation.js b/docs/morphisms/js/d3_visualisation.js new file mode 100644 index 0000000..5543cc5 --- /dev/null +++ b/docs/morphisms/js/d3_visualisation.js @@ -0,0 +1,221 @@ +function drag(simulation) { + + function dragstarted(event, d) { + if (!event.active) simulation.alphaTarget(0.3).restart(); + d.fx = d.x; + d.fy = d.y; + } + + function dragged(event, d) { + d.fx = event.x; + d.fy = event.y; + } + + function dragended(event, d) { + if (!event.active) simulation.alphaTarget(0); + d.fx = null; + d.fy = null; + } + + return d3.drag() + .on("start", dragstarted) + .on("drag", dragged) + .on("end", dragended); +} + +function linkArc(d) { + const r = Math.hypot(d.target.x - d.source.x, d.target.y - d.source.y); + return ` + M${d.source.x},${d.source.y} + A${r},${r} 0 0,1 ${d.target.x},${d.target.y} + `; +} + +function highlight(node) { + return node.transition() + .duration('400') + .attr('opacity', 1) + .attr('filter', 'sepia(0.0)') + ; +} + +function dehighlight(node) { + return node.transition() + .duration('400') + .attr('opacity', 0.3) + .attr('filter', 'sepia(0.8)') + ; +} + +function _union(...arr) { + return arr.reduce((first, second) => [...new Set(first.concat(second))]); +} + +async function create_svg( + data, + width, + height, + ) { + let links = data.links; + let nodes = data.nodes; + let types = Array.from(new Set(nodes.map(d => d.level))); + let color = d3.scaleOrdinal(types, d3.schemeSet1); + + d3.select("datalist") + .selectAll("option") + .data(nodes) + .join("option") + .attr("value", n=>n.id) + .text(n=>n.id) + + + + const simulation = d3.forceSimulation(nodes) + .force("link", d3.forceLink(links).id(d => d.id)) + .force("charge", d3.forceManyBody().strength(-400)) + .force("center", d3.forceCenter(width/2, height/2)) + .force("x", d3.forceX()) + .force("y", d3.forceY()); + + const svg = d3.create("svg") + .attr("preserveAspectRatio", "xMinYMin meet") + .attr("viewBox", [0, 0, width, height]) + .classed("svg-content", true) + .style("font", "12px sans-serif"); + + // Per-type markers, as they don't inherit styles. + svg.append("defs").selectAll("marker") + .data(types) + .join("marker") + .attr("id", d => `arrow-${d}`) + .attr("viewBox", "0 -5 10 10") + .attr("refX", 15) + .attr("refY", 0) + .attr("markerWidth", 6) + .attr("markerHeight", 6) + .attr("orient", "auto") + .append("path") + .attr("fill", d=>color(d)) + .attr("d", "M0,-5 L10,0 L0,5 z") + ; + + const svg_content = svg.append("g") + + const link = svg_content.append("g") + .attr("fill", "none") + .attr("stroke-width", 1.5) + .selectAll("path") + .data(links) + .join("path") + .attr("stroke", d => color(d.source.level)) + .attr("marker-end", d => `url(${new URL(`#arrow-${d.source.level}`, location)})`) + .attr("opacity", 0.3) + .attr("filter", "sepia(0.8)") + ; + + function find_descendants(node) { + let desc = links.filter(l => l.source.id == node.id ); + if (desc.length == 0) { + return [] + } else { + let all_desc = desc + .map(d => find_descendants(d.target)) + .reduce( + (total, item) => Array.from(new Set(total.concat(item))), + desc.map(l=>l.target) + ) + ; + return all_desc; + // return _union(desc, _union(...desc.map(l=>find_descendants(l.target)))); + } + }; + + const descendants = {}; + + nodes.forEach((node) => { + let desc = find_descendants(node); + desc.push(node) + descendants[node.id] = desc; + }); + + console.log(descendants) + + function foreground_descendants(id) { + node.classed("foreground", (n) => { + return (descendants[id].find(v => v.id == n.id)) ? true : false; + }); + + link.classed("foreground", (n) => { + let verts = descendants[id] + return (verts.includes(n.source) && verts.includes(n.target)) ? true : false; + }); + } + + d3.select("input").on("input", function () { + let n = nodes.find(n => n.id == this.value) + if (n) { + foreground_descendants(n.id) + // let transform = {k:1, x:n.x, y:n.y} + console.log(n) + + d3.zoom().translateTo(svg_content,n.x, n.y) + // console.log(transform) + // svg_content.attr("transform", `translate(${n.x/2},${n.y/2})`) + } + }); + + const node = svg_content.append("g") + .attr("stroke-linecap", "round") + .attr("stroke-linejoin", "round") + .selectAll("g") + .data(nodes) + .join("g") + .attr("class", d=>d.id) + .attr("opacity", 0.3) + .attr("filter", "sepia(0.8)") + .on("mouseover", function (d, i) { + highlight(d3.select(this)); + }) + .on("mouseout", function (d, i) { + dehighlight(d3.select(this)) + }) + .on("click", function (d, i) { + console.log(this) + let id = this.classList[0]; + foreground_descendants(id); + }) + .call(drag(simulation)); + + // circles for nodes: + node.append("circle") + .attr("stroke", "white") + .attr("stroke-width", 1.5) + .attr("r", 5) + .attr("fill", d => color(d.level)); + + node.append("foreignObject") + .attr("x", 10) + .attr("y", "0.31em") + .clone(true).lower() + .attr("fill", "none") + .attr("stroke", "white") + .attr("stroke-width", 5) + .append(d => createMathSpan(d.id)); + + const zoom = d3.zoom() + .scaleExtent([0.2, 5]) + // .translateExtent([[0, 0], [width, height]]) + .on("zoom", (e) => { + console.log(e.transform) + svg_content.attr("transform", e.transform) + }); + + svg.call(zoom) + + simulation.on("tick", () => { + link.attr("d", linkArc); + node.attr("transform", d => `translate(${d.x},${d.y})`); + }); + + return svg; +} diff --git a/docs/morphisms/js/morphisms.js b/docs/morphisms/js/morphisms.js new file mode 100644 index 0000000..d8807e7 --- /dev/null +++ b/docs/morphisms/js/morphisms.js @@ -0,0 +1,83 @@ +const morphisms_url = new URL("https://raw.githubusercontent.com/kalmarek/SmallHyperbolic/mk/morphisms/data/triangle_groups_morphisms.json") + +async function fetch_json(url) { + try { + let response = await fetch(url); + let json = await response.json(); + return json; + } catch (err) { + console.log("Error while fetching json:" + err); + } +} + + + ; + +async function place_svg(svg) { + d3.select("div.canvas") + .append("div") + .attr("class", "container-fluid") + .attr("class", "svg-container") + .node() + .appendChild(svg.node()); +}; + +async function add_search() { + let input_grp = d3.select("div.canvas") + .append("div") + .classed("search-field", true) + .append("div") + .classed("container", true) + // .append("div") + // .classed("input-group", true) + ; + // let floating = input_grp.insert("div") + // .attr("class", "form-floating") + + let input = input_grp.insert("input") + .attr("class", "form-control") + .attr("list", "datalistOptions") + .attr("id", "groupSearch") + .attr("placeholder", "Type to search..."); + + // input_grp.insert("label") + // .attr("for", "groupSearch") + // .text("Type to search...") + + input_grp.insert("datalist") + .attr("id", "datalistOptions") + + // input_grp.append("button") + // .classed("btn btn-primary", true) + // .attr("type", "button") + // .attr("id", "searchBtn") + // .append("i") + // .classed("bi-search", true) + // ; +} + +async function show_katex() { + let math_objects = document.getElementsByClassName("math"); + let toggle = true; + for (let elt of math_objects) { + toggleKaTeX(elt, toggle); + let fObj = elt.parentElement; + let rect = elt.getElementsByClassName("math-tex")[0].getBoundingClientRect(); + fObj.setAttribute("width", rect.width+4); + fObj.setAttribute("height", rect.height+4); + } +}; + +add_search() + +fetch_json(morphisms_url) + // .then(async (data) => { console.log(data); return data;}) + .then(async (data) => { + return create_svg(data, window.innerWidth, window.innerHeight); + }) + // .then(async (data) => { console.log(data); return data; }) + .then(place_svg) + .then(show_katex) + // .then(add_search) +; + From e279a0acf00c18f34f1032028ecd54223c60d2c4 Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Wed, 23 Feb 2022 16:26:42 +0100 Subject: [PATCH 07/11] finally fix zoom issue --- docs/morphisms/js/d3_visualisation.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/docs/morphisms/js/d3_visualisation.js b/docs/morphisms/js/d3_visualisation.js index 5543cc5..7c7a1f0 100644 --- a/docs/morphisms/js/d3_visualisation.js +++ b/docs/morphisms/js/d3_visualisation.js @@ -152,15 +152,16 @@ async function create_svg( } d3.select("input").on("input", function () { - let n = nodes.find(n => n.id == this.value) + let id = this.value; + let n = nodes.find(n => n.id == id) if (n) { - foreground_descendants(n.id) - // let transform = {k:1, x:n.x, y:n.y} - console.log(n) + foreground_descendants(id) - d3.zoom().translateTo(svg_content,n.x, n.y) - // console.log(transform) - // svg_content.attr("transform", `translate(${n.x/2},${n.y/2})`) + svg.transition() + .duration(750) + .call(zoom.transform, d3.zoomIdentity); + + zoom.translateTo(svg.transition().duration(750), n.x, n.y) } }); From aa9a1cfdb6ec92ceb15001930a1eeae19afca2ae Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Wed, 23 Feb 2022 16:28:10 +0100 Subject: [PATCH 08/11] cleanup --- docs/morphisms/js/d3_visualisation.js | 3 --- docs/morphisms/js/morphisms.js | 32 +++++++-------------------- 2 files changed, 8 insertions(+), 27 deletions(-) diff --git a/docs/morphisms/js/d3_visualisation.js b/docs/morphisms/js/d3_visualisation.js index 7c7a1f0..4609b07 100644 --- a/docs/morphisms/js/d3_visualisation.js +++ b/docs/morphisms/js/d3_visualisation.js @@ -68,8 +68,6 @@ async function create_svg( .attr("value", n=>n.id) .text(n=>n.id) - - const simulation = d3.forceSimulation(nodes) .force("link", d3.forceLink(links).id(d => d.id)) .force("charge", d3.forceManyBody().strength(-400)) @@ -205,7 +203,6 @@ async function create_svg( const zoom = d3.zoom() .scaleExtent([0.2, 5]) - // .translateExtent([[0, 0], [width, height]]) .on("zoom", (e) => { console.log(e.transform) svg_content.attr("transform", e.transform) diff --git a/docs/morphisms/js/morphisms.js b/docs/morphisms/js/morphisms.js index d8807e7..27e7e7b 100644 --- a/docs/morphisms/js/morphisms.js +++ b/docs/morphisms/js/morphisms.js @@ -8,10 +8,7 @@ async function fetch_json(url) { } catch (err) { console.log("Error while fetching json:" + err); } -} - - - ; +}; async function place_svg(svg) { d3.select("div.canvas") @@ -19,7 +16,8 @@ async function place_svg(svg) { .attr("class", "container-fluid") .attr("class", "svg-container") .node() - .appendChild(svg.node()); + .appendChild(svg.node()) + ; }; async function add_search() { @@ -28,37 +26,23 @@ async function add_search() { .classed("search-field", true) .append("div") .classed("container", true) - // .append("div") - // .classed("input-group", true) ; - // let floating = input_grp.insert("div") - // .attr("class", "form-floating") let input = input_grp.insert("input") .attr("class", "form-control") .attr("list", "datalistOptions") .attr("id", "groupSearch") - .attr("placeholder", "Type to search..."); - - // input_grp.insert("label") - // .attr("for", "groupSearch") - // .text("Type to search...") + .attr("placeholder", "Type to search...") + ; input_grp.insert("datalist") .attr("id", "datalistOptions") + ; - // input_grp.append("button") - // .classed("btn btn-primary", true) - // .attr("type", "button") - // .attr("id", "searchBtn") - // .append("i") - // .classed("bi-search", true) - // ; } -async function show_katex() { +async function switch_katex(toggle=true) { let math_objects = document.getElementsByClassName("math"); - let toggle = true; for (let elt of math_objects) { toggleKaTeX(elt, toggle); let fObj = elt.parentElement; @@ -77,7 +61,7 @@ fetch_json(morphisms_url) }) // .then(async (data) => { console.log(data); return data; }) .then(place_svg) - .then(show_katex) + .then(switch_katex) // .then(add_search) ; From d4349c8b0ab5fefdc87f4764c1a788d3b00824bf Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Wed, 23 Feb 2022 16:28:46 +0100 Subject: [PATCH 09/11] add label to search field --- docs/morphisms/js/morphisms.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/morphisms/js/morphisms.js b/docs/morphisms/js/morphisms.js index 27e7e7b..abb07ad 100644 --- a/docs/morphisms/js/morphisms.js +++ b/docs/morphisms/js/morphisms.js @@ -39,6 +39,10 @@ async function add_search() { .attr("id", "datalistOptions") ; + input_grp.insert("div") + .classed("form-text", true) + .text("Or click to highlight descendants") + ; } async function switch_katex(toggle=true) { From 1dbf8daa601136e0d26d7f0a7800dab8d28f17dc Mon Sep 17 00:00:00 2001 From: Marek Kaluba Date: Wed, 23 Feb 2022 16:35:23 +0100 Subject: [PATCH 10/11] add link to the morphisms page --- docs/index.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/index.html b/docs/index.html index 100d721..57265c4 100644 --- a/docs/index.html +++ b/docs/index.html @@ -27,6 +27,8 @@ by Pierre-Emmanuel Caprace, Marston Conder, Marek Kaluba and Stefan Witzel. +

You may also look at the graph of natural epimorphisms between those groups.

+