setVerbosity(MinimalLog)

# -------------------------------------------------------------
# Left Electrode
# -------------------------------------------------------------

# Set up lattice
vector_a = [10.7354, 0.0, 0.0]*Angstrom
vector_b = [0.0, 10.7354, 0.0]*Angstrom
vector_c = [0.0, 0.0, 7.3673377713]*Angstrom
left_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
left_electrode_elements = [Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen]

# Define coordinates
left_electrode_coordinates = [[  1.05721411446 ,   2.256315911079,   0.613865557175],
                              [  3.741059114458,   2.256315911079,   0.613865557175],
                              [  6.424904114467,   2.256315911079,   0.613865557175],
                              [  9.108749114465,   2.256315911079,   0.613865557175],
                              [  2.399137975444,   4.940163228088,   0.613865557175],
                              [  5.082982975453,   4.940163228088,   0.613865557175],
                              [  7.766827975451,   4.940163228088,   0.613865557175],
                              [ 10.45067297545 ,   4.940163228088,   0.613865557175],
                              [  1.05721411446 ,   7.624005911086,   0.613865557175],
                              [  3.741059114458,   7.624005911086,   0.613865557175],
                              [  6.424904114467,   7.624005911086,   0.613865557175],
                              [  9.108749114465,   7.624005911086,   0.613865557175],
                              [  2.399137975444,  10.307853228084,   0.613865557175],
                              [  5.082982975453,  10.307853228084,   0.613865557175],
                              [  7.766827975451,  10.307853228084,   0.613865557175],
                              [ 10.45067297545 ,  10.307853228084,   0.613865557175],
                              [  1.05721411446 ,   0.467069000413,   1.841755185725],
                              [  3.741059114458,   0.467069000413,   1.841755185725],
                              [  6.424904114467,   0.467069000413,   1.841755185725],
                              [  9.108749114465,   0.467069000413,   1.841755185725],
                              [  2.399137975444,   3.150931683419,   1.841755185725],
                              [  5.082982975453,   3.150931683419,   1.841755185725],
                              [  7.766827975451,   3.150931683419,   1.841755185725],
                              [ 10.45067297545 ,   3.150931683419,   1.841755185725],
                              [  1.05721411446 ,   5.834779000417,   1.841755185725],
                              [  3.741059114458,   5.834779000417,   1.841755185725],
                              [  6.424904114467,   5.834779000417,   1.841755185725],
                              [  9.108749114465,   5.834779000417,   1.841755185725],
                              [  2.399137975444,   8.518621683415,   1.841755185725],
                              [  5.082982975453,   8.518621683415,   1.841755185725],
                              [  7.766827975451,   8.518621683415,   1.841755185725],
                              [ 10.45067297545 ,   8.518621683415,   1.841755185725],
                              [  2.399137975444,   1.361684772753,   3.069644814275],
                              [  5.082982975453,   1.361684772753,   3.069644814275],
                              [  7.766827975451,   1.361684772753,   3.069644814275],
                              [ 10.45067297545 ,   1.361684772753,   3.069644814275],
                              [  1.05721411446 ,   4.045547455748,   3.069644814275],
                              [  3.741059114458,   4.045547455748,   3.069644814275],
                              [  6.424904114467,   4.045547455748,   3.069644814275],
                              [  9.108749114465,   4.045547455748,   3.069644814275],
                              [  2.399137975444,   6.729394772746,   3.069644814275],
                              [  5.082982975453,   6.729394772746,   3.069644814275],
                              [  7.766827975451,   6.729394772746,   3.069644814275],
                              [ 10.45067297545 ,   6.729394772746,   3.069644814275],
                              [  1.05721411446 ,   9.413237455755,   3.069644814275],
                              [  3.741059114458,   9.413237455755,   3.069644814275],
                              [  6.424904114467,   9.413237455755,   3.069644814275],
                              [  9.108749114465,   9.413237455755,   3.069644814275],
                              [  1.05721411446 ,   2.256315911079,   4.297534442825],
                              [  3.741059114458,   2.256315911079,   4.297534442825],
                              [  6.424904114467,   2.256315911079,   4.297534442825],
                              [  9.108749114465,   2.256315911079,   4.297534442825],
                              [  2.399137975444,   4.940163228088,   4.297534442825],
                              [  5.082982975453,   4.940163228088,   4.297534442825],
                              [  7.766827975451,   4.940163228088,   4.297534442825],
                              [ 10.45067297545 ,   4.940163228088,   4.297534442825],
                              [  1.05721411446 ,   7.624005911086,   4.297534442825],
                              [  3.741059114458,   7.624005911086,   4.297534442825],
                              [  6.424904114467,   7.624005911086,   4.297534442825],
                              [  9.108749114465,   7.624005911086,   4.297534442825],
                              [  2.399137975444,  10.307853228084,   4.297534442825],
                              [  5.082982975453,  10.307853228084,   4.297534442825],
                              [  7.766827975451,  10.307853228084,   4.297534442825],
                              [ 10.45067297545 ,  10.307853228084,   4.297534442825],
                              [  1.05721411446 ,   0.467069000413,   5.525424071375],
                              [  3.741059114458,   0.467069000413,   5.525424071375],
                              [  6.424904114467,   0.467069000413,   5.525424071375],
                              [  9.108749114465,   0.467069000413,   5.525424071375],
                              [  2.399137975444,   3.150931683419,   5.525424071375],
                              [  5.082982975453,   3.150931683419,   5.525424071375],
                              [  7.766827975451,   3.150931683419,   5.525424071375],
                              [ 10.45067297545 ,   3.150931683419,   5.525424071375],
                              [  1.05721411446 ,   5.834779000417,   5.525424071375],
                              [  3.741059114458,   5.834779000417,   5.525424071375],
                              [  6.424904114467,   5.834779000417,   5.525424071375],
                              [  9.108749114465,   5.834779000417,   5.525424071375],
                              [  2.399137975444,   8.518621683415,   5.525424071375],
                              [  5.082982975453,   8.518621683415,   5.525424071375],
                              [  7.766827975451,   8.518621683415,   5.525424071375],
                              [ 10.45067297545 ,   8.518621683415,   5.525424071375],
                              [  2.399137975444,   1.361684772753,   6.753313699925],
                              [  5.082982975453,   1.361684772753,   6.753313699925],
                              [  7.766827975451,   1.361684772753,   6.753313699925],
                              [ 10.45067297545 ,   1.361684772753,   6.753313699925],
                              [  1.05721411446 ,   4.045547455748,   6.753313699925],
                              [  3.741059114458,   4.045547455748,   6.753313699925],
                              [  6.424904114467,   4.045547455748,   6.753313699925],
                              [  9.108749114465,   4.045547455748,   6.753313699925],
                              [  2.399137975444,   6.729394772746,   6.753313699925],
                              [  5.082982975453,   6.729394772746,   6.753313699925],
                              [  7.766827975451,   6.729394772746,   6.753313699925],
                              [ 10.45067297545 ,   6.729394772746,   6.753313699925],
                              [  1.05721411446 ,   9.413237455755,   6.753313699925],
                              [  3.741059114458,   9.413237455755,   6.753313699925],
                              [  6.424904114467,   9.413237455755,   6.753313699925],
                              [  9.108749114465,   9.413237455755,   6.753313699925]]*Angstrom

# Set up configuration
left_electrode = BulkConfiguration(
    bravais_lattice=left_electrode_lattice,
    elements=left_electrode_elements,
    cartesian_coordinates=left_electrode_coordinates
    )

# Add external potential
external_potential = AtomicCompensationCharge([
    ('doping_0', -0.000782388),
    ('doping_1', -0.000782388)
    ])

left_electrode.setExternalPotential(external_potential)

# -------------------------------------------------------------
# Right Electrode
# -------------------------------------------------------------

# Set up lattice
vector_a = [10.7354, 0.0, 0.0]*Angstrom
vector_b = [0.0, 10.7354, 0.0]*Angstrom
vector_c = [0.0, 0.0, 5.430599999890006]*Angstrom
right_electrode_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
right_electrode_elements = [Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                            Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                            Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                            Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                            Silicon, Silicon, Silicon, Silicon]

# Define coordinates
right_electrode_coordinates = [[  5.047173817907,   0.231674013717,   0.67842500019 ],
                               [ 10.414863817904,   0.231674013717,   0.67842500019 ],
                               [  2.363328817909,   2.915519013715,   0.67842500019 ],
                               [  7.731018817906,   2.915519013715,   0.67842500019 ],
                               [  5.047173817907,   5.599364013724,   0.67842500019 ],
                               [ 10.414863817904,   5.599364013724,   0.67842500019 ],
                               [  2.363328817909,   8.283209013722,   0.67842500019 ],
                               [  7.731018817906,   8.283209013722,   0.67842500019 ],
                               [  1.021406317905,   1.573596513722,   2.03607500013 ],
                               [  6.389096317912,   1.573596513722,   2.03607500013 ],
                               [  3.705251317903,   4.25744151372 ,   2.03607500013 ],
                               [  9.07294131791 ,   4.25744151372 ,   2.03607500013 ],
                               [  1.021406317905,   6.941286513718,   2.03607500013 ],
                               [  6.389096317912,   6.941286513718,   2.03607500013 ],
                               [  3.705251317903,   9.625131513716,   2.03607500013 ],
                               [  9.07294131791 ,   9.625131513716,   2.03607500013 ],
                               [  2.363328817909,   0.231674013717,   3.3937250002  ],
                               [  7.731018817906,   0.231674013717,   3.3937250002  ],
                               [  5.047173817907,   2.915519013715,   3.3937250002  ],
                               [ 10.414863817904,   2.915519013715,   3.3937250002  ],
                               [  2.363328817909,   5.599364013724,   3.3937250002  ],
                               [  7.731018817906,   5.599364013724,   3.3937250002  ],
                               [  5.047173817907,   8.283209013722,   3.3937250002  ],
                               [ 10.414863817904,   8.283209013722,   3.3937250002  ],
                               [  3.705251317903,   1.573596513722,   4.75137500014 ],
                               [  9.07294131791 ,   1.573596513722,   4.75137500014 ],
                               [  1.021406317905,   4.25744151372 ,   4.75137500014 ],
                               [  6.389096317912,   4.25744151372 ,   4.75137500014 ],
                               [  3.705251317903,   6.941286513718,   4.75137500014 ],
                               [  9.07294131791 ,   6.941286513718,   4.75137500014 ],
                               [  1.021406317905,   9.625131513716,   4.75137500014 ],
                               [  6.389096317912,   9.625131513716,   4.75137500014 ]]*Angstrom

# Set up configuration
right_electrode = BulkConfiguration(
    bravais_lattice=right_electrode_lattice,
    elements=right_electrode_elements,
    cartesian_coordinates=right_electrode_coordinates
    )

# Add external potential
external_potential = AtomicCompensationCharge([
    ('doping_0', -0.000782388),
    ('doping_1', -0.000782388)
    ])

right_electrode.setExternalPotential(external_potential)

# -------------------------------------------------------------
# Central Region
# -------------------------------------------------------------

# Set up lattice
vector_a = [10.7354, 0.0, 0.0]*Angstrom
vector_b = [0.0, 10.7354, 0.0]*Angstrom
vector_c = [0.0, 0.0, 108.52404442891502]*Angstrom
central_region_lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
central_region_elements = [Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Titanium, Titanium,
                           Titanium, Titanium, Titanium, Titanium, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen, Nitrogen,
                           Nitrogen, Nitrogen, Nitrogen, Nitrogen, Hafnium, Hafnium, Hafnium,
                           Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Hafnium, Hafnium,
                           Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Hafnium,
                           Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Hafnium,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
                           Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Hafnium,
                           Hafnium, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Hafnium, Hafnium, Hafnium,
                           Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Hafnium, Hafnium,
                           Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Hafnium, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Silicon,
                           Silicon, Silicon, Silicon, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Silicon, Silicon, Silicon, Silicon, Oxygen,
                           Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen, Silicon,
                           Silicon, Silicon, Silicon, Oxygen, Oxygen, Oxygen, Oxygen, Oxygen,
                           Oxygen, Oxygen, Oxygen, Silicon, Silicon, Silicon, Silicon, Oxygen,
                           Oxygen, Oxygen, Oxygen, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon, Silicon, Silicon, Silicon, Silicon, Silicon, Silicon,
                           Silicon]

