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###
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###
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!