11
« on: October 31, 2016, 18:06 »
Hello ATK Users,
I have tried to develop a new Stillinger-Weber type for WTe2 and calculate the cross-plane thermal conductivity. I want to add Lennard-Jones type potential between layers as well.
The potential I have developed works for monolayer or bulk material (no LJ intercation). However, It does not work for the case I add the LJ interaction as it does not recognize the potential I have developed for in-plane structure. Here is my code for calculator:
# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------
potentialSet = TremoloXPotentialSet(name = 'StillingerWeber_WTe_2016')
potentialSet.addParticleType(ParticleType(symbol='W', mass=183.84 * atomic_mass_unit, charge=None, sigma=None, sigma14=None, epsilon=None, epsilon14=None, atomicNumber=74))
potentialSet.addParticleType(ParticleType(symbol='Te', mass=78.96 * atomic_mass_unit, charge=None, sigma=None, sigma14=None, epsilon=None, epsilon14=None, atomicNumber=52))
#---------------------------------- Two Body -----------------------------------------------------
potential = Stiwe2Potential(particleType1 = 'Te', particleType2 = 'Te', p = 4.0, A = 12.265*eV, B = 60.4319*Angstrom**4, gamma = 0.046*Angstrom, r_cut = 4.05735*Angstrom)
potentialSet.addPotential(potential)
potential = Stiwe2Potential(particleType1 = 'W', particleType2 = 'W', p = 4.0, A = 26.7*eV, B = 29.0197*Angstrom**4, gamma = 2.019346*Angstrom, r_cut = 4.63325*Angstrom)
potentialSet.addPotential(potential)
potential = Stiwe2Potential(particleType1 = 'W', particleType2 = 'Te', p = 4.0, A = 35.783*eV, B = 32*Angstrom**4, gamma = 2.852*Angstrom, r_cut = 3.49635*Angstrom)
#---------------------------------- Three Body -----------------------------------------------------
potentialSet.addPotential(potential)
potential = Stiwe3Potential(particleType1 = 'Te', particleType2 = 'W', particleType3 = 'Te', gamma0 = 0.7*Angstrom, gamma1 = 0.7*Angstrom, l = 24.157*eV, cosTheta0 = 0.1, type = 1, r_0 = 3.29915*Angstrom, r_1 = 3.29915*Angstrom, r_13 = 4.05735*Angstrom)
potentialSet.addPotential(potential)
potential = Stiwe3Potential(particleType1 = 'W', particleType2 = 'Te', particleType3 = 'W', gamma0 = 2.2*Angstrom, gamma1 = 2.2*Angstrom, l =13.52*eV, cosTheta0 = 0.1, type = 1, r_0 = 3.29915*Angstrom, r_1 = 3.29915*Angstrom, r_13 = 4.63325*Angstrom)
potentialSet.addPotential(potential)
#--------------------------------------------------------------------------------------------------------
sw_layer1 = StillingerWeber_WSe_2016(tags='layer1')
sw_layer2 = StillingerWeber_WSe_2016(tags='layer2')
sw_layer1 = StillingerWeber_WSe_2016(tags='layer3')
sw_layer1 = StillingerWeber_WSe_2016(tags='layer4')
sw_layer1 = StillingerWeber_WSe_2016(tags='layer5')
sw_layer1 = StillingerWeber_WSe_2016(tags='layer6')
sw_layer1 = StillingerWeber_WSe_2016(tags='layer7')
sw_layer1 = StillingerWeber_WSe_2016(tags='layer8')
sw_layer1 = StillingerWeber_WSe_2016(tags='layer9')
sw_layer1 = StillingerWeber_WSe_2016(tags='layer10')
sw_layer1 = StillingerWeber_WSe_2016(tags='layer11')
# Define a new potential for the interlayer interaction.
lj_interlayer_potential = TremoloXPotentialSet(name="InterLayerPotential")
# Add particle type definitions for both types.
lj_interlayer_potential.addParticleType(ParticleType.fromElement(Tungsten))
lj_interlayer_potential.addParticleType(ParticleType.fromElement(Tellurium, sigma=3.5*Angstrom, epsilon=0.0215*eV))
# Add Lennard-Jones potentials between the sulfur atoms of different layers.
lj_interlayer_potential.addPotential(LennardJonesPotential('Te', 'Te', r_cut=10.0 * Angstrom))
lj_interlayer_potential.setTags(['layer1', 'layer2', 'layer3', 'layer4', 'layer5', 'layer6', 'layer7', 'layer8', 'layer9', 'layer10', 'layer11'])
# Combine all 3 potential sets in a single calculator.
calculator = TremoloXCalculator(parameters=[sw_layer1, sw_layer2, sw_layer3, sw_layer4, sw_layer5, sw_layer6, sw_layer7, sw_layer8, sw_layer9, sw_layer10, sw_layer11, lj_interlayer_potential])
bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('/home/payam/Desktop/CrossPlaneKappa/300K_total.nc', bulk_configuration)
Could anyone help me to modify the calculator?
Best regards,
Payam