# Define coordinates
central_region_coordinates = [[   1.05721411446 ,    2.256315911079,    0.613865557175],
                              [   3.741059114458,    2.256315911079,    0.613865557175],
                              [   6.424904114467,    2.256315911079,    0.613865557175],
                              [   9.108749114465,    2.256315911079,    0.613865557175],
                              [   2.399137975444,    4.940163228088,    0.613865557175],
                              [   5.082982975453,    4.940163228088,    0.613865557175],
                              [   7.766827975451,    4.940163228088,    0.613865557175],
                              [  10.45067297545 ,    4.940163228088,    0.613865557175],
                              [   1.05721411446 ,    7.624005911086,    0.613865557175],
                              [   3.741059114458,    7.624005911086,    0.613865557175],
                              [   6.424904114467,    7.624005911086,    0.613865557175],
                              [   9.108749114465,    7.624005911086,    0.613865557175],
                              [   2.399137975444,   10.307853228084,    0.613865557175],
                              [   5.082982975453,   10.307853228084,    0.613865557175],
                              [   7.766827975451,   10.307853228084,    0.613865557175],
                              [  10.45067297545 ,   10.307853228084,    0.613865557175],
                              [   1.05721411446 ,    0.467069000413,    1.841755185725],
                              [   3.741059114458,    0.467069000413,    1.841755185725],
                              [   6.424904114467,    0.467069000413,    1.841755185725],
                              [   9.108749114465,    0.467069000413,    1.841755185725],
                              [   2.399137975444,    3.150931683419,    1.841755185725],
                              [   5.082982975453,    3.150931683419,    1.841755185725],
                              [   7.766827975451,    3.150931683419,    1.841755185725],
                              [  10.45067297545 ,    3.150931683419,    1.841755185725],
                              [   1.05721411446 ,    5.834779000417,    1.841755185725],
                              [   3.741059114458,    5.834779000417,    1.841755185725],
                              [   6.424904114467,    5.834779000417,    1.841755185725],
                              [   9.108749114465,    5.834779000417,    1.841755185725],
                              [   2.399137975444,    8.518621683415,    1.841755185725],
                              [   5.082982975453,    8.518621683415,    1.841755185725],
                              [   7.766827975451,    8.518621683415,    1.841755185725],
                              [  10.45067297545 ,    8.518621683415,    1.841755185725],
                              [   2.399137975444,    1.361684772753,    3.069644814275],
                              [   5.082982975453,    1.361684772753,    3.069644814275],
                              [   7.766827975451,    1.361684772753,    3.069644814275],
                              [  10.45067297545 ,    1.361684772753,    3.069644814275],
                              [   1.05721411446 ,    4.045547455748,    3.069644814275],
                              [   3.741059114458,    4.045547455748,    3.069644814275],
                              [   6.424904114467,    4.045547455748,    3.069644814275],
                              [   9.108749114465,    4.045547455748,    3.069644814275],
                              [   2.399137975444,    6.729394772746,    3.069644814275],
                              [   5.082982975453,    6.729394772746,    3.069644814275],
                              [   7.766827975451,    6.729394772746,    3.069644814275],
                              [  10.45067297545 ,    6.729394772746,    3.069644814275],
                              [   1.05721411446 ,    9.413237455755,    3.069644814275],
                              [   3.741059114458,    9.413237455755,    3.069644814275],
                              [   6.424904114467,    9.413237455755,    3.069644814275],
                              [   9.108749114465,    9.413237455755,    3.069644814275],
                              [   1.05721411446 ,    2.256315911079,    4.297534442825],
                              [   3.741059114458,    2.256315911079,    4.297534442825],
                              [   6.424904114467,    2.256315911079,    4.297534442825],
                              [   9.108749114465,    2.256315911079,    4.297534442825],
                              [   2.399137975444,    4.940163228088,    4.297534442825],
                              [   5.082982975453,    4.940163228088,    4.297534442825],
                              [   7.766827975451,    4.940163228088,    4.297534442825],
                              [  10.45067297545 ,    4.940163228088,    4.297534442825],
                              [   1.05721411446 ,    7.624005911086,    4.297534442825],
                              [   3.741059114458,    7.624005911086,    4.297534442825],
                              [   6.424904114467,    7.624005911086,    4.297534442825],
                              [   9.108749114465,    7.624005911086,    4.297534442825],
                              [   2.399137975444,   10.307853228084,    4.297534442825],
                              [   5.082982975453,   10.307853228084,    4.297534442825],
                              [   7.766827975451,   10.307853228084,    4.297534442825],
                              [  10.45067297545 ,   10.307853228084,    4.297534442825],
                              [   1.05721411446 ,    0.467069000413,    5.525424071375],
                              [   3.741059114458,    0.467069000413,    5.525424071375],
                              [   6.424904114467,    0.467069000413,    5.525424071375],
                              [   9.108749114465,    0.467069000413,    5.525424071375],
                              [   2.399137975444,    3.150931683419,    5.525424071375],
                              [   5.082982975453,    3.150931683419,    5.525424071375],
                              [   7.766827975451,    3.150931683419,    5.525424071375],
                              [  10.45067297545 ,    3.150931683419,    5.525424071375],
                              [   1.05721411446 ,    5.834779000417,    5.525424071375],
                              [   3.741059114458,    5.834779000417,    5.525424071375],
                              [   6.424904114467,    5.834779000417,    5.525424071375],
                              [   9.108749114465,    5.834779000417,    5.525424071375],
                              [   2.399137975444,    8.518621683415,    5.525424071375],
                              [   5.082982975453,    8.518621683415,    5.525424071375],
                              [   7.766827975451,    8.518621683415,    5.525424071375],
                              [  10.45067297545 ,    8.518621683415,    5.525424071375],
                              [   2.399137975444,    1.361684772753,    6.753313699925],
                              [   5.082982975453,    1.361684772753,    6.753313699925],
                              [   7.766827975451,    1.361684772753,    6.753313699925],
                              [  10.45067297545 ,    1.361684772753,    6.753313699925],
                              [   1.05721411446 ,    4.045547455748,    6.753313699925],
                              [   3.741059114458,    4.045547455748,    6.753313699925],
                              [   6.424904114467,    4.045547455748,    6.753313699925],
                              [   9.108749114465,    4.045547455748,    6.753313699925],
                              [   2.399137975444,    6.729394772746,    6.753313699925],
                              [   5.082982975453,    6.729394772746,    6.753313699925],
                              [   7.766827975451,    6.729394772746,    6.753313699925],
                              [  10.45067297545 ,    6.729394772746,    6.753313699925],
                              [   1.05721411446 ,    9.413237455755,    6.753313699925],
                              [   3.741059114458,    9.413237455755,    6.753313699925],
                              [   6.424904114467,    9.413237455755,    6.753313699925],
                              [   9.108749114465,    9.413237455755,    6.753313699925],
                              [   1.05721411446 ,    2.256315911079,    7.981203328475],
                              [   3.741059114458,    2.256315911079,    7.981203328475],
                              [   6.424904114467,    2.256315911079,    7.981203328475],
                              [   9.108749114465,    2.256315911079,    7.981203328475],
                              [   2.399137975444,    4.940163228088,    7.981203328475],
                              [   5.082982975453,    4.940163228088,    7.981203328475],
                              [   7.766827975451,    4.940163228088,    7.981203328475],
                              [  10.45067297545 ,    4.940163228088,    7.981203328475],
                              [   1.05721411446 ,    7.624005911086,    7.981203328475],
                              [   3.741059114458,    7.624005911086,    7.981203328475],
                              [   6.424904114467,    7.624005911086,    7.981203328475],
                              [   9.108749114465,    7.624005911086,    7.981203328475],
                              [   2.399137975444,   10.307853228084,    7.981203328475],
                              [   5.082982975453,   10.307853228084,    7.981203328475],
                              [   7.766827975451,   10.307853228084,    7.981203328475],
                              [  10.45067297545 ,   10.307853228084,    7.981203328475],
                              [   1.05721411446 ,    0.467069000413,    9.209092957025],
                              [   3.741059114458,    0.467069000413,    9.209092957025],
                              [   6.424904114467,    0.467069000413,    9.209092957025],
                              [   9.108749114465,    0.467069000413,    9.209092957025],
                              [   2.399137975444,    3.150931683419,    9.209092957025],
                              [   5.082982975453,    3.150931683419,    9.209092957025],
                              [   7.766827975451,    3.150931683419,    9.209092957025],
                              [  10.45067297545 ,    3.150931683419,    9.209092957025],
                              [   1.05721411446 ,    5.834779000417,    9.209092957025],
                              [   3.741059114458,    5.834779000417,    9.209092957025],
                              [   6.424904114467,    5.834779000417,    9.209092957025],
                              [   9.108749114465,    5.834779000417,    9.209092957025],
                              [   2.399137975444,    8.518621683415,    9.209092957025],
                              [   5.082982975453,    8.518621683415,    9.209092957025],
                              [   7.766827975451,    8.518621683415,    9.209092957025],
                              [  10.45067297545 ,    8.518621683415,    9.209092957025],
                              [   2.399137975444,    1.361684772753,   10.436982585575],
                              [   5.082982975453,    1.361684772753,   10.436982585575],
                              [   7.766827975451,    1.361684772753,   10.436982585575],
                              [  10.45067297545 ,    1.361684772753,   10.436982585575],
                              [   1.05721411446 ,    4.045547455748,   10.436982585575],
                              [   3.741059114458,    4.045547455748,   10.436982585575],
                              [   6.424904114467,    4.045547455748,   10.436982585575],
                              [   9.108749114465,    4.045547455748,   10.436982585575],
                              [   2.399137975444,    6.729394772746,   10.436982585575],
                              [   5.082982975453,    6.729394772746,   10.436982585575],
                              [   7.766827975451,    6.729394772746,   10.436982585575],
                              [  10.45067297545 ,    6.729394772746,   10.436982585575],
                              [   1.05721411446 ,    9.413237455755,   10.436982585575],
                              [   3.741059114458,    9.413237455755,   10.436982585575],
                              [   6.424904114467,    9.413237455755,   10.436982585575],
                              [   9.108749114465,    9.413237455755,   10.436982585575],
                              [   1.05721411446 ,    2.256315911079,   11.664872214125],
                              [   3.741059114458,    2.256315911079,   11.664872214125],
                              [   6.424904114467,    2.256315911079,   11.664872214125],
                              [   9.108749114465,    2.256315911079,   11.664872214125],
                              [   2.399137975444,    4.940163228088,   11.664872214125],
                              [   5.082982975453,    4.940163228088,   11.664872214125],
                              [   7.766827975451,    4.940163228088,   11.664872214125],
                              [  10.45067297545 ,    4.940163228088,   11.664872214125],
                              [   1.05721411446 ,    7.624005911086,   11.664872214125],
                              [   3.741059114458,    7.624005911086,   11.664872214125],
                              [   6.424904114467,    7.624005911086,   11.664872214125],
                              [   9.108749114465,    7.624005911086,   11.664872214125],
                              [   2.399137975444,   10.307853228084,   11.664872214125],
                              [   5.082982975453,   10.307853228084,   11.664872214125],
                              [   7.766827975451,   10.307853228084,   11.664872214125],
                              [  10.45067297545 ,   10.307853228084,   11.664872214125],
                              [   1.05721411446 ,    0.467069000413,   12.892761842675],
                              [   3.741059114458,    0.467069000413,   12.892761842675],
                              [   6.424904114467,    0.467069000413,   12.892761842675],
                              [   9.108749114465,    0.467069000413,   12.892761842675],
                              [   2.399137975444,    3.150931683419,   12.892761842675],
                              [   5.082982975453,    3.150931683419,   12.892761842675],
                              [   7.766827975451,    3.150931683419,   12.892761842675],
                              [  10.45067297545 ,    3.150931683419,   12.892761842675],
                              [   1.05721411446 ,    5.834779000417,   12.892761842675],
                              [   3.741059114458,    5.834779000417,   12.892761842675],
                              [   6.424904114467,    5.834779000417,   12.892761842675],
                              [   9.108749114465,    5.834779000417,   12.892761842675],
                              [   2.399137975444,    8.518621683415,   12.892761842675],
                              [   5.082982975453,    8.518621683415,   12.892761842675],
                              [   7.766827975451,    8.518621683415,   12.892761842675],
                              [  10.45067297545 ,    8.518621683415,   12.892761842675],
                              [   2.399137975444,    1.361684772753,   14.120651471225],
                              [   5.082982975453,    1.361684772753,   14.120651471225],
                              [   7.766827975451,    1.361684772753,   14.120651471225],
                              [  10.45067297545 ,    1.361684772753,   14.120651471225],
                              [   1.05721411446 ,    4.045547455748,   14.120651471225],
                              [   3.741059114458,    4.045547455748,   14.120651471225],
                              [   6.424904114467,    4.045547455748,   14.120651471225],
                              [   9.108749114465,    4.045547455748,   14.120651471225],
                              [   2.399137975444,    6.729394772746,   14.120651471225],
                              [   5.082982975453,    6.729394772746,   14.120651471225],
                              [   7.766827975451,    6.729394772746,   14.120651471225],
                              [  10.45067297545 ,    6.729394772746,   14.120651471225],
                              [   1.05721411446 ,    9.413237455755,   14.120651471225],
                              [   3.741059114458,    9.413237455755,   14.120651471225],
                              [   6.424904114467,    9.413237455755,   14.120651471225],
                              [   9.108749114465,    9.413237455755,   14.120651471225],
                              [   1.05721411446 ,    2.256315911079,   15.348541099775],
                              [   3.741059114458,    2.256315911079,   15.348541099775],
                              [   6.424904114467,    2.256315911079,   15.348541099775],
                              [   9.108749114465,    2.256315911079,   15.348541099775],
                              [   2.399137975444,    4.940163228088,   15.348541099775],
                              [   5.082982975453,    4.940163228088,   15.348541099775],
                              [   7.766827975451,    4.940163228088,   15.348541099775],
                              [  10.45067297545 ,    4.940163228088,   15.348541099775],
                              [   1.05721411446 ,    7.624005911086,   15.348541099775],
                              [   3.741059114458,    7.624005911086,   15.348541099775],
                              [   6.424904114467,    7.624005911086,   15.348541099775],
                              [   9.108749114465,    7.624005911086,   15.348541099775],
                              [   2.399137975444,   10.307853228084,   15.348541099775],
                              [   5.082982975453,   10.307853228084,   15.348541099775],
                              [   7.766827975451,   10.307853228084,   15.348541099775],
                              [  10.45067297545 ,   10.307853228084,   15.348541099775],
                              [   1.05721411446 ,    0.467069000413,   16.576430728325],
                              [   3.741059114458,    0.467069000413,   16.576430728325],
                              [   6.424904114467,    0.467069000413,   16.576430728325],
                              [   9.108749114465,    0.467069000413,   16.576430728325],
                              [   2.399137975444,    3.150931683419,   16.576430728325],
                              [   5.082982975453,    3.150931683419,   16.576430728325],
                              [   7.766827975451,    3.150931683419,   16.576430728325],
                              [  10.45067297545 ,    3.150931683419,   16.576430728325],
                              [   1.05721411446 ,    5.834779000417,   16.576430728325],
                              [   3.741059114458,    5.834779000417,   16.576430728325],
                              [   6.424904114467,    5.834779000417,   16.576430728325],
                              [   9.108749114465,    5.834779000417,   16.576430728325],
                              [   2.399137975444,    8.518621683415,   16.576430728325],
                              [   5.082982975453,    8.518621683415,   16.576430728325],
                              [   7.766827975451,    8.518621683415,   16.576430728325],
                              [  10.45067297545 ,    8.518621683415,   16.576430728325],
                              [   2.399137975444,    1.361684772753,   17.804320356875],
                              [   5.082982975453,    1.361684772753,   17.804320356875],
                              [   7.766827975451,    1.361684772753,   17.804320356875],
                              [  10.45067297545 ,    1.361684772753,   17.804320356875],
                              [   1.05721411446 ,    4.045547455748,   17.804320356875],
                              [   3.741059114458,    4.045547455748,   17.804320356875],
                              [   6.424904114467,    4.045547455748,   17.804320356875],
                              [   9.108749114465,    4.045547455748,   17.804320356875],
                              [   2.399137975444,    6.729394772746,   17.804320356875],
                              [   5.082982975453,    6.729394772746,   17.804320356875],
                              [   7.766827975451,    6.729394772746,   17.804320356875],
                              [  10.45067297545 ,    6.729394772746,   17.804320356875],
                              [   1.05721411446 ,    9.413237455755,   17.804320356875],
                              [   3.741059114458,    9.413237455755,   17.804320356875],
                              [   6.424904114467,    9.413237455755,   17.804320356875],
                              [   9.108749114465,    9.413237455755,   17.804320356875],
                              [   1.05721411446 ,    2.256315911079,   19.032209985425],
                              [   3.741059114458,    2.256315911079,   19.032209985425],
                              [   6.424904114467,    2.256315911079,   19.032209985425],
                              [   9.108749114465,    2.256315911079,   19.032209985425],
                              [   2.399137975444,    4.940163228088,   19.032209985425],
                              [   5.082982975453,    4.940163228088,   19.032209985425],
                              [   7.766827975451,    4.940163228088,   19.032209985425],
                              [  10.45067297545 ,    4.940163228088,   19.032209985425],
                              [   1.05721411446 ,    7.624005911086,   19.032209985425],
                              [   3.741059114458,    7.624005911086,   19.032209985425],
                              [   6.424904114467,    7.624005911086,   19.032209985425],
                              [   9.108749114465,    7.624005911086,   19.032209985425],
                              [   2.399137975444,   10.307853228084,   19.032209985425],
                              [   5.082982975453,   10.307853228084,   19.032209985425],
                              [   7.766827975451,   10.307853228084,   19.032209985425],
                              [  10.45067297545 ,   10.307853228084,   19.032209985425],
                              [   1.05721411446 ,    0.467069000413,   20.260099613975],
                              [   3.741059114458,    0.467069000413,   20.260099613975],
                              [   6.424904114467,    0.467069000413,   20.260099613975],
                              [   9.108749114465,    0.467069000413,   20.260099613975],
                              [   2.399137975444,    3.150931683419,   20.260099613975],
                              [   5.082982975453,    3.150931683419,   20.260099613975],
                              [   7.766827975451,    3.150931683419,   20.260099613975],
                              [  10.45067297545 ,    3.150931683419,   20.260099613975],
                              [   1.05721411446 ,    5.834779000417,   20.260099613975],
                              [   3.741059114458,    5.834779000417,   20.260099613975],
                              [   6.424904114467,    5.834779000417,   20.260099613975],
                              [   9.108749114465,    5.834779000417,   20.260099613975],
                              [   2.399137975444,    8.518621683415,   20.260099613975],
                              [   5.082982975453,    8.518621683415,   20.260099613975],
                              [   7.766827975451,    8.518621683415,   20.260099613975],
                              [  10.45067297545 ,    8.518621683415,   20.260099613975],
                              [   2.399137975444,    1.361684772753,   21.487989242525],
                              [   5.082982975453,    1.361684772753,   21.487989242525],
                              [   7.766827975451,    1.361684772753,   21.487989242525],
                              [  10.45067297545 ,    1.361684772753,   21.487989242525],
                              [   1.05721411446 ,    4.045547455748,   21.487989242525],
                              [   3.741059114458,    4.045547455748,   21.487989242525],
                              [   6.424904114467,    4.045547455748,   21.487989242525],
                              [   9.108749114465,    4.045547455748,   21.487989242525],
                              [   2.399137975444,    6.729394772746,   21.487989242525],
                              [   5.082982975453,    6.729394772746,   21.487989242525],
                              [   7.766827975451,    6.729394772746,   21.487989242525],
                              [  10.45067297545 ,    6.729394772746,   21.487989242525],
                              [   1.05721411446 ,    9.413237455755,   21.487989242525],
                              [   3.741059114458,    9.413237455755,   21.487989242525],
                              [   6.424904114467,    9.413237455755,   21.487989242525],
                              [   9.108749114465,    9.413237455755,   21.487989242525],
                              [   9.108661803145,    2.306207204304,   22.742146339835],
                              [   3.740967533412,    2.306206402595,   22.742147002835],
                              [   9.108661453751,    7.67390818392 ,   22.742152656925],
                              [   3.740965881309,    7.673906291698,   22.742153019755],
                              [   1.057608697629,    2.306695902234,   22.742502413605],
                              [   6.425304019496,    2.306697150912,   22.742503871685],
                              [   1.057602020694,    7.67440343534 ,   22.742504120375],
                              [   6.425307023422,    7.674390921964,   22.742506085195],
                              [  10.450240285732,    4.991229278228,   22.743572451275],
                              [  10.450236786668,   10.358929377852,   22.743574830665],
                              [   5.082541793627,    4.991231604718,   22.743576737635],
                              [   5.082541241419,   10.358925006483,   22.743578811135],
                              [   7.766332839866,    4.991371935333,   22.743813458405],
                              [   2.398635977298,    4.991371701054,   22.743814709005],
                              [   7.76633064875 ,   10.359065318215,   22.743814721615],
                              [   2.398634993087,   10.359068960811,   22.743815206125],
                              [  10.451018064024,    3.272533726224,   23.984330476535],
                              [   5.08331733524 ,    3.27253668782 ,   23.984334162685],
                              [  10.451015078681,    8.640234437723,   23.984336265825],
                              [   5.083316023589,    8.640232445125,   23.984336993175],
                              [   2.399989564313,    3.272864251873,   23.984766955565],
                              [   7.767690630467,    3.272864995289,   23.984768267265],
                              [   2.399988724515,    8.640565023008,   23.984768855125],
                              [   7.767689582499,    8.640564779164,   23.984772657105],
                              [   9.109364086143,    0.590076923011,   23.985388947845],
                              [   9.109364752908,    5.957776968679,   23.985391097915],
                              [   3.741664385907,    0.590076304394,   23.985391955265],
                              [   3.741664432928,    5.957777084267,   23.985393953235],
                              [   1.057608015523,    0.58266614528 ,   23.991738734665],
                              [   1.057607341426,    5.950365722337,   23.991739613985],
                              [   6.425309338994,    0.582667746207,   23.991741036445],
                              [   6.425309204125,    5.950368171114,   23.991743355515],
                              [   9.109890124114,    4.235824318366,   25.221799508425],
                              [   3.742187119254,    4.235823211009,   25.221801728305],
                              [   3.7421880599  ,    9.603527699705,   25.221802357505],
                              [   9.109890304071,    9.603524746375,   25.221804196095],
                              [   2.399841377822,    1.554655507039,   25.222755103195],
                              [   2.399840229574,    6.922355060102,   25.222755818195],
                              [   7.767543346361,    1.554655911989,   25.222756262665],
                              [   7.767542003191,    6.922358182676,   25.222758333305],
                              [  10.452741052428,    6.922892029684,   25.223066403925],
                              [  10.452742825626,    1.555192087892,   25.223066407175],
                              [   5.085041629112,    1.555193338007,   25.223068280995],
                              [   5.08504156747 ,    6.922895129864,   25.223069831375],
                              [   1.058202965358,    4.221582622308,   25.232548610555],
                              [   6.425902911327,    4.221585748048,   25.232549228835],
                              [   6.425900979245,    9.589285773062,   25.232549547595],
                              [   1.058201687309,    9.589283211671,   25.232550009615],
                              [  10.450127805192,    5.171998227502,   26.478593738675],
                              [   5.082427137977,    5.17200069659 ,   26.478594945205],
                              [  10.450127118127,   10.539700537373,   26.478595135785],
                              [   5.082426928765,   10.539701665921,   26.478595661375],
                              [   2.403875861131,    5.170884179574,   26.479604452535],
                              [   7.771575671823,    5.170884498941,   26.479607017825],
                              [   7.771574636115,   10.538586313374,   26.479607179805],
                              [   2.403874538519,   10.53858573859 ,   26.479607581245],
                              [   1.060731045756,    7.866848920921,   26.485134306475],
                              [   1.060732669056,    2.499148909509,   26.485134574405],
                              [   6.428432339018,    2.499151122451,   26.485137227185],
                              [   6.428433107318,    7.866851524449,   26.485139535205],
                              [   3.743405271576,    2.476731633081,   26.494572846625],
                              [   3.743406238352,    7.844430260088,   26.494573197625],
                              [   9.111108389147,    2.476729558927,   26.494573332565],
                              [   9.111107954019,    7.844431400724,   26.494573951105],
                              [   1.062171557338,    6.12934314267 ,   27.704255219225],
                              [   1.062171028555,    0.761643268768,   27.704255653035],
                              [   6.429870937315,    0.76164270065 ,   27.704258741965],
                              [   6.429870373341,    6.129342596452,   27.704259109215],
                              [  10.441681089939,    3.445661500634,   27.737634036775],
                              [  10.441681377207,    8.813363704558,   27.737634288585],
                              [   5.073979323117,    3.445663404815,   27.737636826445],
                              [   5.073980321305,    8.813363348486,   27.737636901975],
                              [   2.417027707057,    3.443867480296,   27.739845864705],
                              [   2.417031660905,    8.8115628081  ,   27.739847542615],
                              [   7.784733324055,    8.811569251315,   27.739849256535],
                              [   7.784732968198,    3.443866417663,   27.739849955415],
                              [   9.113091831774,    6.081596643062,   27.761856287295],
                              [   3.745391201477,    6.081596132927,   27.761856466305],
                              [   9.113090459715,    0.713897223386,   27.761857750445],
                              [   3.745392045688,    0.713899398743,   27.761858007585],
                              [   1.057642810114,    9.783337161321,   28.940748809505],
                              [   1.057639812887,    4.415639251203,   28.940750277465],
                              [   6.425341747889,    9.783337890115,   28.940752295455],
                              [   6.42534277108 ,    4.415636984252,   28.940753575825],
                              [  10.461800446192,    7.088964962565,   28.966912364715],
                              [   5.094097467537,    7.08896463666 ,   28.966915621345],
                              [  10.461799362293,    1.721263766706,   28.966916365725],
                              [   5.094099494574,    1.721264379837,   28.966918449625],
                              [   2.402756007918,    7.084871563359,   28.972750943695],
                              [   7.770455729613,    1.717172634258,   28.972751045355],
                              [   7.770457108339,    7.08487318069 ,   28.972751138695],
                              [   2.402755446446,    1.717171958411,   28.972751675595],
                              [   3.745266489355,    9.742686593427,   29.062414137705],
                              [   9.112967907974,    4.374986451612,   29.062414945915],
                              [   9.11296776076 ,    9.742686937776,   29.062416360055],
                              [   3.745267117172,    4.374986091161,   29.062417179835],
                              [   1.069794636912,    8.09284008016 ,   30.181860001345],
                              [   6.437495891483,    8.0928419182  ,   30.181860898735],
                              [   1.069795276677,    2.725141983814,   30.181860927855],
                              [   6.437496115015,    2.725140530542,   30.181864008205],
                              [   2.380797873748,    5.39249982418 ,   30.196721038445],
                              [   2.380798550067,   10.760199034967,   30.196721914255],
                              [   7.748497510784,   10.760202461631,   30.196723040575],
                              [   7.748499377552,    5.39250241037 ,   30.196724582375],
                              [  10.462397374207,   10.770851610272,   30.209033174385],
                              [  10.462396944394,    5.403151746128,   30.209034255335],
                              [   5.094697825244,   10.770851008799,   30.209034513515],
                              [   5.094699381147,    5.403151652397,   30.209035435995],
                              [   9.119371435255,    7.964755540096,   30.222090922855],
                              [   9.119370489595,    2.597056609599,   30.222091707405],
                              [   3.751670968619,    2.597056109051,   30.222092345315],
                              [   3.751670986204,    7.96475702331 ,   30.222092417205],
                              [   1.042152736398,    9.789689930976,   31.409741768665],
                              [   1.042153946814,    4.421991231612,   31.409742999245],
                              [   6.409854558571,    9.789694252286,   31.409743493895],
                              [   6.40985565122 ,    4.421993918908,   31.409746873375],
                              [   5.12772592546 ,    7.191473995664,   31.552420697265],
                              [  -0.239976699055,    7.191472107651,   31.552421191395],
                              [  -0.239975749155,    1.823773234364,   31.552421459975],
                              [   5.127724178865,    1.823775821251,   31.552424205705],
                              [   7.745253974119,    7.18156855545 ,   31.606991184275],
                              [   2.377552737616,    7.181569035892,   31.606992047345],
                              [   2.377553226957,    1.813867877231,   31.606992465685],
                              [   7.745253247783,    1.81387159929 ,   31.606993114775],
                              [   3.716186117888,    5.961907330136,   32.874582939705],
                              [   9.083887483549,   11.329609706546,   32.874584721615],
                              [   3.716188942705,   11.329609965677,   32.874585205345],
                              [   9.08388623966 ,    5.961909147511,   32.874586769895],
                              [   1.05292417856 ,    3.02436924111 ,   32.971741430355],
                              [   6.420619008413,    8.392072625874,   32.971741555415],
                              [   1.052922205244,    8.392071940108,   32.971741992085],
                              [   6.420619729252,    3.024371239956,   32.971742472565],
                              [   8.143811903343,    9.548289653168,   33.376379336755],
                              [   8.143812239232,    4.180589006467,   33.376383956305],
                              [   2.776107695044,    9.548293845299,   33.376389571655],
                              [   2.776104291343,    4.180596898017,   33.376392188295],
                              [   5.211482245307,    9.995062607222,   34.035057084405],
                              [  -0.156217548251,    4.627362508628,   34.035063380695],
                              [  -0.156218686257,    9.995066780652,   34.035064026145],
                              [   5.211479541801,    4.627359713624,   34.035066395525],
                              [  -0.404791558043,    7.287642708298,   34.093095145135],
                              [  -0.40478954246 ,    1.919941307597,   34.093097016355],
                              [   4.962909383495,    7.287636462797,   34.093097449645],
                              [   4.962909235035,    1.919939852188,   34.093098937105],
                              [   2.227630714248,    7.16102361917 ,   34.397343513455],
                              [   2.227634901237,    1.793320470509,   34.397343704945],
                              [   7.595332702777,    7.161027890743,   34.397344945275],
                              [   7.595329216531,    1.793335037771,   34.397348047205],
                              [   3.688295053121,    8.743241945826,   35.108239031515],
                              [   9.056000526393,    3.375543826507,   35.108240318125],
                              [   9.055994440494,    8.743244656536,   35.108243045395],
                              [   3.688289343101,    3.375543812787,   35.108246085835],
                              [   0.65679482007 ,    6.02930015241 ,   35.536754225765],
                              [   0.656798882313,    0.661595131067,   35.536756349445],
                              [   6.024508215788,    6.029292931705,   35.536760268815],
                              [   6.02450452572 ,    0.661603035273,   35.536760955735],
                              [   7.707818389388,   10.159191190392,   35.880556867675],
                              [   7.707816979315,    4.791478101588,   35.880561654925],
                              [   2.340101123   ,   10.159170717264,   35.880563865315],
                              [   2.340092712276,    4.791467406102,   35.880569828415],
                              [   4.340166003236,    7.172287563513,   36.535296389085],
                              [   4.340158332417,    1.804595717543,   36.535297115915],
                              [   9.707852988056,    7.172284029849,   36.535297411145],
                              [   9.707859676554,    1.804584911139,   36.535302293685],
                              [   4.850556885903,    9.818259259002,   36.632517030005],
                              [   4.850553676233,    4.450554663221,   36.632529329175],
                              [  -0.517143905124,    4.450560869549,   36.632529330865],
                              [  -0.517142524036,    9.818256039016,   36.632531491725],
                              [   1.401082731223,    1.389843581714,   37.389383441085],
                              [   1.40107592747 ,    6.757542507905,   37.389384545305],
                              [   6.76878291555 ,    6.757534705621,   37.389393863575],
                              [   6.768777326754,    1.389833930546,   37.389405915095],
                              [   3.16957774482 ,    5.588654826801,   37.677272267895],
                              [   3.169576898248,   10.956354265726,   37.677273662015],
                              [   8.537275517901,   10.956354084384,   37.677286301915],
                              [   8.537272440942,    5.588642871785,   37.677287581375],
                              [   0.127853846849,    2.94976506752 ,   38.102335721775],
                              [   0.127852792762,    8.317466029058,   38.102337142675],
                              [   5.49555342483 ,    8.317460786329,   38.102343427395],
                              [   5.495554835569,    2.949759993573,   38.102356507865],
                              [   7.316501317781,    9.341376286678,   38.358587919535],
                              [   1.948797976527,    3.973683316926,   38.358593570115],
                              [   1.948791811144,    9.341387699106,   38.358603123685],
                              [   7.316497508388,    3.973676707183,   38.358610296825],
                              [   3.884317131802,    1.768809093355,   39.065524547465],
                              [   9.25200965846 ,    7.136510479231,   39.065529560785],
                              [   3.884304157437,    7.136499733106,   39.065530234055],
                              [   9.252004865426,    1.768813971038,   39.065535108795],
                              [   4.362048674952,    9.894414549164,   39.142892556755],
                              [   9.729766327836,    9.894427871838,   39.142892955985],
                              [   9.729765298848,    4.526713411824,   39.142893327135],
                              [   4.362056888639,    4.526727348939,   39.142899616795],
                              [   6.126706705778,    7.848538951539,   40.161648221695],
                              [   0.759004448006,    7.848552331261,   40.161661656805],
                              [   0.759002788195,    2.480856556124,   40.161665608675],
                              [   6.126707515507,    2.480839663693,   40.161668299415],
                              [   2.678821337502,    8.74592498906 ,   40.284470834465],
                              [   8.04651243516 ,    8.745919951753,   40.284473031985],
                              [   2.678821336095,    3.378230064081,   40.284474742655],
                              [   8.046516604285,    3.378212680506,   40.284475375755],
                              [  -0.210733060436,    5.991310660943,   40.521949355095],
                              [  -0.210738035435,    0.623613229914,   40.521951618915],
                              [   5.15698389995 ,    0.623604719726,   40.521970541455],
                              [   5.156968174231,    5.991302838862,   40.521973892855],
                              [   7.124035021723,    5.283726338738,   40.628606423665],
                              [   7.124054115824,   10.651418394188,   40.628607858215],
                              [   1.756344494393,   10.651429772649,   40.628617166605],
                              [   1.756353365763,    5.283738973413,   40.628629861105],
                              [   3.626381387562,    1.843675889483,   41.560541888515],
                              [   8.994070602693,    1.843679632187,   41.560552408895],
                              [   3.626374121414,    7.211387785412,   41.560555217675],
                              [   8.994086182711,    7.211378822416,   41.560560298985],
                              [   9.445158345871,    4.454744255433,   41.580665892285],
                              [   4.077448361927,    9.822448208647,   41.580676120165],
                              [   9.445159744296,    9.822447118575,   41.580689425925],
                              [   4.077435345502,    4.454761099544,   41.580698915405],
                              [   5.818705593052,    0.989953051539,   42.616242632795],
                              [   0.450991632373,    0.989943086619,   42.616251500095],
                              [   5.818688409155,    6.357654055009,   42.616258898265],
                              [   0.451006692013,    6.357635513277,   42.616261872925],
                              [   7.075425970751,    3.59227667949 ,   42.617726230755],
                              [   7.075409511364,    8.959975837663,   42.617739984885],
                              [   1.707708896967,    3.592289065362,   42.617748464785],
                              [   1.707722350065,    8.959987799024,   42.617751758465],
                              [   2.509562432545,   11.022668700828,   42.656786650855],
                              [   7.877252609375,    5.654941381189,   42.656789467175],
                              [   7.877260993303,   11.022646702995,   42.656805351875],
                              [   2.509564712164,    5.654958427705,   42.656806834265],
                              [  -0.317067365392,    2.974979690294,   42.803162736555],
                              [  -0.317073810894,    8.342667399098,   42.803174851385],
                              [   5.050630445048,    2.974962110808,   42.803181924555],
                              [   5.050626064018,    8.342681742709,   42.803184353215],
                              [   9.365373336679,    4.458590962823,   43.996430970375],
                              [   3.997648556166,    9.826284758395,   43.996447303185],
                              [   9.365365830122,    9.826294290915,   43.996448135835],
                              [   3.997646901905,    4.458605546241,   43.996459630565],
                              [   8.875695106978,    7.126674808317,   44.075764514275],
                              [   3.507980570087,    1.759003254701,   44.075767362055],
                              [   8.875688884386,    1.758967883866,   44.075789094285],
                              [   3.507980857978,    7.126705996361,   44.075815526145],
                              [   7.041014035982,   10.672219420032,   44.607815293405],
                              [   7.04100375996 ,    5.30452841356 ,   44.607816762405],
                              [   1.673327295672,   10.672226922123,   44.607818593325],
                              [   1.673310898164,    5.304504033424,   44.607835157925],
                              [   5.827426433019,    2.556682318373,   44.831481506695],
                              [   5.827424719703,    7.92436187654 ,   44.831501641745],
                              [   0.459718313289,    7.924370806632,   44.831523855885],
                              [   0.459719498874,    2.55666944914 ,   44.831527075855],
                              [   7.70099120624 ,    3.350396253843,   44.874127855245],
                              [   7.700998758626,    8.718122952128,   44.874131076515],
                              [   2.333311854859,    8.718134110771,   44.874149475155],
                              [   2.333315120643,    3.350389274985,   44.874153264525],
                              [   5.157239257263,    0.579654791784,   44.926591228415],
                              [   5.15725007583 ,    5.947314534818,   44.926628961695],
                              [  -0.210463778934,    5.947297226949,   44.926643683415],
                              [  -0.210467756936,    0.57961921746 ,   44.926666507515],
                              [  -0.329034733755,    5.015716951307,   46.683503651525],
                              [  -0.329042489695,   10.383446766637,   46.683521889355],
                              [   5.038655640682,   10.383418990142,   46.683522605135],
                              [   5.038688180012,    5.015757523379,   46.683535861365],
                              [   2.742417729431,    9.137621069231,   46.770779598855],
                              [   8.110158226097,    3.769926850791,   46.770818579615],
                              [   8.110168867745,    9.137576292425,   46.770822955935],
                              [   2.742548134868,    3.769886591238,   46.770828679965],
                              [   3.937273540739,    9.731540615929,   47.724849315715],
                              [   9.304917118053,    4.363642123654,   47.724856553075],
                              [   9.304899201218,    9.731488121744,   47.724864509855],
                              [   3.937273608962,    4.363671698264,   47.724876048395],
                              [   9.674478226336,    3.02776764088 ,   48.634838988255],
                              [   9.674485795523,    8.395368425151,   48.634840548255],
                              [   4.306786056007,    3.027777890986,   48.634845148695],
                              [   4.306707598945,    8.395417883546,   48.634865187545],
                              [   8.987581954641,    0.297029760572,   48.693580162955],
                              [   3.619954599203,    0.297014566278,   48.693630834745],
                              [   8.987666648777,    5.664783213331,   48.693654194575],
                              [   3.619878422211,    5.664798449172,   48.693673939105],
                              [   9.331705958122,    1.676682121945,   49.532842786115],
                              [   9.3315540116  ,    7.044411308782,   49.532896344165],
                              [   3.964113365401,    7.04438542759 ,   49.532900359865],
                              [   3.964038473694,    1.676691448335,   49.532903992715],
                              [   5.317977621349,    6.77108446926 ,   50.407758914045],
                              [   5.318092100659,    1.40332885626 ,   50.407771109865],
                              [  -0.049565824464,    6.770991285602,   50.407783741705],
                              [  -0.049555884471,    1.403342393996,   50.407843063435],
                              [   7.99787004419 ,    7.311098979916,   50.446610244355],
                              [   7.99758055786 ,    1.943365292038,   50.446679933975],
                              [   2.629961935895,    7.311132330477,   50.446705810735],
                              [   2.629944958451,    1.94335690593 ,   50.446782954165],
                              [   6.640176578041,    1.686829208338,   51.339586207715],
                              [   1.272402907701,    1.686823227797,   51.339643580875],
                              [   1.272472330419,    7.054540843568,   51.339683560425],
                              [   6.640152693666,    7.054541698782,   51.339730546585],
                              [   0.947849427244,    8.433845598142,   52.173893322525],
                              [   0.947871112473,    3.066189738393,   52.173943674645],
                              [   6.31559740656 ,    8.433887651313,   52.173973715305],
                              [   6.315590320584,    3.066218383317,   52.173992937625],
                              [   1.539037969642,    5.707486681011,   52.249161875625],
                              [   1.538993988308,    0.339772462542,   52.249201992325],
                              [   6.906733463845,    5.707452294322,   52.249211492725],
                              [   6.906722757183,    0.339736455399,   52.249235678315],
                              [   6.545416821107,    4.371478797387,   53.226754355905],
                              [   6.54537424552 ,    9.73909236534 ,   53.226754824555],
                              [   1.177675376269,    4.371412177198,   53.226781679305],
                              [   1.177650115401,    9.739156117598,   53.226790561035],
                              [   3.771593563144,    1.635672397594,   54.154684383345],
                              [   3.77157703431 ,    7.0033985854  ,   54.154689651855],
                              [   9.139275088487,    1.635690680989,   54.154702580355],
                              [   9.139289547353,    7.003355384561,   54.154705464665],
                              [   4.888375947538,    5.802118931741,   54.652947092835],
                              [  10.256087935341,    5.802078450942,   54.652950371045],
                              [  10.256072711062,    0.434411709501,   54.652954703555],
                              [   4.888391323057,    0.434400235484,   54.652971981335],
                              [   2.69336004664 ,    2.849666062596,   54.701993997885],
                              [   2.693320960959,    8.217364436258,   54.702008567375],
                              [   8.061051261089,    2.849683156197,   54.702010202905],
                              [   8.061066575717,    8.217361685676,   54.702010880855],
                              [   1.0907712139  ,    1.631682645765,   55.983364001955],
                              [   6.458469010813,    6.999375815904,   55.983372925805],
                              [   6.45847685794 ,    1.631675288517,   55.983374636475],
                              [   1.090757822122,    6.999352818004,   55.983385441165],
                              [   3.807498474833,    4.323513248502,   56.152724006795],
                              [   3.807475553004,    9.691215166167,   56.152727811245],
                              [   9.175206925482,    9.691223021795,   56.152741946535],
                              [   9.175199177561,    4.323525770112,   56.152748541175],
                              [   2.337771499547,    5.613833082666,   57.452273337225],
                              [   2.33775593793 ,    0.246149870202,   57.452274318075],
                              [   7.705461625888,    0.246137969377,   57.452274668815],
                              [   7.705453371955,    5.613843807932,   57.452281237585],
                              [   5.169960781851,    2.949340546122,   57.475047893055],
                              [   5.169946226817,    8.317045580048,   57.475059437705],
                              [  10.537664329074,    2.949344840024,   57.475066497615],
                              [  10.537667607933,    8.317050857925,   57.475067697125],
                              [   3.737430057899,    1.596997840693,   58.810120190575],
                              [   9.105127998248,    1.59699506454 ,   58.810123424715],
                              [   9.105129004444,    6.964699836586,   58.810127610195],
                              [   3.737419381468,    6.964696171639,   58.810129720745],
                              [   1.065409334192,    4.285164507201,   58.926508866355],
                              [   1.065398657976,    9.652875349547,   58.926511496255],
                              [   6.433089513445,    4.285167741906,   58.926515407695],
                              [   6.433099359835,    9.652866569214,   58.926524644195],
                              [   5.031582262541,    5.613712494999,   60.269579682585],
                              [  10.399283587762,    0.246016011798,   60.269580756125],
                              [  10.399284890213,    5.613702171796,   60.269587932515],
                              [   5.031578447405,    0.246004935356,   60.269590236115],
                              [   2.399006130798,    2.89937811624 ,   60.274193463055],
                              [   7.766700632448,    2.899377013038,   60.274199692655],
                              [   2.398993430863,    8.267085849528,   60.274202385215],
                              [   7.766701590926,    8.267066442115,   60.274211139545],
                              [   1.021406317905,    1.573596513722,   61.684719429775],
                              [   6.389096317912,    1.573596513722,   61.684719429775],
                              [   3.705251317903,    4.25744151372 ,   61.684719429775],
                              [   9.07294131791 ,    4.25744151372 ,   61.684719429775],
                              [   1.021406317905,    6.941286513718,   61.684719429775],
                              [   6.389096317912,    6.941286513718,   61.684719429775],
                              [   3.705251317903,    9.625131513716,   61.684719429775],
                              [   9.07294131791 ,    9.625131513716,   61.684719429775],
                              [   2.363328817909,    0.231674013717,   63.042369429975],
                              [   7.731018817906,    0.231674013717,   63.042369429975],
                              [   5.047173817907,    2.915519013715,   63.042369429975],
                              [  10.414863817904,    2.915519013715,   63.042369429975],
                              [   2.363328817909,    5.599364013724,   63.042369429975],
                              [   7.731018817906,    5.599364013724,   63.042369429975],
                              [   5.047173817907,    8.283209013722,   63.042369429975],
                              [  10.414863817904,    8.283209013722,   63.042369429975],
                              [   3.705251317903,    1.573596513722,   64.400019429915],
                              [   9.07294131791 ,    1.573596513722,   64.400019429915],
                              [   1.021406317905,    4.25744151372 ,   64.400019429915],
                              [   6.389096317912,    4.25744151372 ,   64.400019429915],
                              [   3.705251317903,    6.941286513718,   64.400019429915],
                              [   9.07294131791 ,    6.941286513718,   64.400019429915],
                              [   1.021406317905,    9.625131513716,   64.400019429915],
                              [   6.389096317912,    9.625131513716,   64.400019429915],
                              [   5.047173817907,    0.231674013717,   65.757669429855],
                              [  10.414863817904,    0.231674013717,   65.757669429855],
                              [   2.363328817909,    2.915519013715,   65.757669429855],
                              [   7.731018817906,    2.915519013715,   65.757669429855],
                              [   5.047173817907,    5.599364013724,   65.757669429855],
                              [  10.414863817904,    5.599364013724,   65.757669429855],
                              [   2.363328817909,    8.283209013722,   65.757669429855],
                              [   7.731018817906,    8.283209013722,   65.757669429855],
                              [   1.021406317905,    1.573596513722,   67.115319429795],
                              [   6.389096317912,    1.573596513722,   67.115319429795],
                              [   3.705251317903,    4.25744151372 ,   67.115319429795],
                              [   9.07294131791 ,    4.25744151372 ,   67.115319429795],
                              [   1.021406317905,    6.941286513718,   67.115319429795],
                              [   6.389096317912,    6.941286513718,   67.115319429795],
                              [   3.705251317903,    9.625131513716,   67.115319429795],
                              [   9.07294131791 ,    9.625131513716,   67.115319429795],
                              [   2.363328817909,    0.231674013717,   68.472969429865],
                              [   7.731018817906,    0.231674013717,   68.472969429865],
                              [   5.047173817907,    2.915519013715,   68.472969429865],
                              [  10.414863817904,    2.915519013715,   68.472969429865],
                              [   2.363328817909,    5.599364013724,   68.472969429865],
                              [   7.731018817906,    5.599364013724,   68.472969429865],
                              [   5.047173817907,    8.283209013722,   68.472969429865],
                              [  10.414863817904,    8.283209013722,   68.472969429865],
                              [   3.705251317903,    1.573596513722,   69.830619429935],
                              [   9.07294131791 ,    1.573596513722,   69.830619429935],
                              [   1.021406317905,    4.25744151372 ,   69.830619429935],
                              [   6.389096317912,    4.25744151372 ,   69.830619429935],
                              [   3.705251317903,    6.941286513718,   69.830619429935],
                              [   9.07294131791 ,    6.941286513718,   69.830619429935],
                              [   1.021406317905,    9.625131513716,   69.830619429935],
                              [   6.389096317912,    9.625131513716,   69.830619429935],
                              [   5.047173817907,    0.231674013717,   71.188269429875],
                              [  10.414863817904,    0.231674013717,   71.188269429875],
                              [   2.363328817909,    2.915519013715,   71.188269429875],
                              [   7.731018817906,    2.915519013715,   71.188269429875],
                              [   5.047173817907,    5.599364013724,   71.188269429875],
                              [  10.414863817904,    5.599364013724,   71.188269429875],
                              [   2.363328817909,    8.283209013722,   71.188269429875],
                              [   7.731018817906,    8.283209013722,   71.188269429875],
                              [   1.021406317905,    1.573596513722,   72.545919429815],
                              [   6.389096317912,    1.573596513722,   72.545919429815],
                              [   3.705251317903,    4.25744151372 ,   72.545919429815],
                              [   9.07294131791 ,    4.25744151372 ,   72.545919429815],
                              [   1.021406317905,    6.941286513718,   72.545919429815],
                              [   6.389096317912,    6.941286513718,   72.545919429815],
                              [   3.705251317903,    9.625131513716,   72.545919429815],
                              [   9.07294131791 ,    9.625131513716,   72.545919429815],
                              [   2.363328817909,    0.231674013717,   73.903569429885],
                              [   7.731018817906,    0.231674013717,   73.903569429885],
                              [   5.047173817907,    2.915519013715,   73.903569429885],
                              [  10.414863817904,    2.915519013715,   73.903569429885],
                              [   2.363328817909,    5.599364013724,   73.903569429885],
                              [   7.731018817906,    5.599364013724,   73.903569429885],
                              [   5.047173817907,    8.283209013722,   73.903569429885],
                              [  10.414863817904,    8.283209013722,   73.903569429885],
                              [   3.705251317903,    1.573596513722,   75.261219429825],
                              [   9.07294131791 ,    1.573596513722,   75.261219429825],
                              [   1.021406317905,    4.25744151372 ,   75.261219429825],
                              [   6.389096317912,    4.25744151372 ,   75.261219429825],
                              [   3.705251317903,    6.941286513718,   75.261219429825],
                              [   9.07294131791 ,    6.941286513718,   75.261219429825],
                              [   1.021406317905,    9.625131513716,   75.261219429825],
                              [   6.389096317912,    9.625131513716,   75.261219429825],
                              [   5.047173817907,    0.231674013717,   76.618869429765],
                              [  10.414863817904,    0.231674013717,   76.618869429765],
                              [   2.363328817909,    2.915519013715,   76.618869429765],
                              [   7.731018817906,    2.915519013715,   76.618869429765],
                              [   5.047173817907,    5.599364013724,   76.618869429765],
                              [  10.414863817904,    5.599364013724,   76.618869429765],
                              [   2.363328817909,    8.283209013722,   76.618869429765],
                              [   7.731018817906,    8.283209013722,   76.618869429765],
                              [   1.021406317905,    1.573596513722,   77.976519429705],
                              [   6.389096317912,    1.573596513722,   77.976519429705],
                              [   3.705251317903,    4.25744151372 ,   77.976519429705],
                              [   9.07294131791 ,    4.25744151372 ,   77.976519429705],
                              [   1.021406317905,    6.941286513718,   77.976519429705],
                              [   6.389096317912,    6.941286513718,   77.976519429705],
                              [   3.705251317903,    9.625131513716,   77.976519429705],
                              [   9.07294131791 ,    9.625131513716,   77.976519429705],
                              [   2.363328817909,    0.231674013717,   79.334169429775],
                              [   7.731018817906,    0.231674013717,   79.334169429775],
                              [   5.047173817907,    2.915519013715,   79.334169429775],
                              [  10.414863817904,    2.915519013715,   79.334169429775],
                              [   2.363328817909,    5.599364013724,   79.334169429775],
                              [   7.731018817906,    5.599364013724,   79.334169429775],
                              [   5.047173817907,    8.283209013722,   79.334169429775],
                              [  10.414863817904,    8.283209013722,   79.334169429775],
                              [   3.705251317903,    1.573596513722,   80.691819429715],
                              [   9.07294131791 ,    1.573596513722,   80.691819429715],
                              [   1.021406317905,    4.25744151372 ,   80.691819429715],
                              [   6.389096317912,    4.25744151372 ,   80.691819429715],
                              [   3.705251317903,    6.941286513718,   80.691819429715],
                              [   9.07294131791 ,    6.941286513718,   80.691819429715],
                              [   1.021406317905,    9.625131513716,   80.691819429715],
                              [   6.389096317912,    9.625131513716,   80.691819429715],
                              [   5.047173817907,    0.231674013717,   82.049469429655],
                              [  10.414863817904,    0.231674013717,   82.049469429655],
                              [   2.363328817909,    2.915519013715,   82.049469429655],
                              [   7.731018817906,    2.915519013715,   82.049469429655],
                              [   5.047173817907,    5.599364013724,   82.049469429655],
                              [  10.414863817904,    5.599364013724,   82.049469429655],
                              [   2.363328817909,    8.283209013722,   82.049469429655],
                              [   7.731018817906,    8.283209013722,   82.049469429655],
                              [   1.021406317905,    1.573596513722,   83.407119429595],
                              [   6.389096317912,    1.573596513722,   83.407119429595],
                              [   3.705251317903,    4.25744151372 ,   83.407119429595],
                              [   9.07294131791 ,    4.25744151372 ,   83.407119429595],
                              [   1.021406317905,    6.941286513718,   83.407119429595],
                              [   6.389096317912,    6.941286513718,   83.407119429595],
                              [   3.705251317903,    9.625131513716,   83.407119429595],
                              [   9.07294131791 ,    9.625131513716,   83.407119429595],
                              [   2.363328817909,    0.231674013717,   84.764769429665],
                              [   7.731018817906,    0.231674013717,   84.764769429665],
                              [   5.047173817907,    2.915519013715,   84.764769429665],
                              [  10.414863817904,    2.915519013715,   84.764769429665],
                              [   2.363328817909,    5.599364013724,   84.764769429665],
                              [   7.731018817906,    5.599364013724,   84.764769429665],
                              [   5.047173817907,    8.283209013722,   84.764769429665],
                              [  10.414863817904,    8.283209013722,   84.764769429665],
                              [   3.705251317903,    1.573596513722,   86.122419429605],
                              [   9.07294131791 ,    1.573596513722,   86.122419429605],
                              [   1.021406317905,    4.25744151372 ,   86.122419429605],
                              [   6.389096317912,    4.25744151372 ,   86.122419429605],
                              [   3.705251317903,    6.941286513718,   86.122419429605],
                              [   9.07294131791 ,    6.941286513718,   86.122419429605],
                              [   1.021406317905,    9.625131513716,   86.122419429605],
                              [   6.389096317912,    9.625131513716,   86.122419429605],
                              [   5.047173817907,    0.231674013717,   87.480069429545],
                              [  10.414863817904,    0.231674013717,   87.480069429545],
                              [   2.363328817909,    2.915519013715,   87.480069429545],
                              [   7.731018817906,    2.915519013715,   87.480069429545],
                              [   5.047173817907,    5.599364013724,   87.480069429545],
                              [  10.414863817904,    5.599364013724,   87.480069429545],
                              [   2.363328817909,    8.283209013722,   87.480069429545],
                              [   7.731018817906,    8.283209013722,   87.480069429545],
                              [   1.021406317905,    1.573596513722,   88.837719429485],
                              [   6.389096317912,    1.573596513722,   88.837719429485],
                              [   3.705251317903,    4.25744151372 ,   88.837719429485],
                              [   9.07294131791 ,    4.25744151372 ,   88.837719429485],
                              [   1.021406317905,    6.941286513718,   88.837719429485],
                              [   6.389096317912,    6.941286513718,   88.837719429485],
                              [   3.705251317903,    9.625131513716,   88.837719429485],
                              [   9.07294131791 ,    9.625131513716,   88.837719429485],
                              [   2.363328817909,    0.231674013717,   90.195369429555],
                              [   7.731018817906,    0.231674013717,   90.195369429555],
                              [   5.047173817907,    2.915519013715,   90.195369429555],
                              [  10.414863817904,    2.915519013715,   90.195369429555],
                              [   2.363328817909,    5.599364013724,   90.195369429555],
                              [   7.731018817906,    5.599364013724,   90.195369429555],
                              [   5.047173817907,    8.283209013722,   90.195369429555],
                              [  10.414863817904,    8.283209013722,   90.195369429555],
                              [   3.705251317903,    1.573596513722,   91.553019429495],
                              [   9.07294131791 ,    1.573596513722,   91.553019429495],
                              [   1.021406317905,    4.25744151372 ,   91.553019429495],
                              [   6.389096317912,    4.25744151372 ,   91.553019429495],
                              [   3.705251317903,    6.941286513718,   91.553019429495],
                              [   9.07294131791 ,    6.941286513718,   91.553019429495],
                              [   1.021406317905,    9.625131513716,   91.553019429495],
                              [   6.389096317912,    9.625131513716,   91.553019429495],
                              [   5.047173817907,    0.231674013717,   92.910669429435],
                              [  10.414863817904,    0.231674013717,   92.910669429435],
                              [   2.363328817909,    2.915519013715,   92.910669429435],
                              [   7.731018817906,    2.915519013715,   92.910669429435],
                              [   5.047173817907,    5.599364013724,   92.910669429435],
                              [  10.414863817904,    5.599364013724,   92.910669429435],
                              [   2.363328817909,    8.283209013722,   92.910669429435],
                              [   7.731018817906,    8.283209013722,   92.910669429435],
                              [   1.021406317905,    1.573596513722,   94.268319429375],
                              [   6.389096317912,    1.573596513722,   94.268319429375],
                              [   3.705251317903,    4.25744151372 ,   94.268319429375],
                              [   9.07294131791 ,    4.25744151372 ,   94.268319429375],
                              [   1.021406317905,    6.941286513718,   94.268319429375],
                              [   6.389096317912,    6.941286513718,   94.268319429375],
                              [   3.705251317903,    9.625131513716,   94.268319429375],
                              [   9.07294131791 ,    9.625131513716,   94.268319429375],
                              [   2.363328817909,    0.231674013717,   95.625969429445],
                              [   7.731018817906,    0.231674013717,   95.625969429445],
                              [   5.047173817907,    2.915519013715,   95.625969429445],
                              [  10.414863817904,    2.915519013715,   95.625969429445],
                              [   2.363328817909,    5.599364013724,   95.625969429445],
                              [   7.731018817906,    5.599364013724,   95.625969429445],
                              [   5.047173817907,    8.283209013722,   95.625969429445],
                              [  10.414863817904,    8.283209013722,   95.625969429445],
                              [   3.705251317903,    1.573596513722,   96.983619429385],
                              [   9.07294131791 ,    1.573596513722,   96.983619429385],
                              [   1.021406317905,    4.25744151372 ,   96.983619429385],
                              [   6.389096317912,    4.25744151372 ,   96.983619429385],
                              [   3.705251317903,    6.941286513718,   96.983619429385],
                              [   9.07294131791 ,    6.941286513718,   96.983619429385],
                              [   1.021406317905,    9.625131513716,   96.983619429385],
                              [   6.389096317912,    9.625131513716,   96.983619429385],
                              [   5.047173817907,    0.231674013717,   98.341269429325],
                              [  10.414863817904,    0.231674013717,   98.341269429325],
                              [   2.363328817909,    2.915519013715,   98.341269429325],
                              [   7.731018817906,    2.915519013715,   98.341269429325],
                              [   5.047173817907,    5.599364013724,   98.341269429325],
                              [  10.414863817904,    5.599364013724,   98.341269429325],
                              [   2.363328817909,    8.283209013722,   98.341269429325],
                              [   7.731018817906,    8.283209013722,   98.341269429325],
                              [   1.021406317905,    1.573596513722,   99.698919429265],
                              [   6.389096317912,    1.573596513722,   99.698919429265],
                              [   3.705251317903,    4.25744151372 ,   99.698919429265],
                              [   9.07294131791 ,    4.25744151372 ,   99.698919429265],
                              [   1.021406317905,    6.941286513718,   99.698919429265],
                              [   6.389096317912,    6.941286513718,   99.698919429265],
                              [   3.705251317903,    9.625131513716,   99.698919429265],
                              [   9.07294131791 ,    9.625131513716,   99.698919429265],
                              [   2.363328817909,    0.231674013717,  101.056569429335],
                              [   7.731018817906,    0.231674013717,  101.056569429335],
                              [   5.047173817907,    2.915519013715,  101.056569429335],
                              [  10.414863817904,    2.915519013715,  101.056569429335],
                              [   2.363328817909,    5.599364013724,  101.056569429335],
                              [   7.731018817906,    5.599364013724,  101.056569429335],
                              [   5.047173817907,    8.283209013722,  101.056569429335],
                              [  10.414863817904,    8.283209013722,  101.056569429335],
                              [   3.705251317903,    1.573596513722,  102.414219429275],
                              [   9.07294131791 ,    1.573596513722,  102.414219429275],
                              [   1.021406317905,    4.25744151372 ,  102.414219429275],
                              [   6.389096317912,    4.25744151372 ,  102.414219429275],
                              [   3.705251317903,    6.941286513718,  102.414219429275],
                              [   9.07294131791 ,    6.941286513718,  102.414219429275],
                              [   1.021406317905,    9.625131513716,  102.414219429275],
                              [   6.389096317912,    9.625131513716,  102.414219429275],
                              [   5.047173817907,    0.231674013717,  103.771869429215],
                              [  10.414863817904,    0.231674013717,  103.771869429215],
                              [   2.363328817909,    2.915519013715,  103.771869429215],
                              [   7.731018817906,    2.915519013715,  103.771869429215],
                              [   5.047173817907,    5.599364013724,  103.771869429215],
                              [  10.414863817904,    5.599364013724,  103.771869429215],
                              [   2.363328817909,    8.283209013722,  103.771869429215],
                              [   7.731018817906,    8.283209013722,  103.771869429215],
                              [   1.021406317905,    1.573596513722,  105.129519429155],
                              [   6.389096317912,    1.573596513722,  105.129519429155],
                              [   3.705251317903,    4.25744151372 ,  105.129519429155],
                              [   9.07294131791 ,    4.25744151372 ,  105.129519429155],
                              [   1.021406317905,    6.941286513718,  105.129519429155],
                              [   6.389096317912,    6.941286513718,  105.129519429155],
                              [   3.705251317903,    9.625131513716,  105.129519429155],
                              [   9.07294131791 ,    9.625131513716,  105.129519429155],
                              [   2.363328817909,    0.231674013717,  106.487169429225],
                              [   7.731018817906,    0.231674013717,  106.487169429225],
                              [   5.047173817907,    2.915519013715,  106.487169429225],
                              [  10.414863817904,    2.915519013715,  106.487169429225],
                              [   2.363328817909,    5.599364013724,  106.487169429225],
                              [   7.731018817906,    5.599364013724,  106.487169429225],
                              [   5.047173817907,    8.283209013722,  106.487169429225],
                              [  10.414863817904,    8.283209013722,  106.487169429225],
                              [   3.705251317903,    1.573596513722,  107.844819429165],
                              [   9.07294131791 ,    1.573596513722,  107.844819429165],
                              [   1.021406317905,    4.25744151372 ,  107.844819429165],
                              [   6.389096317912,    4.25744151372 ,  107.844819429165],
                              [   3.705251317903,    6.941286513718,  107.844819429165],
                              [   9.07294131791 ,    6.941286513718,  107.844819429165],
                              [   1.021406317905,    9.625131513716,  107.844819429165],
                              [   6.389096317912,    9.625131513716,  107.844819429165]]*Angstrom

