ttadano / ALM

MIT License
16 stars 9 forks source link

Rotational invariance is not supported in python API #34

Open wenhaomao opened 3 years ago

wenhaomao commented 3 years ago

I notice that new version 1.1.0 of alamode can support applying rotational symmetry to force constant. However, in python API , say ALM, this function is not implimented. The responsible module is ALM.set_constraint(). Could you give me some advice to modify the code?

wenhaomao commented 3 years ago

The force constant file format of alamode-1.1.0 is fc.fcs. Can I use the ALM (python API) to convert the fc.fcs generated by alamode ?

ttadano commented 3 years ago

The application of rotational invariance is supported in alamode only when the constraint is imposed numerically (see the description of ICONST tag in alamode documentation). When the constraint is imposed algebraically, alamode only supports the translational invariance currently. Since ALM python API uses the algebraic version, it is not easy to support the rotational invariance in python API because I will need to modify the C++ part extensively.

If you think the rotational invariance is necessary for your system, I will add its support to my to-do list.

Can I use the ALM (python API) to convert the fc.fcs generated by alamode ?

This is not supported. Please perform the optimization again with the same displacement-force datasets and cutoff radii by using API.

wenhaomao commented 3 years ago

@ttadano Thank you very much. For my recent research, yes, the rotational invariance of force constant is necessery, since I only concern the behavior of phonon dispersion relation in the long wave limit. The rotational invariance support in python API will be useful. For now, parsing the fc.fcs may be a quicker way for me.

wenhaomao commented 3 years ago

@ttadano @atztogo I am appreciating your effort on developing usefull package! I'm back and report my method to obtain fc.hdf5, which can be used by phonopy or phono3py. Add "HESSIAN = 1" in '&general' of alamode input. After running alm, the *.hessian is created. I can easily create fc.hdf5 from hessian file by a python script. create-fc2-hdf5-from-hessian.py.txt