Author Topic: Combining Tersoff and LJ potential  (Read 2010 times)

0 Members and 1 Guest are viewing this topic.

Offline iteel_tsu

  • New QuantumATK user
  • *
  • Posts: 1
  • Country: jp
  • Reputation: 0
    • View Profile
Combining Tersoff and LJ potential
« on: February 19, 2019, 10:10 »
Dear Sir,

I want to do OptimizeGeometry with Carbon Nanotube system and calculate PhononTransmissionSpectrum.
And I tried to combine Tersoff potential for intra-CNTs and LJ potential for inter-CNTs, refering "https://docs.quantumatk.com/v2016/tutorials/combining_potentials/combining_potentials.html"

With BulkConfiguration,  I could successfully do OptimizeGeometry.
On the other hand, when I tried to calculate DynamicalMatrix with DeviceConfiguration, I only obtained following error message.
I wonder this discrepancy. Could you give me some advice about this problem?

###making potential script###
Quote
def tag_lists(device_configuration):
   tag_name = list(device_configuration.tags())
   tag_number = len(tag_name)
   tag_atoms = []

   for i in range(tag_number):
      ITAG = device_configuration.indicesFromTags(tag_name)
      tag_atoms.append(ITAG)
   
   return tag_name, tag_atoms, tag_number

potential_setOfset = []
tag_name, tag_atoms, tag_number = tag_lists(device_configuration)

for t1 in range(tag_number):
   potential_set_intra = TremoloXPotentialSet(name = "Comb_CNT_intra")
   potential_set_intra.addParticleType(ParticleType(symbol="C", mass=12.0107 * atomic_mass_unit, charge=None, sigma=None, sigma14=None, epsilon=None, epsilon14=None, atomicNumber=6))

   potential_tersoff = TersoffSingleTypePotential(particleType = "C", A = 1393.6*eV, B = 430.0*eV, R = 1.8*Angstrom, S = 2.1*Angstrom, l = 3.4879*1/Angstrom, mu = 2.2119*1/Angstrom, alpha = 0.0*1/Angstrom, 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.93)
   potential_set_intra.addPotential(potential_tersoff)
   potential_set_intra.setTags(tag_name[t1])
   potential_setOfset.append(potential_set_intra)
   
   for t2 in range(tag_number):
      if t2 <= t1:
         continue
      potential_set_inter = TremoloXPotentialSet(name = "Comb_CNT_inter")
      potential_set_inter.addParticleType(ParticleType(symbol="C", mass=12.0107 * atomic_mass_unit, charge=None, sigma=3.3611*Angstrom, sigma14=None, epsilon=0.004207*eV, epsilon14=None, atomicNumber=6))
      potential_LJ = LennardJonesPotential("C", "C", r_cut=10.0 * Angstrom)
      potential_set_inter.addPotential(potential_LJ)
      potential_set_inter.setTags([tag_name[t1], tag_name[t2]])
      potential_setOfset.append(potential_set_inter)

calculator = TremoloXCalculator(parameters = potential_setOfset)
calculator.setInternalOrdering("default")
calculator.setVerletListsDelta(0.25*Angstrom)

device_configuration.setCalculator(calculator)
nlprint(device_configuration)
device_configuration.update()
nlsave(filename_out_nc, device_configuration)

dynamical_matrix = DynamicalMatrix(
    configuration=device_configuration,
    repetitions=Automatic,
    atomic_displacement=0.01*Angstrom,
    acoustic_sum_rule=True,
    symmetrize=True,
    finite_difference_method=Central,
    processes_per_displacement=1,
    constrain_electrodes=False,
    use_equivalent_bulk=True,
    )
nlsave(filename_out_nc, dynamical_matrix)

###error message###
Quote
Traceback (most recent call last):
  File "filename.py", line 156, in <module>
    use_equivalent_bulk=True,
  File ".\zipdir\NL\Analysis\DynamicalMatrix.py", line 332, in __init__
  File ".\zipdir\NL\Analysis\DynamicalMatrix.py", line 1052, in calculateDynamic
alMatrix
  File ".\zipdir\NL\CommonConcepts\Configurations\AtomicConfiguration.py", line
1491, in update
  File ".\build\lib\site-packages\tremolox\TremoloBaseCalculator.py", line 252,
in _update
  File ".\build\lib\site-packages\tremolox\TremoloBaseCalculator.py", line 813,
in _configure_tremolo_model
  File ".\build\lib\site-packages\tremolox\TremoloXPotentialSet.py", line 14775,
 in _register
RuntimeError: Particle C is not defined in the potential!


Please note that I am using ATK2016.4
Thank you!