# Set up configuration
central_region = BulkConfiguration(
    bravais_lattice=central_region_lattice,
    elements=central_region_elements,
    cartesian_coordinates=central_region_coordinates
    )

# Add external potential
external_potential = AtomicCompensationCharge([
    ('doping_0', -0.000782388),
    ('doping_1', -0.000782388)
    ])

central_region.setExternalPotential(external_potential)

device_configuration = DeviceConfiguration(
    central_region,
    [left_electrode, right_electrode],
    equivalent_electrode_lengths=[14.7346755426, 16.29179999967]*Angstrom,
    transverse_electrode_repetitions=[[1, 1], [1, 1]],
    )

# Add tags
device_configuration.addTags('Selection 0', [636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
                                             646, 647, 648, 649, 650, 651, 652, 653, 654, 655,
                                             656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
                                             666, 667, 668, 669, 670, 671, 672, 673, 674, 675,
                                             676, 677, 678, 679, 680, 681, 682, 683, 684, 685,
                                             686, 687, 688, 689, 690, 691, 692, 693, 694, 695,
                                             696, 697, 698, 699, 700, 701, 702, 703, 704, 705,
                                             706, 707, 708, 709, 710, 711, 712, 713, 714, 715,
                                             716, 717, 718, 719, 720, 721, 722, 723, 724, 725,
                                             726, 727, 728, 729, 730, 731, 732, 733, 734, 735,
                                             736, 737, 738, 739, 740, 741, 742, 743, 744, 745,
                                             746, 747, 748, 749, 750, 751, 752, 753, 754, 755,
                                             756, 757, 758, 759, 760, 761, 762, 763, 764, 765,
                                             766, 767, 768, 769, 770, 771, 772, 773, 774, 775,
                                             776, 777, 778, 779, 780, 781, 782, 783, 784, 785,
                                             786, 787, 788, 789, 790, 791, 792, 793, 794, 795,
                                             796, 797, 798, 799, 800, 801, 802, 803, 804, 805,
                                             806, 807, 808, 809, 810, 811, 812, 813, 814, 815,
                                             816, 817, 818, 819, 828, 829, 830, 831, 832, 833,
                                             834, 835, 836, 837, 838, 839, 840, 841, 842, 843,
                                             844, 845, 846, 847, 848, 849, 850, 851, 860, 861,
                                             862, 863, 864, 865, 866, 867, 868, 869, 870, 871,
                                             872, 873, 874, 875, 876, 877, 878, 879, 880, 881,
                                             882, 883, 892, 893, 894, 895, 896, 897, 898, 899,
                                             900, 901, 902, 903, 904, 905, 906, 907, 908, 909,
                                             910, 911, 912, 913, 914, 915])
