# -------------------------------------------------------------
# Bulk configuration
# -------------------------------------------------------------

# Set up lattice
vector_a = [25.3060712531, -3.61876975118e-12, 0.0]*Angstrom
vector_b = [-5.0143120592e-12, 35.0651170803, 0.0]*Angstrom
vector_c = [0.0, 0.0, 50.0]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
elements = [Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon]

# Define coordinates
fractional_coordinates = [[ 0.000000112616,  0.000000513907,  0.1           ],
                          [ 0.000000112616,  0.250000288025,  0.1           ],
                          [ 0.000000112616,  0.500000581275,  0.1           ],
                          [ 0.000000112616,  0.750000874525,  0.1           ],
                          [ 0.100000069502,  0.000000519132,  0.1           ],
                          [ 0.100000069502,  0.25000029325 ,  0.1           ],
                          [ 0.100000069502,  0.5000005865  ,  0.1           ],
                          [ 0.100000069502,  0.75000087975 ,  0.1           ],
                          [ 0.200000139004,  0.000000519132,  0.1           ],
                          [ 0.200000139004,  0.25000029325 ,  0.1           ],
                          [ 0.200000139004,  0.5000005865  ,  0.1           ],
                          [ 0.200000139004,  0.75000087975 ,  0.1           ],
                          [ 0.300000208506,  0.000000519132,  0.1           ],
                          [ 0.300000208506,  0.25000029325 ,  0.1           ],
                          [ 0.300000208506,  0.5000005865  ,  0.1           ],
                          [ 0.300000208506,  0.75000087975 ,  0.1           ],
                          [ 0.400000278008,  0.000000519132,  0.1           ],
                          [ 0.400000278008,  0.25000029325 ,  0.1           ],
                          [ 0.400000278008,  0.5000005865  ,  0.1           ],
                          [ 0.400000278008,  0.75000087975 ,  0.1           ],
                          [ 0.50000034751 ,  0.000000519132,  0.1           ],
                          [ 0.50000034751 ,  0.25000029325 ,  0.1           ],
                          [ 0.50000034751 ,  0.5000005865  ,  0.1           ],
                          [ 0.50000034751 ,  0.75000087975 ,  0.1           ],
                          [ 0.600000417012,  0.000000519132,  0.1           ],
                          [ 0.600000417012,  0.25000029325 ,  0.1           ],
                          [ 0.600000417012,  0.5000005865  ,  0.1           ],
                          [ 0.600000417012,  0.75000087975 ,  0.1           ],
                          [ 0.700000486513,  0.000000519132,  0.1           ],
                          [ 0.700000486513,  0.25000029325 ,  0.1           ],
                          [ 0.700000486513,  0.5000005865  ,  0.1           ],
                          [ 0.700000486513,  0.75000087975 ,  0.1           ],
                          [ 0.800000556015,  0.000000519132,  0.1           ],
                          [ 0.800000556015,  0.25000029325 ,  0.1           ],
                          [ 0.800000556015,  0.5000005865  ,  0.1           ],
                          [ 0.800000556015,  0.75000087975 ,  0.1           ],
                          [ 0.900000614256,  0.000000508145,  0.1           ],
                          [ 0.900000614257,  0.250000282267,  0.1           ],
                          [ 0.900000614257,  0.500000575517,  0.1           ],
                          [ 0.900000614257,  0.750000868767,  0.1           ],
                          [ 0.000000112621,  0.041666733293,  0.1           ],
                          [ 0.000000112616,  0.291667014016,  0.1           ],
                          [ 0.000000112616,  0.541667307266,  0.1           ],
                          [ 0.000000112616,  0.791667600516,  0.1           ],
                          [ 0.100000069502,  0.041666728068,  0.1           ],
                          [ 0.100000069502,  0.291667008792,  0.1           ],
                          [ 0.100000069502,  0.541667302042,  0.1           ],
                          [ 0.100000069502,  0.791667595292,  0.1           ],
                          [ 0.200000139004,  0.041666728068,  0.1           ],
                          [ 0.200000139004,  0.291667008792,  0.1           ],
                          [ 0.200000139004,  0.541667302042,  0.1           ],
                          [ 0.200000139004,  0.791667595292,  0.1           ],
                          [ 0.300000208506,  0.041666728068,  0.1           ],
                          [ 0.300000208506,  0.291667008792,  0.1           ],
                          [ 0.300000208506,  0.541667302042,  0.1           ],
                          [ 0.300000208506,  0.791667595292,  0.1           ],
                          [ 0.400000278008,  0.041666728068,  0.1           ],
                          [ 0.400000278008,  0.291667008792,  0.1           ],
                          [ 0.400000278008,  0.541667302042,  0.1           ],
                          [ 0.400000278008,  0.791667595292,  0.1           ],
                          [ 0.50000034751 ,  0.041666728068,  0.1           ],
                          [ 0.50000034751 ,  0.291667008792,  0.1           ],
                          [ 0.50000034751 ,  0.541667302042,  0.1           ],
                          [ 0.50000034751 ,  0.791667595292,  0.1           ],
                          [ 0.600000417012,  0.041666728068,  0.1           ],
                          [ 0.600000417012,  0.291667008792,  0.1           ],
                          [ 0.600000417012,  0.541667302042,  0.1           ],
                          [ 0.600000417012,  0.791667595292,  0.1           ],
                          [ 0.700000486513,  0.041666728068,  0.1           ],
                          [ 0.700000486513,  0.291667008792,  0.1           ],
                          [ 0.700000486513,  0.541667302042,  0.1           ],
                          [ 0.700000486513,  0.791667595292,  0.1           ],
                          [ 0.800000556015,  0.041666728068,  0.1           ],
                          [ 0.800000556015,  0.291667008792,  0.1           ],
                          [ 0.800000556015,  0.541667302042,  0.1           ],
                          [ 0.800000556015,  0.791667595292,  0.1           ],
                          [ 0.900000614257,  0.041666739051,  0.1           ],
                          [ 0.900000614257,  0.291667019775,  0.1           ],
                          [ 0.900000614257,  0.541667313025,  0.1           ],
                          [ 0.900000614257,  0.791667606275,  0.1           ],
                          [ 0.050000046011,  0.062500062329,  0.1           ],
                          [ 0.050000046011,  0.312500355579,  0.1           ],
                          [ 0.050000046011,  0.562500648829,  0.1           ],
                          [ 0.050000046011,  0.812500942079,  0.1           ],
                          [ 0.150000104253,  0.062500073312,  0.1           ],
                          [ 0.150000104253,  0.312500366562,  0.1           ],
                          [ 0.150000104253,  0.562500659812,  0.1           ],
                          [ 0.150000104253,  0.812500953062,  0.1           ],
                          [ 0.250000173755,  0.062500073312,  0.1           ],
                          [ 0.250000173755,  0.312500366562,  0.1           ],
                          [ 0.250000173755,  0.562500659812,  0.1           ],
                          [ 0.250000173755,  0.812500953062,  0.1           ],
                          [ 0.350000243257,  0.062500073312,  0.1           ],
                          [ 0.350000243257,  0.312500366562,  0.1           ],
                          [ 0.350000243257,  0.562500659812,  0.1           ],
                          [ 0.350000243257,  0.812500953062,  0.1           ],
                          [ 0.450000312759,  0.062500073312,  0.1           ],
                          [ 0.450000312759,  0.312500366562,  0.1           ],
                          [ 0.450000312759,  0.562500659812,  0.1           ],
                          [ 0.450000312759,  0.812500953062,  0.1           ],
                          [ 0.550000382261,  0.062500073312,  0.1           ],
                          [ 0.550000382261,  0.312500366562,  0.1           ],
                          [ 0.550000382261,  0.562500659812,  0.1           ],
                          [ 0.550000382261,  0.812500953062,  0.1           ],
                          [ 0.650000451762,  0.062500073312,  0.1           ],
                          [ 0.650000451762,  0.312500366562,  0.1           ],
                          [ 0.650000451762,  0.562500659812,  0.1           ],
                          [ 0.650000451762,  0.812500953062,  0.1           ],
                          [ 0.750000521264,  0.062500073312,  0.1           ],
                          [ 0.750000521264,  0.312500366562,  0.1           ],
                          [ 0.750000521264,  0.562500659812,  0.1           ],
                          [ 0.750000521264,  0.812500953062,  0.1           ],
                          [ 0.850000590766,  0.062500073312,  0.1           ],
                          [ 0.850000590766,  0.312500366562,  0.1           ],
                          [ 0.850000590766,  0.562500659812,  0.1           ],
                          [ 0.850000590766,  0.812500953062,  0.1           ],
                          [ 0.950000547652,  0.062500068088,  0.1           ],
                          [ 0.950000547652,  0.312500361338,  0.1           ],
                          [ 0.950000547652,  0.562500654588,  0.1           ],
                          [ 0.950000547652,  0.812500947838,  0.1           ],
                          [ 0.050000046011,  0.104166799837,  0.1           ],
                          [ 0.050000046011,  0.354167093087,  0.1           ],
                          [ 0.050000046011,  0.604167386337,  0.1           ],
                          [ 0.050000046011,  0.854167679587,  0.1           ],
                          [ 0.150000104253,  0.104166788854,  0.1           ],
                          [ 0.150000104253,  0.354167082104,  0.1           ],
                          [ 0.150000104253,  0.604167375354,  0.1           ],
                          [ 0.150000104253,  0.854167668604,  0.1           ],
                          [ 0.250000173755,  0.104166788854,  0.1           ],
                          [ 0.250000173755,  0.354167082104,  0.1           ],
                          [ 0.250000173755,  0.604167375354,  0.1           ],
                          [ 0.250000173755,  0.854167668604,  0.1           ],
                          [ 0.350000243257,  0.104166788854,  0.1           ],
                          [ 0.350000243257,  0.354167082104,  0.1           ],
                          [ 0.350000243257,  0.604167375354,  0.1           ],
                          [ 0.350000243257,  0.854167668604,  0.1           ],
                          [ 0.450000312759,  0.104166788854,  0.1           ],
                          [ 0.450000312759,  0.354167082104,  0.1           ],
                          [ 0.450000312759,  0.604167375354,  0.1           ],
                          [ 0.450000312759,  0.854167668604,  0.1           ],
                          [ 0.550000382261,  0.104166788854,  0.1           ],
                          [ 0.550000382261,  0.354167082104,  0.1           ],
                          [ 0.550000382261,  0.604167375354,  0.1           ],
                          [ 0.550000382261,  0.854167668604,  0.1           ],
                          [ 0.650000451762,  0.104166788854,  0.1           ],
                          [ 0.650000451762,  0.354167082104,  0.1           ],
                          [ 0.650000451762,  0.604167375354,  0.1           ],
                          [ 0.650000451762,  0.854167668604,  0.1           ],
                          [ 0.750000521264,  0.104166788854,  0.1           ],
                          [ 0.750000521264,  0.354167082104,  0.1           ],
                          [ 0.750000521264,  0.604167375354,  0.1           ],
                          [ 0.750000521264,  0.854167668604,  0.1           ],
                          [ 0.850000590766,  0.104166788854,  0.1           ],
                          [ 0.850000590766,  0.354167082104,  0.1           ],
                          [ 0.850000590766,  0.604167375354,  0.1           ],
                          [ 0.850000590766,  0.854167668604,  0.1           ],
                          [ 0.950000547652,  0.104166794079,  0.1           ],
                          [ 0.950000547652,  0.354167087329,  0.1           ],
                          [ 0.950000547652,  0.604167380579,  0.1           ],
                          [ 0.950000547652,  0.854167673829,  0.1           ],
                          [ 0.000000112616,  0.1250001414  ,  0.1           ],
                          [ 0.000000112616,  0.37500043465 ,  0.1           ],
                          [ 0.000000112616,  0.6250007279  ,  0.1           ],
                          [ 0.000000112616,  0.87500102115 ,  0.1           ],
                          [ 0.100000069502,  0.125000146625,  0.1           ],
                          [ 0.100000069502,  0.375000439875,  0.1           ],
                          [ 0.100000069502,  0.625000733125,  0.1           ],
                          [ 0.100000069502,  0.875001026375,  0.1           ],
                          [ 0.200000139004,  0.125000146625,  0.1           ],
                          [ 0.200000139004,  0.375000439875,  0.1           ],
                          [ 0.200000139004,  0.625000733125,  0.1           ],
                          [ 0.200000139004,  0.875001026375,  0.1           ],
                          [ 0.300000208506,  0.125000146625,  0.1           ],
                          [ 0.300000208506,  0.375000439875,  0.1           ],
                          [ 0.300000208506,  0.625000733125,  0.1           ],
                          [ 0.300000208506,  0.875001026375,  0.1           ],
                          [ 0.400000278008,  0.125000146625,  0.1           ],
                          [ 0.400000278008,  0.375000439875,  0.1           ],
                          [ 0.400000278008,  0.625000733125,  0.1           ],
                          [ 0.400000278008,  0.875001026375,  0.1           ],
                          [ 0.50000034751 ,  0.125000146625,  0.1           ],
                          [ 0.50000034751 ,  0.375000439875,  0.1           ],
                          [ 0.50000034751 ,  0.625000733125,  0.1           ],
                          [ 0.50000034751 ,  0.875001026375,  0.1           ],
                          [ 0.600000417012,  0.125000146625,  0.1           ],
                          [ 0.600000417012,  0.375000439875,  0.1           ],
                          [ 0.600000417012,  0.625000733125,  0.1           ],
                          [ 0.600000417012,  0.875001026375,  0.1           ],
                          [ 0.700000486513,  0.125000146625,  0.1           ],
                          [ 0.700000486513,  0.375000439875,  0.1           ],
                          [ 0.700000486513,  0.625000733125,  0.1           ],
                          [ 0.700000486513,  0.875001026375,  0.1           ],
                          [ 0.800000556015,  0.125000146625,  0.1           ],
                          [ 0.800000556015,  0.375000439875,  0.1           ],
                          [ 0.800000556015,  0.625000733125,  0.1           ],
                          [ 0.800000556015,  0.875001026375,  0.1           ],
                          [ 0.900000614257,  0.125000135642,  0.1           ],
                          [ 0.900000614257,  0.375000428892,  0.1           ],
                          [ 0.900000614257,  0.625000722142,  0.1           ],
                          [ 0.900000614257,  0.875001015392,  0.1           ],
                          [ 0.000000112616,  0.166666867391,  0.1           ],
                          [ 0.000000112616,  0.416667160641,  0.1           ],
                          [ 0.000000112616,  0.666667453891,  0.1           ],
                          [ 0.000000112616,  0.916667747141,  0.1           ],
                          [ 0.100000069502,  0.166666862167,  0.1           ],
                          [ 0.100000069502,  0.416667155417,  0.1           ],
                          [ 0.100000069502,  0.666667448667,  0.1           ],
                          [ 0.100000069502,  0.916667741917,  0.1           ],
                          [ 0.200000139004,  0.166666862167,  0.1           ],
                          [ 0.200000139004,  0.416667155417,  0.1           ],
                          [ 0.200000139004,  0.666667448667,  0.1           ],
                          [ 0.200000139004,  0.916667741917,  0.1           ],
                          [ 0.300000208506,  0.166666862167,  0.1           ],
                          [ 0.300000208506,  0.416667155417,  0.1           ],
                          [ 0.300000208506,  0.666667448667,  0.1           ],
                          [ 0.300000208506,  0.916667741917,  0.1           ],
                          [ 0.400000278008,  0.166666862167,  0.1           ],
                          [ 0.400000278008,  0.416667155417,  0.1           ],
                          [ 0.400000278008,  0.666667448667,  0.1           ],
                          [ 0.400000278008,  0.916667741917,  0.1           ],
                          [ 0.50000034751 ,  0.166666862167,  0.1           ],
                          [ 0.50000034751 ,  0.416667155417,  0.1           ],
                          [ 0.50000034751 ,  0.666667448667,  0.1           ],
                          [ 0.50000034751 ,  0.916667741917,  0.1           ],
                          [ 0.600000417012,  0.166666862167,  0.1           ],
                          [ 0.600000417012,  0.416667155417,  0.1           ],
                          [ 0.600000417012,  0.666667448667,  0.1           ],
                          [ 0.600000417012,  0.916667741917,  0.1           ],
                          [ 0.700000486513,  0.166666862167,  0.1           ],
                          [ 0.700000486513,  0.416667155417,  0.1           ],
                          [ 0.700000486513,  0.666667448667,  0.1           ],
                          [ 0.700000486513,  0.916667741917,  0.1           ],
                          [ 0.800000556015,  0.166666862167,  0.1           ],
                          [ 0.800000556015,  0.416667155417,  0.1           ],
                          [ 0.800000556015,  0.666667448667,  0.1           ],
                          [ 0.800000556015,  0.916667741917,  0.1           ],
                          [ 0.900000614257,  0.16666687315 ,  0.1           ],
                          [ 0.900000614257,  0.4166671664  ,  0.1           ],
                          [ 0.900000614257,  0.66666745965 ,  0.1           ],
                          [ 0.900000614257,  0.9166677529  ,  0.1           ],
                          [ 0.050000046011,  0.187500208954,  0.1           ],
                          [ 0.050000046011,  0.437500502204,  0.1           ],
                          [ 0.050000046011,  0.687500795454,  0.1           ],
                          [ 0.050000046011,  0.937501076178,  0.1           ],
                          [ 0.150000104253,  0.187500219937,  0.1           ],
                          [ 0.150000104253,  0.437500513187,  0.1           ],
                          [ 0.150000104253,  0.687500806437,  0.1           ],
                          [ 0.150000104253,  0.937501087161,  0.1           ],
                          [ 0.250000173755,  0.187500219937,  0.1           ],
                          [ 0.250000173755,  0.437500513187,  0.1           ],
                          [ 0.250000173755,  0.687500806437,  0.1           ],
                          [ 0.250000173755,  0.937501087161,  0.1           ],
                          [ 0.350000243257,  0.187500219937,  0.1           ],
                          [ 0.350000243257,  0.437500513187,  0.1           ],
                          [ 0.350000243257,  0.687500806437,  0.1           ],
                          [ 0.350000243257,  0.937501087161,  0.1           ],
                          [ 0.450000312759,  0.187500219937,  0.1           ],
                          [ 0.450000312759,  0.437500513187,  0.1           ],
                          [ 0.450000312759,  0.687500806437,  0.1           ],
                          [ 0.450000312759,  0.937501087161,  0.1           ],
                          [ 0.550000382261,  0.187500219937,  0.1           ],
                          [ 0.550000382261,  0.437500513187,  0.1           ],
                          [ 0.550000382261,  0.687500806437,  0.1           ],
                          [ 0.550000382261,  0.937501087161,  0.1           ],
                          [ 0.650000451762,  0.187500219937,  0.1           ],
                          [ 0.650000451762,  0.437500513187,  0.1           ],
                          [ 0.650000451762,  0.687500806437,  0.1           ],
                          [ 0.650000451762,  0.937501087161,  0.1           ],
                          [ 0.750000521264,  0.187500219937,  0.1           ],
                          [ 0.750000521264,  0.437500513187,  0.1           ],
                          [ 0.750000521264,  0.687500806437,  0.1           ],
                          [ 0.750000521264,  0.937501087161,  0.1           ],
                          [ 0.850000590766,  0.187500219937,  0.1           ],
                          [ 0.850000590766,  0.437500513187,  0.1           ],
                          [ 0.850000590766,  0.687500806437,  0.1           ],
                          [ 0.850000590766,  0.937501087161,  0.1           ],
                          [ 0.950000547652,  0.187500214713,  0.1           ],
                          [ 0.950000547652,  0.437500507963,  0.1           ],
                          [ 0.950000547652,  0.687500801213,  0.1           ],
                          [ 0.950000547647,  0.937501081936,  0.1           ],
                          [ 0.050000046011,  0.229166946462,  0.1           ],
                          [ 0.050000046011,  0.479167239712,  0.1           ],
                          [ 0.050000046011,  0.729167532962,  0.1           ],
                          [ 0.050000046012,  0.979167307084,  0.1           ],
                          [ 0.150000104253,  0.229166935479,  0.1           ],
                          [ 0.150000104253,  0.479167228729,  0.1           ],
                          [ 0.150000104253,  0.729167521979,  0.1           ],
                          [ 0.150000104253,  0.979167296097,  0.1           ],
                          [ 0.250000173755,  0.229166935479,  0.1           ],
                          [ 0.250000173755,  0.479167228729,  0.1           ],
                          [ 0.250000173755,  0.729167521979,  0.1           ],
                          [ 0.250000173755,  0.979167296097,  0.1           ],
                          [ 0.350000243257,  0.229166935479,  0.1           ],
                          [ 0.350000243257,  0.479167228729,  0.1           ],
                          [ 0.350000243257,  0.729167521979,  0.1           ],
                          [ 0.350000243257,  0.979167296097,  0.1           ],
                          [ 0.450000312759,  0.229166935479,  0.1           ],
                          [ 0.450000312759,  0.479167228729,  0.1           ],
                          [ 0.450000312759,  0.729167521979,  0.1           ],
                          [ 0.450000312759,  0.979167296097,  0.1           ],
                          [ 0.550000382261,  0.229166935479,  0.1           ],
                          [ 0.550000382261,  0.479167228729,  0.1           ],
                          [ 0.550000382261,  0.729167521979,  0.1           ],
                          [ 0.550000382261,  0.979167296097,  0.1           ],
                          [ 0.650000451762,  0.229166935479,  0.1           ],
                          [ 0.650000451762,  0.479167228729,  0.1           ],
                          [ 0.650000451762,  0.729167521979,  0.1           ],
                          [ 0.650000451762,  0.979167296097,  0.1           ],
                          [ 0.750000521264,  0.229166935479,  0.1           ],
                          [ 0.750000521264,  0.479167228729,  0.1           ],
                          [ 0.750000521264,  0.729167521979,  0.1           ],
                          [ 0.750000521264,  0.979167296097,  0.1           ],
                          [ 0.850000590766,  0.229166935479,  0.1           ],
                          [ 0.850000590766,  0.479167228729,  0.1           ],
                          [ 0.850000590766,  0.729167521979,  0.1           ],
                          [ 0.850000590766,  0.979167296097,  0.1           ],
                          [ 0.950000547652,  0.229166940704,  0.1           ],
                          [ 0.950000547652,  0.479167233954,  0.1           ],
                          [ 0.950000547652,  0.729167527204,  0.1           ],
                          [ 0.950000547652,  0.979167301322,  0.1           ],
                          [ 0.50000034751 ,  0.5000005865  ,  0.5           ]]

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )

