Hello experts,
I am facing an error while enforcing the rotational sum rule to my force constants obtained from PHONOPY.
File “/home/murari/anaconda3/lib/python3.8/site-packages/hiphive/core/utilities.py”, line 170, in index
return self._dict[value]
KeyError: Atom(12, (-2, -1, 0))
This is the error I am facing, I am also describing the script file used to enforce sum rule:- from ase.io import read
#from hiphive import *
from hiphive import ForceConstants
from hiphive import ClusterSpace, ForceConstantPotential, enforce_rotational_sum_rules
from hiphive.cutoffs import estimate_maximum_cutoff
from hiphive.utilities import extract_parameters
prim = read(‘POSCAR’)
supercell = read(‘SPOSCAR’)
Define a cluster space using the largest cutoff you can
max_cutoff = estimate_maximum_cutoff(supercell)-0.001
cutoffs = [max_cutoff] # only second order needed
cs = ClusterSpace(prim, cutoffs)
import the phonopy force constants using the correct supercell also provided by phonopy
fcs = ForceConstants.read_phonopy(supercell, ‘FC’,format=‘text’)
Find the parameters that best fits the force constants given you cluster space
parameters = extract_parameters(fcs, cs)
Enforce the rotational sum rules
parameters_rot = enforce_rotational_sum_rules(cs, parameters, [‘Huang’ ,‘Born-Huang’])
#parameters_trans = enforce_translational_sum_rules
use the new parameters to make a fcp and then create the force constants and write to a phonopy file
fcp = ForceConstantPotential(cs, parameters_rot)
fcs = fcp.get_force_constants(supercell)
fcs.write_to_phonopy(‘FORCE_CONSTANTS’, format=‘text’)
My system is a 2D system with a unit-cell made of 15 atoms. The unit-cell I have made is actually a kind of doped system made of 221. Please any kind of suggestion will be helpful. I have also used same script for normal 2D systems earlier, it worked fine for me. But this time I think the complicated structure is an issue.