device_configuration.addTags('Selection 1', [  0,   1,   2,   3,   4,   5,   6,   7,   8,   9,
                                              10,  11,  12,  13,  14,  15,  16,  17,  18,  19,
                                              20,  21,  22,  23,  24,  25,  26,  27,  28,  29,
                                              30,  31,  32,  33,  34,  35,  36,  37,  38,  39,
                                              40,  41,  42,  43,  44,  45,  46,  47,  48,  49,
                                              50,  51,  52,  53,  54,  55,  56,  57,  58,  59,
                                              60,  61,  62,  63,  64,  65,  66,  67,  68,  69,
                                              70,  71,  72,  73,  74,  75,  76,  77,  78,  79,
                                              80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
                                              90,  91,  92,  93,  94,  95,  96,  97,  98,  99,
                                             100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
                                             110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
                                             120, 121, 122, 123, 124, 125, 126, 127, 128, 129,
                                             130, 131, 132, 133, 134, 135, 136, 137, 138, 139,
                                             140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
                                             150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
                                             160, 161, 162, 163, 164, 165, 166, 167, 168, 169,
                                             170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
                                             180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
                                             190, 191, 192, 193, 194, 195, 196, 197, 198, 199,
                                             200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
                                             210, 211, 212, 213, 214, 215, 216, 217, 218, 219,
                                             220, 221, 222, 223, 224, 225, 226, 227, 228, 229,
                                             230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
                                             240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
                                             250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
                                             260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
                                             270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
                                             280, 281, 282, 283, 284, 285, 286, 287])