# Add tags
bulk_configuration.addTags('Selection 0', [320])

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------

# Set up a calculator with the Tersoff parameters from
# Bellido, J. Phys. Chem. C 116, 4044 (2012)
potential_set = TremoloXPotentialSet(name='Tersoff_Bellido_ZBL')
potential_set.addParticleType(ParticleType.fromElement(Carbon))
potential_set.addPotential(TersoffSingleTypePotential('C',
                                                      A=1393.6*eV,
                                                      B=346.74*eV,
                                                      R=1.8*Angstrom,
                                                      S=2.1*Angstrom,
                                                      l=3.4879*1/Angstrom,
                                                      mu=2.2119*1/Angstrom,
                                                      alpha=0.0*Angstrom**-1,
                                                      beta=1.5724e-07,
                                                      omega=1.0,
                                                      chi=1.0,
                                                      chiR=1.0,
                                                      m=0,
                                                      n=0.72751,
                                                      c=38049.0,
                                                      d=4.3484,
                                                      h=-0.57058))
potential_set.addPotential(TersoffZBLPotential('C', 'C',
                                               type=2,
                                               Z1=6.0,
                                               Z2=6.0,
                                               a0=0.529*Angstrom,
                                               rf=0.95*Angstrom,
                                               bf=14.0*1/Angstrom))

