Author Topic: Combining new SW potential with LJ interaction between layers  (Read 3544 times)

0 Members and 1 Guest are viewing this topic.

Offline payam

  • Heavy QuantumATK user
  • ***
  • Posts: 42
  • Reputation: 0
    • View Profile
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

« Last Edit: October 31, 2016, 21:19 by payam »

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Combining new SW potential with LJ interaction between layers
« Reply #1 on: November 1, 2016, 00:24 »
sw_layer1 is defined many times instead of being 3,4,5,6...

Offline Anders Blom

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 5575
  • Country: dk
  • Reputation: 96
    • View Profile
    • QuantumATK at Synopsys
Re: Combining new SW potential with LJ interaction between layers
« Reply #2 on: November 1, 2016, 00:25 »
Also you refer to a WSe potential, instead of the potential you just made...

Offline payam

  • Heavy QuantumATK user
  • ***
  • Posts: 42
  • Reputation: 0
    • View Profile
Re: Combining new SW potential with LJ interaction between layers
« Reply #3 on: November 1, 2016, 16:40 »
Dear Anders,
You are right. Thank you.
However, it seems that the number of layers should be limited to 2 in ATK. With 2 layers it works.

Best regards,
Payam