device_configuration.addTags('doping_1',    [596, 597, 598, 599, 600, 601, 602, 603, 604, 605,
                                             606, 607, 608, 609, 610, 611, 612, 613, 614, 615,
                                             616, 617, 618, 619, 620, 621, 622, 623, 624, 625,
                                             626, 627, 628, 629, 630, 631, 632, 633, 634, 635,
                                             636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
                                             646, 647, 648, 649, 650, 651, 652, 653, 654, 655,
                                             656, 657, 658, 659, 660, 661, 662, 663, 664, 665,
                                             666, 667, 668, 669, 670, 671, 672, 673, 674, 675,
                                             676, 677, 678, 679, 680, 681, 682, 683, 684, 685,
                                             686, 687, 688, 689, 690, 691, 692, 693, 694, 695,
                                             696, 697, 698, 699, 700, 701, 702, 703, 704, 705,
                                             706, 707, 708, 709, 710, 711, 712, 713, 714, 715,
                                             716, 717, 718, 719, 720, 721, 722, 723, 724, 725,
                                             726, 727, 728, 729, 730, 731, 732, 733, 734, 735,
                                             736, 737, 738, 739, 740, 741, 742, 743, 744, 745,
                                             746, 747, 748, 749, 750, 751, 752, 753, 754, 755,
                                             756, 757, 758, 759, 760, 761, 762, 763, 764, 765,
                                             766, 767, 768, 769, 770, 771, 772, 773, 774, 775,
                                             776, 777, 778, 779, 780, 781, 782, 783, 784, 785,
                                             786, 787, 788, 789, 790, 791, 792, 793, 794, 795,
                                             796, 797, 798, 799, 800, 801, 802, 803, 804, 805,
                                             806, 807, 808, 809, 810, 811, 812, 813, 814, 815,
                                             816, 817, 818, 819, 820, 821, 822, 823, 824, 825,
                                             826, 827, 828, 829, 830, 831, 832, 833, 834, 835,
                                             836, 837, 838, 839, 840, 841, 842, 843, 844, 845,
                                             846, 847, 848, 849, 850, 851, 852, 853, 854, 855,
                                             856, 857, 858, 859, 860, 861, 862, 863, 864, 865,
                                             866, 867, 868, 869, 870, 871, 872, 873, 874, 875,
                                             876, 877, 878, 879, 880, 881, 882, 883, 884, 885,
                                             886, 887, 888, 889, 890, 891, 892, 893, 894, 895,
                                             896, 897, 898, 899, 900, 901, 902, 903, 904, 905,
                                             906, 907, 908, 909, 910, 911, 912, 913, 914, 915])