calculator = TremoloXCalculator(parameters=potential_set)

bulk_configuration.setCalculator(calculator)
bulk_configuration.update()

# -------------------------------------------------------------
# Molecular Dynamics
# -------------------------------------------------------------

initial_velocity = MaxwellBoltzmannDistribution(
    temperature=300.0*Kelvin,
    remove_center_of_mass_momentum=True
)

method = Langevin(
    time_step=1*femtoSecond,
    reservoir_temperature=300*Kelvin,
    friction=0.01*femtoSecond**-1,
    initial_velocity=initial_velocity
)

md_trajectory = MolecularDynamics(
    bulk_configuration,
    constraints=[320],
    trajectory_filename='graphene_sheet_equilibrate.hdf5',
    steps=50000,
    log_interval=5000,
    method=method
)

bulk_configuration = md_trajectory.lastImage()

# Get the velocities from the bulk_configuration
velocities = bulk_configuration.velocities()

# Define the incident energy of the bombardment atom.
incident_energy = 10.0*eV

# Calculate the corresponding velocity and apply it to the last atom.
incident_velocity = ((2.0*incident_energy/Carbon.atomicMass())**0.5).inUnitsOf(Ang/fs)
velocities[-1, :] = [0.0, 0.0, -incident_velocity]*Ang/fs
bulk_configuration.setVelocities(velocities)

# -------------------------------------------------------------
# Molecular Dynamics
# -------------------------------------------------------------

initial_velocity = ConfigurationVelocities(
    remove_center_of_mass_momentum=False
)

method = NVEVelocityVerlet(
    time_step=0.05*femtoSecond,
    initial_velocity=initial_velocity
)

# Get the velocities from the bulk_configuration
velocities = bulk_configuration.velocities()
# Define the incident energy of the bombardment atom.
incident_energy = 10.0*eV
# Calculate the corresponding velocity and apply it to the last atom.
incident_velocity = ((2.0*incident_energy/Carbon.atomicMass())**0.5).inUnitsOf(Ang/fs)
velocities[-1, :] = [0.0, 0.0, -incident_velocity]*Ang/fs
bulk_configuration.setVelocities(velocities)

md_trajectory = MolecularDynamics(
    bulk_configuration,
    constraints=[],
    trajectory_filename='ion_bombardment_md.hdf5',
    steps=50000,
    log_interval=100,
    method=method
)

bulk_configuration = md_trajectory.lastImage()
