# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Molecule Configuration
# -------------------------------------------------------------

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

# Define coordinates
cartesian_coordinates = [[0.987524, -0.003838, -1.18508 ],
                         [-0.020839, -0.022441, -0.751621],
                         [-0.569312, 0.833015, -1.166929],
                         [-0.514525, -0.932892, -1.115519],
                         [0.020891, 0.022496, 0.751587],
                         [0.568699, -0.833372, 1.166882],
                         [0.515082, 0.932608, 1.115691],
                         [-0.987522, 0.004424, 1.184988]]*Angstrom

# Set up configuration
molecule_configuration = MoleculeConfiguration(
    elements=elements,
    cartesian_coordinates=cartesian_coordinates
    )

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

potentialSet = TremoloXPotentialSet(name = 'Brenner_CH_2002')
potentialSet.addParticleType(ParticleType(
	symbol = 'C',
	mass = 12.0107*atomic_mass_unit,
	charge = None,
	sigma = None,
	sigma14 = None,
	epsilon = None,
	epsilon14 = None,
	atomicNumber = 6,
	tags = [],
))
potentialSet.addParticleType(ParticleType(
	symbol = 'H',
	mass = 1.00794*atomic_mass_unit,
	charge = None,
	sigma = None,
	sigma14 = None,
	epsilon = None,
	epsilon14 = None,
	atomicNumber = 1,
	tags = [],
))