# %% Set DeviceLCAOCalculator

# %% DeviceLCAOCalculator

# ----------------------------------------
# Exchange-Correlation
# ----------------------------------------
exchange_correlation = HybridGGA.HSE06

# ----------------------------------------
# Basis Set
# ----------------------------------------

# Basis set for Nitrogen

nitrogen_2s = ConfinedOrbital(
    principal_quantum_number=2,
    angular_momentum=0,
    radial_cutoff_radius=4.05210324931 * Bohr,
    confinement_start_radius=3.24168259945 * Bohr,
    additional_charge=0,
    confinement_strength=24.6785419441 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

nitrogen_2p = ConfinedOrbital(
    principal_quantum_number=2,
    angular_momentum=1,
    radial_cutoff_radius=4.95947055261 * Bohr,
    confinement_start_radius=3.96757644209 * Bohr,
    additional_charge=0,
    confinement_strength=20.1634426375 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

nitrogen_2p_polarization = PolarizationOrbital(nitrogen_2p)

NitrogenBasis = BasisSet(
    element=PeriodicTable.Nitrogen,
    orbitals=[nitrogen_2s, nitrogen_2p, nitrogen_2p_polarization],
    occupations=[2.0, 3.0, 0.0],
    hubbard_u=[0.0, 0.0, 0.0] * eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0] * eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/N.GGAPBE.zip"),
)


# Basis set for Oxygen

oxygen_2s = ConfinedOrbital(
    principal_quantum_number=2,
    angular_momentum=0,
    radial_cutoff_radius=3.6729858966 * Bohr,
    confinement_start_radius=2.93838871728 * Bohr,
    additional_charge=0,
    confinement_strength=27.2258056021 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

oxygen_2p = ConfinedOrbital(
    principal_quantum_number=2,
    angular_momentum=1,
    radial_cutoff_radius=4.49481826797 * Bohr,
    confinement_start_radius=3.59585461438 * Bohr,
    additional_charge=0,
    confinement_strength=22.2478405217 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

oxygen_2p_polarization = PolarizationOrbital(oxygen_2p)

OxygenBasis = BasisSet(
    element=PeriodicTable.Oxygen,
    orbitals=[oxygen_2s, oxygen_2p, oxygen_2p_polarization],
    occupations=[2.0, 4.0, 0.0],
    hubbard_u=[0.0, 0.0, 0.0] * eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0] * eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/O.GGAPBE.zip"),
)


# Basis set for Aluminium

aluminium_3s = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=0,
    radial_cutoff_radius=6.1475754154 * Bohr,
    confinement_start_radius=4.91806033232 * Bohr,
    additional_charge=0,
    confinement_strength=16.2665755591 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

aluminium_3p = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=1,
    radial_cutoff_radius=8.15849541601 * Bohr,
    confinement_start_radius=6.52679633281 * Bohr,
    additional_charge=0,
    confinement_strength=12.2571620012 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

aluminium_3p_polarization = PolarizationOrbital(aluminium_3p)

AluminiumBasis = BasisSet(
    element=PeriodicTable.Aluminium,
    orbitals=[aluminium_3s, aluminium_3p, aluminium_3p_polarization],
    occupations=[2.0, 1.0, 0.0],
    hubbard_u=[0.0, 0.0, 0.0] * eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0] * eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/AL.GGAPBE.zip"),
)


# Basis set for Silicon

silicon_3s = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=0,
    radial_cutoff_radius=5.40388835309 * Bohr,
    confinement_start_radius=4.32311068247 * Bohr,
    additional_charge=0,
    confinement_strength=18.5051935691 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

silicon_3p = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=1,
    radial_cutoff_radius=6.97928345647 * Bohr,
    confinement_start_radius=5.58342676518 * Bohr,
    additional_charge=0,
    confinement_strength=14.3281184413 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

silicon_3p_polarization = PolarizationOrbital(silicon_3p)

SiliconBasis = BasisSet(
    element=PeriodicTable.Silicon,
    orbitals=[silicon_3s, silicon_3p, silicon_3p_polarization],
    occupations=[2.0, 2.0, 0.0],
    hubbard_u=[0.0, 0.0, 0.0] * eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0] * eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/SI.GGAPBE.zip"),
)


