Application of Rotational Sum Rule for SnS monolayer

Dear Sir,

         I have calculated phonon dispersion of SnS monolayer using 5x5x1 supercell  with K mesh 5x5x1. I am getting negative frequencies around Gamma point. To remove the error I tried to apply the rotational sum rules for this structure. I have SPOSCAR, FORCE_CONSTANTS obtained from Phonopy, POSCAR files. I am using using the following script to obtain ForceConstantPotential:


from ase.io import read
from hiphive import ClusterSpace, ForceConstantPotential
from hiphive.cutoffs import estimate_maximum_cutoff
from hiphive.utilities import extract_parameters
from hiphive import ForceConstants, ClusterSpace, ForceConstantPotential
from hiphive import enforce_rotational_sum_rules
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.01
cutoffs = [8.0] # 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,‘FORCE_CONSTANTS’)

# Find the parameters that best fits the force constants given you cluster space
parameters = extract_parameters(fcs, cs)

fcp = ForceConstantPotential(fcs, parameters)

The error I am getting is as follows:

Primitive cell:
** Formula: S2Sn2**
** Cell:**
** [ 4.16278 0.00000 0.00000]**
** [ 0.00000 4.36945 0.00000]**
** [ 0.00000 0.00000 20.45051]**
** Basis:**
** Sn [ 0.25000 0.38112 0.36012]**
** Sn [ 0.75000 0.88112 0.49733]**
** S [ 0.75000 0.97299 0.37231]**
** S [ 0.25000 0.47299 0.48514]**

Crystal symmetry:
** Spacegroup: Pmn2_1 (31)**
** Unique site: 2**
** Symmetry operations: 4**
** symprec: 1.00e-05**

Cutoffs:
** Maximum cutoff: 8.0**
** Found 4 center atoms with 48 images totaling 52 atoms**

Clusters:
** Clusters: {2: 162}**
** Total number of clusters: 162**

Orbits:
** Orbits: {2: 26}**
** Total number of orbits: 26**

Eigentensors:
** Eigentensors: {2: 198}**
** Total number of parameters: 198**

Constraints:
** Acoustic: True**
** Number of degrees of freedom: {2: 188}**
** Total number of degrees of freedom: 188**
Force constant reconstruction error order 2: 6.8425%
Traceback (most recent call last):
** File “/home/safikul_akd/Anaconda_physics/lib/python3.9/site-packages/hiphive/safikul.py”, line 23, in **
** fcp = ForceConstantPotential(fcs, parameters)**
** File “/home/safikul_akd/Anaconda_physics/envs/phonopy/lib/python3.10/site-packages/hiphive/force_constant_potential.py”, line 44, in init**
** self._prim = cs.primitive_structure.copy()**
AttributeError: ‘SortedForceConstants’ object has no attribute 'primitive_structure’

Sir, could you please help me by providing the full script to generate ForceConstantPotential and to apply Born-Huang rotational sum rules?

Kind Regards,
Safikul

This is commonly asked question and a good starting point is the answer given in the hiphive-FAQ

You are running fcp = ForceConstantPotential(fcs, parameters), but if you look at the basic tutorial or documentation for ForceConstantPotential you will see that it should be initialized with a ClusterSpace and parameters, e.g. fcp = ForceConstantPotential(cs, parameters).

Dear Sir,
I have generated fc2_rotinv.hdf5 file. Sir, how can I generate phonon dispersion curve using this file in phonopy?

Kind Regards,
Safikul

Dear Sir,

           Thank you for your help. I have solved this issue and plotted phonon dispersion curve and it looks fine. There is no negative frequencies around Gamma point.

Kind Regards,
Safikul