$\mathcal{H}(4,1^4)$ Extra Branching Occurs Over One Point

This notebook addresses the case where there is one simple zero over each $2$-torsion point. The quadruple zero can be arranged so that it descends to one of the points in $\{(0,0), (1,0)\}$.

We recall that in $\mathcal{H}(4,1^4)$, $d_{opt} = 10$ and by the arrangement above, there is a 2-torsion point in the boundary of each horizontal cylinder that has exactly one simple zero above it.

In [1]:
import re

Step 1

In [2]:
#This loads all of the 1-cylinder diagrams in H(4,1,1) formatted as python lists

with open('ST5_data//1-cyl_diags//cyl_diags-4_1_1-c-1', 'r') as file:
    H4_1_1_cyl_diags = eval(file.read())

H1_1_cyl_diags = [[[[0,1,2,3],[0,1,2,3]]]]

#This loads all of the functions for processing cylinder diagrams

%run ./ST5_fcns/cyl_diag_fcns.ipynb

#This runs almost instantly and constructs
#all of the binary lists associated to each
#simple zero for every cylinder diagram

H4_1_1_vertex_data = strat_odd_sc(H4_1_1_cyl_diags)

H1_1_vertex_data = strat_odd_sc(H1_1_cyl_diags)

Among partitions of $20$ into four odd numbers the minimum of the maximum numbers among all partitions is $\lceil 2d_{opt}/4 \rceil = 5$, which is $5$ in this case.

For the partition of $20$ into $9$ numbers, we have that the minimum is given by $\lceil 20/9\rceil$, which is $3$.

Solving $20 - 2(5) - 2t_0 \geq 0$ implies that the largest value of $t_0$ is $5$.

Solving $20 - 2s_0 - 2(3) \geq 0$ implies that the largest value of $s_0$ is $7$.

In summary:

$$s_0 \in \{5, 7\} \text{ and } 3 \leq t_0 \leq 5$$

Step 2

In [5]:
#This loads all of the standard partition functions needed for nearly every case
#It also loads the partition evaluate function

%run ./ST5_fcns/partition_functions.ipynb


if True:
    create_sc_partition_file((), part_length = 4, t0_range = range(5,8), d_opt = 10,
                             filename_root = 'ST5_data//H_4_1t4//1_branch_point//partitions//H1t2_part')

if True:
    create_sc_partition_file((), part_length = 9, t0_range = range(3,6), d_opt = 10,
                             filename_root = 'ST5_data//H_4_1t4//1_branch_point//partitions//H_4_1_1_part')

#Load the partitions

if True:
    with open('ST5_data//H_4_1t4//1_branch_point//partitions//H1t2_part', 'r') as file:
        H1t2_part = eval_part(file.read())

if True:
    with open('ST5_data//H_4_1t4//1_branch_point//partitions//H_4_1_1_part', 'r') as file:
        H_4_1_1_part = eval_part(file.read())
ST5_data//H_4_1t4//1_branch_point//partitions//H1t2_part written
ST5_data//H_4_1t4//1_branch_point//partitions//H_4_1_1_part written

Step 3

In [6]:
#This loads all of the align_list functions needed for nearly every case
#This includes the align_list evaluate function

%run ./ST5_fcns/align_list_fcns.ipynb

if True:
    for t in range(3,6):
        align_list_write_file(H_4_1_1_part, H4_1_1_vertex_data, 
                              'ST5_data//H_4_1t4//1_branch_point//align_list//H_4_1_1_align_list', 
                              t0 = t)

if True:
    for t in [5, 7]:
        align_list_write_file(H1t2_part, H1_1_vertex_data, 
                              'ST5_data//H_4_1t4//1_branch_point//align_list//H_1_1_align_list', 
                              t0 = t)
36 partitions to search
420 partitions to search
96 partitions to search
1 partitions to search
12 partitions to search

Step 4

In [7]:
#This loads all of the visible_align_list functions needed for nearly every case

%run ./ST5_fcns/align_list_visible_fcns.ipynb

if True:
    generate_all_align_list_visible_files(range(3,6), [5, 7], 10, 
                                          'ST5_data//H_4_1t4//1_branch_point//', 
                                          'align_list//H_1_1_align_list_', 'align_list_visible//H1_1_align_list_')