# Basis set for Titanium

titanium_3d = ConfinedOrbital(
    principal_quantum_number=3,
    angular_momentum=2,
    radial_cutoff_radius=5.54466474285 * Bohr,
    confinement_start_radius=4.43573179428 * Bohr,
    additional_charge=0,
    confinement_strength=18.0353555423 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

titanium_4s = ConfinedOrbital(
    principal_quantum_number=4,
    angular_momentum=0,
    radial_cutoff_radius=7.80740791273 * Bohr,
    confinement_start_radius=6.24592633018 * Bohr,
    additional_charge=0,
    confinement_strength=12.8083483171 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

titanium_4s_polarization = PolarizationOrbital(titanium_4s)

TitaniumBasis = BasisSet(
    element=PeriodicTable.Titanium,
    orbitals=[titanium_3d, titanium_4s, titanium_4s_polarization],
    occupations=[2.0, 2.0, 0.0],
    hubbard_u=[0.0, 0.0, 0.0] * eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0] * eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/TI.GGAPBE.zip"),
)


# Basis set for Hafnium

hafnium_5d = ConfinedOrbital(
    principal_quantum_number=5,
    angular_momentum=2,
    radial_cutoff_radius=6.81049420323 * Bohr,
    confinement_start_radius=5.44839536258 * Bohr,
    additional_charge=0,
    confinement_strength=14.6832222473 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

hafnium_6s = ConfinedOrbital(
    principal_quantum_number=6,
    angular_momentum=0,
    radial_cutoff_radius=7.60776042078 * Bohr,
    confinement_start_radius=6.08620833662 * Bohr,
    additional_charge=0,
    confinement_strength=13.1444728105 * Hartree,
    confinement_power=1,
    radial_step_size=0.001 * Bohr,
)

hafnium_6s_polarization = PolarizationOrbital(hafnium_6s)

HafniumBasis = BasisSet(
    element=PeriodicTable.Hafnium,
    orbitals=[hafnium_5d, hafnium_6s, hafnium_6s_polarization],
    occupations=[2.0, 2.0, 0.0],
    hubbard_u=[0.0, 0.0, 0.0] * eV,
    dft_half_parameters=Automatic,
    filling_method=SphericalSymmetric,
    onsite_spin_orbit_split=[0.0, 0.0, 0.0] * eV,
    pseudopotential=NormConservingPseudoPotential("normconserving/HF.GGAPBE.zip"),
)

basis_set = [
    NitrogenBasis,
    OxygenBasis,
    AluminiumBasis,
    SiliconBasis,
    TitaniumBasis,
    HafniumBasis,
]

poisson_solver = FastFourier2DSolver(
    boundary_conditions=[
        [PeriodicBoundaryCondition(), PeriodicBoundaryCondition()],
        [PeriodicBoundaryCondition(), PeriodicBoundaryCondition()],
        [DirichletBoundaryCondition(), DirichletBoundaryCondition()],
    ],
    order=2,
)

exact_exchange_parameters = ExactExchangeParameters(
    aux_basis_tolerance=0.001,
    number_of_waves=1024,
    maximum_wave_vector=50.0,
    integral_tolerance=0.0001,
    relative_screening_tolerance=0.01,
    use_admm=False,
    basis_set_admm=GGABasis.SingleZeta,
    auxiliary_basis_set=None,
)

k_point_sampling = KpointDensity(
    density_a=6.0 * Angstrom,
    density_b=6.0 * Angstrom,
    density_c=150.0 * Angstrom,
    symmetries=[
        ([[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]], [0.0, 0.0, 0.0]),
    ],
    force_timereversal=True,
    shift_to_gamma=[True, True, True],
)

numerical_accuracy_parameters = NumericalAccuracyParameters(
    density_mesh_cutoff=100.0 * Hartree,
    k_point_sampling=k_point_sampling,
    radial_step_size=0.001 * Bohr,
    density_cutoff=1e-06,
    interaction_max_range=20.0 * Angstrom,
    number_of_reciprocal_points=1024,
    reciprocal_energy_cutoff=1250.0 * Hartree,
    bands_per_electron=1.2,
    occupation_method=FermiDirac(broadening=300.0 * Kelvin),
    exx_grid_cutoff=None,
    exact_exchange_parameters=exact_exchange_parameters,
    paw_grid_tolerance=1e-07,
)

integral_lower_bound = calculateDefaultContourIntegralLowerBound(
    calculator_type=DeviceLCAOCalculator,
    configuration=device_configuration,
    basis_set=basis_set,
)

contour_parameters = ContourParameters(
    equilibrium_contour=SemiCircleContour(
        integral_lower_bound=integral_lower_bound,
        circle_eccentricity=0.3,
        logarithmic_bunching=0.3,
        circle_points=30,
        fermi_line_points=10,
        fermi_function_poles=8,
    ),
    non_equilibrium_contour=RealAxisContour(
        real_axis_point_density=0.001 * Hartree,
        real_axis_infinitesimal=0.001 * Hartree,
        real_axis_kbt_padding_factor=5.0,
    ),
    method=DoubleContour(),
)

algorithm = PulayMixer(
    noncollinear_mixing=False,
    restart_strategy=AdaptiveHistoryRestart(effective_rank_fraction=0.5),
)

iteration_control_parameters = IterationControlParameters(
    tolerance=0.0001,
    max_steps=20,
    algorithm=algorithm,
    damping_factor=0.05,
    number_of_history_steps=10,
    start_mixing_after_step=0,
    mixing_variable=HamiltonianVariable,
    preconditioner=Preconditioner.Off,
    linear_dependence_threshold=0.0,
    max_exx_updates=50,
    non_convergence_behavior=ContinueCalculation(),
    enable_scf_stop_file=True,
)


initial_density_type = NeutralAtom(
    electrode_constraint_length=10.0 * Angstrom,
)

self_energy_calculator_real = RecursionSelfEnergy(
    storage_strategy=SaveInMemory(),
    tolerance=1e-13,
    maximum_iteration=400,
    sparse_threshold=1e-12,
    enable_block_algorithm=True,
)

self_energy_calculator_complex = RecursionSelfEnergy(
    storage_strategy=SaveInMemory(),
    tolerance=1e-13,
    maximum_iteration=400,
    sparse_threshold=1e-12,
    enable_block_algorithm=True,
)

non_equilibrium_method = GreensFunction(
    processes_per_contour_point=1,
)

equilibrium_method = GreensFunction(
    processes_per_contour_point=1,
)

device_algorithm_parameters = DeviceAlgorithmParameters(
    initial_density_type=initial_density_type,
    electrode_constraint=ElectrodeConstraint.Off,
    self_energy_calculator_real=self_energy_calculator_real,
    self_energy_calculator_complex=self_energy_calculator_complex,
    non_equilibrium_method=non_equilibrium_method,
    equilibrium_method=equilibrium_method,
    store_grids=True,
    store_basis_on_grid=Automatic,
    scf_restart_step_length=0.1 * Angstrom,
    enforce_different_electrodes=False,
    neumann_self_energy_update_strategy=SurfaceAverage,
)

parallel_parameters = ParallelParameters(
    processes_per_neb_image=Automatic,
    processes_per_individual=Automatic,
    processes_per_bias_point=Automatic,
    processes_per_saddle_search=1,
)

calculator = DeviceLCAOCalculator(
    electrode_calculators=None,
    basis_set=basis_set,
    exchange_correlation=exchange_correlation,
    numerical_accuracy_parameters=numerical_accuracy_parameters,
    iteration_control_parameters=iteration_control_parameters,
    device_algorithm_parameters=device_algorithm_parameters,
    poisson_solver=poisson_solver,
    contour_parameters=contour_parameters,
    electrode_voltages=[0.0, 0.0] * Volt,
    electrode_temperatures=[300.0, 300.0] * Kelvin,
    checkpoint_handler=NoCheckpointHandler,
    dynamical_matrix_parameters=None,
    correction_extension=None,
    hamiltonian_derivatives_parameters=None,
    parallel_parameters=parallel_parameters,
    solvation_parameters=None,
)


# %% Set Calculator

device_configuration.setCalculator(calculator)

device_configuration.update()

#nlsave(
#    'hkmg_stack_results',
#    device_configuration,
#)