_potential = TersoffBrennerPairPotential2(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('C', []),
	A = 10953.5441622*eV,
	Q = 0.313460296083*Angstrom,
	l = 4.74653906066*1/Angstrom,
	B1 = 12388.791978*eV,
	B2 = 17.567406465*eV,
	B3 = 30.7149320807*eV,
	mu1 = 4.7204523127*1/Angstrom,
	mu2 = 1.4332132499*1/Angstrom,
	mu3 = 1.3826912506*1/Angstrom,
	Re = 0.0*Angstrom,
	R1 = 1.7*Angstrom,
	R2 = 2.0*Angstrom,
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerPairPotential2(
	particleType1 = ParticleIdentifier('H', []),
	particleType2 = ParticleIdentifier('H', []),
	A = 32.817356*eV,
	Q = 0.3704716*Angstrom,
	l = 3.5362986*1/Angstrom,
	B1 = 29.632593*eV,
	B2 = 0.0*eV,
	B3 = 0.0*eV,
	mu1 = 1.7158922*1/Angstrom,
	mu2 = 0.0*1/Angstrom,
	mu3 = 0.0*1/Angstrom,
	Re = 0.0*Angstrom,
	R1 = 1.1*Angstrom,
	R2 = 1.7*Angstrom,
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerPairPotential2(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('H', []),
	A = 149.94099*eV,
	Q = 0.340776*Angstrom,
	l = 4.1025498*1/Angstrom,
	B1 = 32.355187*eV,
	B2 = 0.0*eV,
	B3 = 0.0*eV,
	mu1 = 1.4344581*1/Angstrom,
	mu2 = 0.0*1/Angstrom,
	mu3 = 0.0*1/Angstrom,
	Re = 0.0*Angstrom,
	R1 = 1.3*Angstrom,
	R2 = 1.8*Angstrom,
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerBOPairPotential(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('C', []),
	delta = 0.5,
	eta = 1.0,
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerBOPairPotential(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('H', []),
	delta = 0.5,
	eta = 1.0,
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerBOPairPotential(
	particleType1 = ParticleIdentifier('H', []),
	particleType2 = ParticleIdentifier('C', []),
	delta = 0.5,
	eta = 1.0,
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerBOPairPotential(
	particleType1 = ParticleIdentifier('H', []),
	particleType2 = ParticleIdentifier('H', []),
	delta = 0.5,
	eta = 1.0,
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerTriplePotential3(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('C', []),
	particleType3 = ParticleIdentifier('C', []),
	beta = 1,
	alpha = 0.0*1/Angstrom,
	L = 3.2,
	U = 3.7,
	rho1 = 0.0*Angstrom,
	rho2 = 0.0*Angstrom,
	x1 = numpy.array([-1.0, -0.5, -0.333412, 0.0, 0.5, 1.0]),
	f1 = numpy.array([-0.01, 0.0528, 0.09733, 0.37545, 2.0014, 8.0]),
	dfx1 = numpy.array([0.104, 0.17, 0.4, 1.406776, 6.056472, 20.240234]),
	dfxx1 = numpy.array([0.0, 0.37, 1.98, 4.508755, 16.147742, 43.901021]),
	x2 = numpy.array([-1.0, -0.5, -0.333412, 0.0, 0.5, 1.0]),
	f2 = numpy.array([-0.01, 0.0528, 0.09733, 0.271856, 0.416335, 1.0]),
	dfx2 = numpy.array([0.104, 0.17, 0.4, 0.488916, 0.25958, 2.831613]),
	dfxx2 = numpy.array([0.0, 0.37, 1.98, -0.866163, 1.170791, 10.239179]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerTriplePotential3(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('C', []),
	particleType3 = ParticleIdentifier('H', []),
	beta = 1,
	alpha = 0.0*1/Angstrom,
	L = 3.2,
	U = 3.7,
	rho1 = 0.0*Angstrom,
	rho2 = 0.0*Angstrom,
	x1 = numpy.array([-1.0, -0.5, -0.333412, 0.0, 0.5, 1.0]),
	f1 = numpy.array([-0.01, 0.0528, 0.09733, 0.37545, 2.0014, 8.0]),
	dfx1 = numpy.array([0.104, 0.17, 0.4, 1.406776, 6.056472, 20.240234]),
	dfxx1 = numpy.array([0.0, 0.37, 1.98, 4.508755, 16.147742, 43.901021]),
	x2 = numpy.array([-1.0, -0.5, -0.333412, 0.0, 0.5, 1.0]),
	f2 = numpy.array([-0.01, 0.0528, 0.09733, 0.271856, 0.416335, 1.0]),
	dfx2 = numpy.array([0.104, 0.17, 0.4, 0.488916, 0.25958, 2.831613]),
	dfxx2 = numpy.array([0.0, 0.37, 1.98, -0.866163, 1.170791, 10.239179]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerTriplePotential3(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('H', []),
	particleType3 = ParticleIdentifier('C', []),
	beta = 1,
	alpha = 0.0*1/Angstrom,
	L = 3.2,
	U = 3.7,
	rho1 = 0.0*Angstrom,
	rho2 = 0.0*Angstrom,
	x1 = numpy.array([-1.0, -0.5, -0.333412, 0.0, 0.5, 1.0]),
	f1 = numpy.array([-0.01, 0.0528, 0.09733, 0.37545, 2.0014, 8.0]),
	dfx1 = numpy.array([0.104, 0.17, 0.4, 1.406776, 6.056472, 20.240234]),
	dfxx1 = numpy.array([0.0, 0.37, 1.98, 4.508755, 16.147742, 43.901021]),
	x2 = numpy.array([-1.0, -0.5, -0.333412, 0.0, 0.5, 1.0]),
	f2 = numpy.array([-0.01, 0.0528, 0.09733, 0.271856, 0.416335, 1.0]),
	dfx2 = numpy.array([0.104, 0.17, 0.4, 0.488916, 0.25958, 2.831613]),
	dfxx2 = numpy.array([0.0, 0.37, 1.98, -0.866163, 1.170791, 10.239179]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerTriplePotential3(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('H', []),
	particleType3 = ParticleIdentifier('H', []),
	beta = 1,
	alpha = 0.0*1/Angstrom,
	L = 3.2,
	U = 3.7,
	rho1 = 0.0*Angstrom,
	rho2 = 0.0*Angstrom,
	x1 = numpy.array([-1.0, -0.5, -0.333412, 0.0, 0.5, 1.0]),
	f1 = numpy.array([-0.01, 0.0528, 0.09733, 0.37545, 2.0014, 8.0]),
	dfx1 = numpy.array([0.104, 0.17, 0.4, 1.406776, 6.056472, 20.240234]),
	dfxx1 = numpy.array([0.0, 0.37, 1.98, 4.508755, 16.147742, 43.901021]),
	x2 = numpy.array([-1.0, -0.5, -0.333412, 0.0, 0.5, 1.0]),
	f2 = numpy.array([-0.01, 0.0528, 0.09733, 0.271856, 0.416335, 1.0]),
	dfx2 = numpy.array([0.104, 0.17, 0.4, 0.488916, 0.25958, 2.831613]),
	dfxx2 = numpy.array([0.0, 0.37, 1.98, -0.866163, 1.170791, 10.239179]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerTriplePotential3(
	particleType1 = ParticleIdentifier('H', []),
	particleType2 = ParticleIdentifier('H', []),
	particleType3 = ParticleIdentifier('H', []),
	beta = 0,
	alpha = 4,
	L = -1.0,
	U = -1.0,
	rho1 = 0.7415887*Angstrom,
	rho2 = 0.7415887*Angstrom,
	x1 = numpy.array([-1.0, -0.866025, -0.5, 0.0, 0.5, 1.0]),
	f1 = numpy.array([11.23587, 12.164186, 16.811574, 19.065124, 19.704059, 19.991787]),
	dfx1 = numpy.array([0.963483, 11.272285, 10.02705, 1.087747, 1.667291, 0.0]),
	dfxx1 = numpy.array([116.199658, 43.393534, -26.117077, -3.972742, -1.13749, 9.009242]),
	x2 = numpy.array([0, 1]),
	f2 = numpy.array([0, 0]),
	dfx2 = numpy.array([0, 0]),
	dfxx2 = numpy.array([0, 0]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerTriplePotential3(
	particleType1 = ParticleIdentifier('H', []),
	particleType2 = ParticleIdentifier('H', []),
	particleType3 = ParticleIdentifier('C', []),
	beta = 0,
	alpha = 0,
	L = -1.0,
	U = -1.0,
	rho1 = 0.7415887*Angstrom,
	rho2 = 1.09*Angstrom,
	x1 = numpy.array([-1.0, -0.866025, -0.5, 0.0, 0.5, 1.0]),
	f1 = numpy.array([11.23587, 12.164186, 16.811574, 19.065124, 19.704059, 19.991787]),
	dfx1 = numpy.array([0.963483, 11.272285, 10.02705, 1.087747, 1.667291, 0.0]),
	dfxx1 = numpy.array([116.199658, 43.393534, -26.117077, -3.972742, -1.13749, 9.009242]),
	x2 = numpy.array([0, 1]),
	f2 = numpy.array([0, 0]),
	dfx2 = numpy.array([0, 0]),
	dfxx2 = numpy.array([0, 0]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerTriplePotential3(
	particleType1 = ParticleIdentifier('H', []),
	particleType2 = ParticleIdentifier('C', []),
	particleType3 = ParticleIdentifier('H', []),
	beta = 0,
	alpha = 0,
	L = -1.0,
	U = -1.0,
	rho1 = 1.09*Angstrom,
	rho2 = 0.7415887*Angstrom,
	x1 = numpy.array([-1.0, -0.866025, -0.5, 0.0, 0.5, 1.0]),
	f1 = numpy.array([11.23587, 12.164186, 16.811574, 19.065124, 19.704059, 19.991787]),
	dfx1 = numpy.array([0.963483, 11.272285, 10.02705, 1.087747, 1.667291, 0.0]),
	dfxx1 = numpy.array([116.199658, 43.393534, -26.117077, -3.972742, -1.13749, 9.009242]),
	x2 = numpy.array([0, 1]),
	f2 = numpy.array([0, 0]),
	dfx2 = numpy.array([0, 0]),
	dfxx2 = numpy.array([0, 0]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerTriplePotential3(
	particleType1 = ParticleIdentifier('H', []),
	particleType2 = ParticleIdentifier('C', []),
	particleType3 = ParticleIdentifier('C', []),
	beta = 0,
	alpha = 0,
	L = -1.0,
	U = -1.0,
	rho1 = 1.09*Angstrom,
	rho2 = 1.09*Angstrom,
	x1 = numpy.array([-1.0, -0.866025, -0.5, 0.0, 0.5, 1.0]),
	f1 = numpy.array([11.23587, 12.164186, 16.811574, 19.065124, 19.704059, 19.991787]),
	dfx1 = numpy.array([0.963483, 11.272285, 10.02705, 1.087747, 1.667291, 0.0]),
	dfxx1 = numpy.array([116.199658, 43.393534, -26.117077, -3.972742, -1.13749, 9.009242]),
	x2 = numpy.array([0, 1]),
	f2 = numpy.array([0, 0]),
	dfx2 = numpy.array([0, 0]),
	dfxx2 = numpy.array([0, 0]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerSplinePotential(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('C', []),
	activeTypes1 = [ParticleIdentifier('H', []), ],
	activeTypes2 = [ParticleIdentifier('C', []), ],
	x = numpy.array([0, 1, 2, 3]),
	y = numpy.array([0, 1, 2, 3]),
	f = numpy.array([
        [0.0, 0.0, 0.0, 0.0],
        [0.0, 0.0030267, 0.00317953, 0.0],
        [0.0078607, 0.00632625, 0.0, 0.0],
        [0.01612536, 0.0, 0.0, 0.0]]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerSplinePotential(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('H', []),
	activeTypes1 = [ParticleIdentifier('H', []), ],
	activeTypes2 = [ParticleIdentifier('C', []), ],
	x = numpy.array([0., 1., 2., 3.]),
	y = numpy.array([0., 1., 2., 3.]),
	f = numpy.array([
        [0.0, 0.01, -0.12204215, -0.30758471],
        [0.20933673, -0.1251234, -0.30052917, 0.0],
        [-0.06444962, -0.29890525, 0.0, 0.0],
        [-0.30392755, 0.0, 0.0, 0.0]]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerCorrectionPotential2(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('C', []),
	activeTypes = [ParticleIdentifier('C', []), ],
	L = 2.0,
	U = 3.0,
	x = numpy.array([0, 1, 2, 3]),
	z = numpy.array(
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    ),
	f = numpy.array([
        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0216935, 0.00495861, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.02469883, -0.00597133, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, -0.05989947, -0.05989947, -0.05989947, -0.05989947,
         -0.05989947, -0.05989947, -0.05989947, -0.05989947, -0.05989947,
         -0.05989947, -0.05989947, -0.05989947, -0.05989947, -0.05989947,
         -0.05989947, -0.05989947, -0.05989947, -0.05989947, -0.05989947]],

        [[0.0, 0.0216935, 0.00495861, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0525, -0.00208875, -0.0080428, -0.0080428,
         -0.0080428, -0.0080428, -0.0080428, -0.0080428, -0.0080428,
         -0.0080428, -0.0080428, -0.0080428, -0.0080428, -0.0080428,
         -0.0080428, -0.0080428, -0.0080428, -0.0080428, -0.0080428 ],
         [0.0, 0.00482478, 0.015, -0.01, -0.01168894,
         -0.01337788, -0.01506682, -0.01506682, -0.01506682, -0.01506682,
         -0.01506682, -0.01506682, -0.01506682, -0.01506682, -0.01506682,
         -0.01506682, -0.01506682, -0.01506682, -0.01506682, -0.01506682],
         [0.0, 0.0, -0.06241838, -0.06241838, -0.06241838,
         -0.06241838, -0.06241838, -0.06241838, -0.06241838, -0.06241838,
         -0.06241838, -0.06241838, -0.06241838, -0.06241838, -0.06241838,
         -0.06241838, -0.06241838, -0.06241838, -0.06241838, -0.06241838]],

        [[0.0, 0.02469883, -0.00597133, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.00482478, 0.015, -0.01, -0.01168894,
         -0.01337788, -0.01506682, -0.01506682, -0.01506682, -0.01506682,
         -0.01506682, -0.01506682, -0.01506682, -0.01506682, -0.01506682,
         -0.01506682, -0.01506682, -0.01506682, -0.01506682, -0.01506682],
         [0.0, 0.04722478, 0.011, 0.01985293, 0.01654411,
          0.01323529, 0.00992647, 0.00661765, 0.00330882, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, -0.02235469, -0.02235469, -0.02235469, -0.02235469,
         -0.02235469, -0.02235469, -0.02235469, -0.02235469, -0.02235469,
         -0.02235469, -0.02235469, -0.02235469, -0.02235469, -0.02235469,
         -0.02235469, -0.02235469, -0.02235469, -0.02235469, -0.02235469]],

        [[0.0, -0.05989947, -0.05989947, -0.05989947, -0.05989947,
         -0.05989947, -0.05989947, -0.05989947, -0.05989947, -0.05989947,
         -0.05989947, -0.05989947, -0.05989947, -0.05989947, -0.05989947,
         -0.05989947, -0.05989947, -0.05989947, -0.05989947, -0.05989947],
         [0.0, 0.0, -0.06241838, -0.06241838, -0.06241838,
         -0.06241838, -0.06241838, -0.06241838, -0.06241838, -0.06241838,
         -0.06241838, -0.06241838, -0.06241838, -0.06241838, -0.06241838,
         -0.06241838, -0.06241838, -0.06241838, -0.06241838, -0.06241838],
         [0.0, -0.02235469, -0.02235469, -0.02235469, -0.02235469,
         -0.02235469, -0.02235469, -0.02235469, -0.02235469, -0.02235469,
         -0.02235469, -0.02235469, -0.02235469, -0.02235469, -0.02235469,
         -0.02235469, -0.02235469, -0.02235469, -0.02235469, -0.02235469],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]]]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerCorrectionPotential2(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('H', []),
	activeTypes = [ParticleIdentifier('C', []), ],
	L = 2.0,
	U = 3.0,
	x = numpy.array([0, 1, 2, 3]),
	z = numpy.array(
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    ),
	f = numpy.array([
        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
         -0.00452389, -0.00452389, -0.00452389, -0.00452389, -0.00452389,
         -0.00452389, -0.00452389, -0.00452389, -0.00452389, -0.00452389,
         -0.00452389, -0.00452389, -0.00452389, -0.00452389, -0.00452389],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]],

        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, -0.25, -0.25, -0.25, -0.25,
         -0.25, -0.25, -0.25, -0.25, -0.25,
         -0.25, -0.25, -0.25, -0.25, -0.25,
         -0.25, -0.25, -0.25, -0.25, -0.25 ],
         [0.0, -0.125, -0.125, -0.125, -0.125,
         -0.125, -0.125, -0.125, -0.125, -0.125,
         -0.125, -0.125, -0.125, -0.125, -0.125,
         -0.125, -0.125, -0.125, -0.125, -0.125 ],
         [0.0, -0.1065, -0.1065, -0.1065, -0.1065,
         -0.1065, -0.1065, -0.1065, -0.1065, -0.1065,
         -0.1065, -0.1065, -0.1065, -0.1065, -0.1065,
         -0.1065, -0.1065, -0.1065, -0.1065, -0.1065 ]],

        [[0.0, 0.0, 0.0, 0.0, 0.0,
         -0.00452389, -0.00452389, -0.00452389, -0.00452389, -0.00452389,
         -0.00452389, -0.00452389, -0.00452389, -0.00452389, -0.00452389,
         -0.00452389, -0.00452389, -0.00452389, -0.00452389, -0.00452389],
         [0.0, -0.125, -0.125, -0.125, -0.125,
         -0.125, -0.125, -0.125, -0.125, -0.125,
         -0.125, -0.125, -0.125, -0.125, -0.125,
         -0.125, -0.125, -0.125, -0.125, -0.125 ],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]],

        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, -0.1065, -0.1065, -0.1065, -0.1065,
         -0.1065, -0.1065, -0.1065, -0.1065, -0.1065,
         -0.1065, -0.1065, -0.1065, -0.1065, -0.1065,
         -0.1065, -0.1065, -0.1065, -0.1065, -0.1065 ],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]]]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerCorrectionPotential2(
	particleType1 = ParticleIdentifier('H', []),
	particleType2 = ParticleIdentifier('H', []),
	activeTypes = [ParticleIdentifier('C', []), ],
	L = 2.0,
	U = 3.0,
	x = numpy.array([0, 1, 2, 3]),
	z = numpy.array(
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    ),
	f = numpy.array([
        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]],

        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.12491596, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]],

        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]],

        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]]]),
)
potentialSet.addPotential(_potential)
_potential = TersoffBrennerTorsionCorrectionPotential(
	particleType1 = ParticleIdentifier('C', []),
	particleType2 = ParticleIdentifier('C', []),
	activeTypes = [ParticleIdentifier('C', []), ],
	L = 2.0,
	U = 3.0,
	x = numpy.array([0, 1, 2, 3]),
	z = numpy.array(
        [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
    ),
	f = numpy.array([
        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]],

        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]],

        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, -0.03514004, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, -0.00404837,
         -0.00404837, -0.00404837, -0.00404837, -0.00404837, -0.00404837,
         -0.00404837, -0.00404837, -0.00404837, -0.00404837, -0.00404837],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]],

        [[0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0],
         [0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0,
          0.0, 0.0, 0.0, 0.0, 0.0]]]),
)
potentialSet.addPotential(_potential)
calculator = TremoloXCalculator(parameters=potentialSet)
calculator.setInternalOrdering("default")
calculator.setVerletListsDelta(0.25*Angstrom)

molecule_configuration.setCalculator(calculator)
molecule_configuration.update()