if True:
    generate_all_align_list_visible_files([5, 7], range(3,6), 10, 
                                          'ST5_data//H_4_1t4//1_branch_point//', 
                                          'align_list//H_4_1_1_align_list_', 
                                          'align_list_visible//H_4_1_1_align_list_')
total_list generated
ST5_data//H_4_1t4//1_branch_point//align_list//H_1_1_align_list_5 read
1 configurations to search
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H1_1_align_list_5_visible_3 written
ST5_data//H_4_1t4//1_branch_point//align_list//H_1_1_align_list_5 read
1 configurations to search
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H1_1_align_list_5_visible_4 written
ST5_data//H_4_1t4//1_branch_point//align_list//H_1_1_align_list_5 read
1 configurations to search
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H1_1_align_list_5_visible_5 written
ST5_data//H_4_1t4//1_branch_point//align_list//H_1_1_align_list_7 read
12 configurations to search
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H1_1_align_list_7_visible_3 written
total_list generated
ST5_data//H_4_1t4//1_branch_point//align_list//H_4_1_1_align_list_3 read
1212 configurations to search
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H_4_1_1_align_list_3_visible_5 written
ST5_data//H_4_1t4//1_branch_point//align_list//H_4_1_1_align_list_3 read
1212 configurations to search
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H_4_1_1_align_list_3_visible_7 written
ST5_data//H_4_1t4//1_branch_point//align_list//H_4_1_1_align_list_4 read
14140 configurations to search
(10000, ((4, 1, 3, 2, 1, 1, 2, 4, 2), [[[4, 6, 2, 1, 7, 5, 3, 0, 8], [0, 4, 7, 2, 1, 5, 8, 6, 3]]]))
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H_4_1_1_align_list_4_visible_5 written
ST5_data//H_4_1t4//1_branch_point//align_list//H_4_1_1_align_list_5 read
3232 configurations to search
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H_4_1_1_align_list_5_visible_5 written

Step 5

In [8]:
#At this point, none of the files above need to be loaded for this to run.
#Once the files above are generated, the file sizes are small enough that these can be loaded on the fly.

#This loads all of the visible_align_list functions needed for nearly every case

%run ./ST5_fcns/combine_align_list_visible_fcns.ipynb 

if True:
    combine_align_list_visible_write_file(s_range = range(3,6), 
                                          s_filename_root = 'align_list_visible//H_4_1_1_align_list_', 
                                          t_range = [5, 7], 
                                          t_filename_root = 'align_list_visible//H1_1_align_list_',
                                          d_opt = 10, 
                                          root_dir = 'ST5_data//H_4_1t4//1_branch_point//')
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H1_1_align_list_5_visible_3 read
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H_4_1_1_align_list_3_visible_5 read
empty list
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H1_1_align_list_7_visible_3 read
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H_4_1_1_align_list_3_visible_7 read
empty list
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H1_1_align_list_5_visible_4 read
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H_4_1_1_align_list_4_visible_5 read
8*9=72 combinations to check
empty list
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H1_1_align_list_5_visible_5 read
ST5_data//H_4_1t4//1_branch_point//align_list_visible//H_4_1_1_align_list_5_visible_5 read
empty list
empty list
admissible_list written with 72 elements

Step 6

In [1]:
#This loads all of the vertical permutation check functions needed for nearly every case
#This function can be run once admissible_list is written and without needing to load any other file

%run ./ST5_fcns/vert_perm_check_fcns.ipynb
In [2]:
#This checks that all (both) of the vertical permutations have the correct length of 2*d_opt

if True:
    vert_perm_check_file(10, 'ST5_data//H_4_1t4//1_branch_point//')
admissible_list read with 72 candidates
admissible_list_vert_perm_check written with 16 elements
In [3]:
if True:
    all_vert_perm_check_file(10, 'ST5_data//H_4_1t4//1_branch_point//')
admissible_list_vert_perm_check read with 16 candidates
admissible_list_all_vert_perm_check written with 16 elements

Step 7

In [5]:
%run ./ST5_fcns/slope_test_fcn.ipynb

if True:
    final_list = slope_test(10, 'ST5_data//H_4_1t4//1_branch_point//')
admissible_list_all_vert_perm_check read with 16 candidates
vert_perm_total_1 produced with 8 elements
vert_perm_total_2 produced with 8 elements
vert_perm_total_3 produced with 0 elements
All possibilities have been excluded