phono3py 3.3.1__tar.gz → 3.3.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. {phono3py-3.3.1 → phono3py-3.3.2}/PKG-INFO +1 -1
  2. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/_version.py +2 -2
  3. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/api_phono3py.py +18 -8
  4. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/create_force_constants.py +56 -29
  5. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/load.py +39 -16
  6. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/phono3py_script.py +3 -2
  7. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/dataset.py +11 -0
  8. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/version.py +1 -1
  9. {phono3py-3.3.1 → phono3py-3.3.2}/test/conftest.py +16 -0
  10. phono3py-3.3.2/test/cui/test_phono3py_load.py +18 -0
  11. {phono3py-3.3.1 → phono3py-3.3.2}/test/cui/test_phono3py_load_script.py +1 -1
  12. {phono3py-3.3.1 → phono3py-3.3.2}/CMakeLists.txt +0 -0
  13. {phono3py-3.3.1 → phono3py-3.3.2}/LICENSE +0 -0
  14. {phono3py-3.3.1 → phono3py-3.3.2}/README.md +0 -0
  15. {phono3py-3.3.1 → phono3py-3.3.2}/c/_phono3py.c +0 -0
  16. {phono3py-3.3.1 → phono3py-3.3.2}/c/_phono3py.cpp +0 -0
  17. {phono3py-3.3.1 → phono3py-3.3.2}/c/_phononcalc.c +0 -0
  18. {phono3py-3.3.1 → phono3py-3.3.2}/c/_phononcalc.cpp +0 -0
  19. {phono3py-3.3.1 → phono3py-3.3.2}/c/_recgrid.cpp +0 -0
  20. {phono3py-3.3.1 → phono3py-3.3.2}/c/bzgrid.c +0 -0
  21. {phono3py-3.3.1 → phono3py-3.3.2}/c/bzgrid.h +0 -0
  22. {phono3py-3.3.1 → phono3py-3.3.2}/c/collision_matrix.c +0 -0
  23. {phono3py-3.3.1 → phono3py-3.3.2}/c/collision_matrix.h +0 -0
  24. {phono3py-3.3.1 → phono3py-3.3.2}/c/dynmat.c +0 -0
  25. {phono3py-3.3.1 → phono3py-3.3.2}/c/dynmat.h +0 -0
  26. {phono3py-3.3.1 → phono3py-3.3.2}/c/fc3.c +0 -0
  27. {phono3py-3.3.1 → phono3py-3.3.2}/c/fc3.h +0 -0
  28. {phono3py-3.3.1 → phono3py-3.3.2}/c/funcs.c +0 -0
  29. {phono3py-3.3.1 → phono3py-3.3.2}/c/funcs.h +0 -0
  30. {phono3py-3.3.1 → phono3py-3.3.2}/c/grgrid.c +0 -0
  31. {phono3py-3.3.1 → phono3py-3.3.2}/c/grgrid.h +0 -0
  32. {phono3py-3.3.1 → phono3py-3.3.2}/c/gridsys.c +0 -0
  33. {phono3py-3.3.1 → phono3py-3.3.2}/c/gridsys.h +0 -0
  34. {phono3py-3.3.1 → phono3py-3.3.2}/c/imag_self_energy_with_g.c +0 -0
  35. {phono3py-3.3.1 → phono3py-3.3.2}/c/imag_self_energy_with_g.h +0 -0
  36. {phono3py-3.3.1 → phono3py-3.3.2}/c/interaction.c +0 -0
  37. {phono3py-3.3.1 → phono3py-3.3.2}/c/interaction.h +0 -0
  38. {phono3py-3.3.1 → phono3py-3.3.2}/c/isotope.c +0 -0
  39. {phono3py-3.3.1 → phono3py-3.3.2}/c/isotope.h +0 -0
  40. {phono3py-3.3.1 → phono3py-3.3.2}/c/lagrid.c +0 -0
  41. {phono3py-3.3.1 → phono3py-3.3.2}/c/lagrid.h +0 -0
  42. {phono3py-3.3.1 → phono3py-3.3.2}/c/lapack_wrapper.c +0 -0
  43. {phono3py-3.3.1 → phono3py-3.3.2}/c/lapack_wrapper.h +0 -0
  44. {phono3py-3.3.1 → phono3py-3.3.2}/c/niggli.c +0 -0
  45. {phono3py-3.3.1 → phono3py-3.3.2}/c/niggli.h +0 -0
  46. {phono3py-3.3.1 → phono3py-3.3.2}/c/phono3py.c +0 -0
  47. {phono3py-3.3.1 → phono3py-3.3.2}/c/phono3py.h +0 -0
  48. {phono3py-3.3.1 → phono3py-3.3.2}/c/phonoc_array.h +0 -0
  49. {phono3py-3.3.1 → phono3py-3.3.2}/c/phonoc_const.h +0 -0
  50. {phono3py-3.3.1 → phono3py-3.3.2}/c/phonon.c +0 -0
  51. {phono3py-3.3.1 → phono3py-3.3.2}/c/phonon.h +0 -0
  52. {phono3py-3.3.1 → phono3py-3.3.2}/c/phononcalc.c +0 -0
  53. {phono3py-3.3.1 → phono3py-3.3.2}/c/phononcalc.h +0 -0
  54. {phono3py-3.3.1 → phono3py-3.3.2}/c/pp_collision.c +0 -0
  55. {phono3py-3.3.1 → phono3py-3.3.2}/c/pp_collision.h +0 -0
  56. {phono3py-3.3.1 → phono3py-3.3.2}/c/real_self_energy.c +0 -0
  57. {phono3py-3.3.1 → phono3py-3.3.2}/c/real_self_energy.h +0 -0
  58. {phono3py-3.3.1 → phono3py-3.3.2}/c/real_to_reciprocal.c +0 -0
  59. {phono3py-3.3.1 → phono3py-3.3.2}/c/real_to_reciprocal.h +0 -0
  60. {phono3py-3.3.1 → phono3py-3.3.2}/c/recgrid.c +0 -0
  61. {phono3py-3.3.1 → phono3py-3.3.2}/c/recgrid.h +0 -0
  62. {phono3py-3.3.1 → phono3py-3.3.2}/c/reciprocal_to_normal.c +0 -0
  63. {phono3py-3.3.1 → phono3py-3.3.2}/c/reciprocal_to_normal.h +0 -0
  64. {phono3py-3.3.1 → phono3py-3.3.2}/c/snf3x3.c +0 -0
  65. {phono3py-3.3.1 → phono3py-3.3.2}/c/snf3x3.h +0 -0
  66. {phono3py-3.3.1 → phono3py-3.3.2}/c/tetrahedron_method.c +0 -0
  67. {phono3py-3.3.1 → phono3py-3.3.2}/c/tetrahedron_method.h +0 -0
  68. {phono3py-3.3.1 → phono3py-3.3.2}/c/triplet.c +0 -0
  69. {phono3py-3.3.1 → phono3py-3.3.2}/c/triplet.h +0 -0
  70. {phono3py-3.3.1 → phono3py-3.3.2}/c/triplet_grid.c +0 -0
  71. {phono3py-3.3.1 → phono3py-3.3.2}/c/triplet_grid.h +0 -0
  72. {phono3py-3.3.1 → phono3py-3.3.2}/c/triplet_iw.c +0 -0
  73. {phono3py-3.3.1 → phono3py-3.3.2}/c/triplet_iw.h +0 -0
  74. {phono3py-3.3.1 → phono3py-3.3.2}/ctest/CMakeLists.txt +0 -0
  75. {phono3py-3.3.1 → phono3py-3.3.2}/ctest/README.md +0 -0
  76. {phono3py-3.3.1 → phono3py-3.3.2}/ctest/fortran/CMakeLists.txt +0 -0
  77. {phono3py-3.3.1 → phono3py-3.3.2}/ctest/fortran/gridsysf/CMakeLists.txt +0 -0
  78. {phono3py-3.3.1 → phono3py-3.3.2}/doc/README.md +0 -0
  79. {phono3py-3.3.1 → phono3py-3.3.2}/example/AlN-LDA/BORN +0 -0
  80. {phono3py-3.3.1 → phono3py-3.3.2}/example/AlN-LDA/FORCES_FC2 +0 -0
  81. {phono3py-3.3.1 → phono3py-3.3.2}/example/AlN-LDA/FORCES_FC3.lzma +0 -0
  82. {phono3py-3.3.1 → phono3py-3.3.2}/example/AlN-LDA/POSCAR-unitcell +0 -0
  83. {phono3py-3.3.1 → phono3py-3.3.2}/example/AlN-LDA/README.md +0 -0
  84. {phono3py-3.3.1 → phono3py-3.3.2}/example/AlN-LDA/phono3py_disp.yaml +0 -0
  85. {phono3py-3.3.1 → phono3py-3.3.2}/example/AlN-LDA/phono3py_disp_dimfc2.yaml +0 -0
  86. {phono3py-3.3.1 → phono3py-3.3.2}/example/NaCl-alm/README.md +0 -0
  87. {phono3py-3.3.1 → phono3py-3.3.2}/example/NaCl-alm/phono3py_params_NaCl222.yaml.xz +0 -0
  88. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-CRYSTAL/FORCES_FC2 +0 -0
  89. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-CRYSTAL/FORCES_FC3 +0 -0
  90. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-CRYSTAL/README +0 -0
  91. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-CRYSTAL/TEMPLATE +0 -0
  92. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-CRYSTAL/TEMPLATE3 +0 -0
  93. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-CRYSTAL/crystal.o +0 -0
  94. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-CRYSTAL/outputs.tar.gz +0 -0
  95. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-LDA/FORCES_FC3 +0 -0
  96. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-LDA/POSCAR-unitcell +0 -0
  97. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-LDA/README.md +0 -0
  98. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-LDA/phono3py_disp.yaml +0 -0
  99. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-LDA/vasprun_xmls.tar.lzma +0 -0
  100. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBE/FORCES_FC3 +0 -0
  101. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBE/POSCAR-unitcell +0 -0
  102. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBE/README.md +0 -0
  103. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBE/phono3py_disp.yaml +0 -0
  104. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBE/vasprun_xmls.tar.lzma +0 -0
  105. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/FORCES_FC3 +0 -0
  106. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/POSCAR-unitcell +0 -0
  107. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/README.md +0 -0
  108. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/Si-band-DOS.png +0 -0
  109. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/Si-kaccum.png +0 -0
  110. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/Si.py +0 -0
  111. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/phono3py_disp.yaml +0 -0
  112. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/phono3py_disp_dimfc2.yaml +0 -0
  113. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/vasprun_xml_fc2/disp-fc2-00001/INCAR +0 -0
  114. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/vasprun_xml_fc2/disp-fc2-00001/POSCAR +0 -0
  115. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/vasprun_xml_fc2/disp-fc2-00001/vasprun.xml +0 -0
  116. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-PBEsol/vasprun_xmls.tar.lzma +0 -0
  117. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-QE/FORCES_FC3 +0 -0
  118. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-QE/README.md +0 -0
  119. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-QE/Si.in +0 -0
  120. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-QE/phono3py_disp.yaml +0 -0
  121. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-QE/supercell_out.tar.lzma +0 -0
  122. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-TURBOMOLE/FORCES_FC2 +0 -0
  123. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-TURBOMOLE/FORCES_FC3 +0 -0
  124. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-TURBOMOLE/README +0 -0
  125. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-TURBOMOLE/control +0 -0
  126. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-TURBOMOLE/coord +0 -0
  127. {phono3py-3.3.1 → phono3py-3.3.2}/example/Si-TURBOMOLE/outputs.tar.gz +0 -0
  128. {phono3py-3.3.1 → phono3py-3.3.2}/example/Wigner_La2Zr2O7/BORN +0 -0
  129. {phono3py-3.3.1 → phono3py-3.3.2}/example/Wigner_La2Zr2O7/POSCAR +0 -0
  130. {phono3py-3.3.1 → phono3py-3.3.2}/example/Wigner_La2Zr2O7/command.sh +0 -0
  131. {phono3py-3.3.1 → phono3py-3.3.2}/example/Wigner_La2Zr2O7/fc2.hdf5 +0 -0
  132. {phono3py-3.3.1 → phono3py-3.3.2}/example/Wigner_La2Zr2O7/kappa-m191919.hdf5 +0 -0
  133. {phono3py-3.3.1 → phono3py-3.3.2}/example/Wigner_La2Zr2O7/tc_La2Zr2O7.out.xz +0 -0
  134. {phono3py-3.3.1 → phono3py-3.3.2}/example/zb-ZnTe-PBEsol/README.md +0 -0
  135. {phono3py-3.3.1 → phono3py-3.3.2}/example/zb-ZnTe-PBEsol/launch_phono3py_ZnTe_PBEsol_222.py +0 -0
  136. {phono3py-3.3.1 → phono3py-3.3.2}/example/zb-ZnTe-PBEsol/phono3py_params_ZnTe.yaml.xz +0 -0
  137. {phono3py-3.3.1 → phono3py-3.3.2}/fortran/CMakeLists.txt +0 -0
  138. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/__init__.py +0 -0
  139. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/api_isotope.py +0 -0
  140. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/api_jointdos.py +0 -0
  141. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/conductivity/__init__.py +0 -0
  142. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/conductivity/base.py +0 -0
  143. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/conductivity/direct_solution.py +0 -0
  144. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/conductivity/kubo.py +0 -0
  145. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/conductivity/rta.py +0 -0
  146. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/conductivity/utils.py +0 -0
  147. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/conductivity/wigner.py +0 -0
  148. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/__init__.py +0 -0
  149. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/create_force_sets.py +0 -0
  150. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/create_supercells.py +0 -0
  151. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/kaccum_script.py +0 -0
  152. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/phono3py_argparse.py +0 -0
  153. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/settings.py +0 -0
  154. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/show_log.py +0 -0
  155. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/cui/triplets_info.py +0 -0
  156. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/file_IO.py +0 -0
  157. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/interface/__init__.py +0 -0
  158. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/interface/alm.py +0 -0
  159. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/interface/calculator.py +0 -0
  160. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/interface/fc_calculator.py +0 -0
  161. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/interface/phono3py_yaml.py +0 -0
  162. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/other/__init__.py +0 -0
  163. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/other/isotope.py +0 -0
  164. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/other/kaccum.py +0 -0
  165. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/other/tetrahedron_method.py +0 -0
  166. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon/__init__.py +0 -0
  167. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon/func.py +0 -0
  168. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon/grid.py +0 -0
  169. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon/group_velocity_matrix.py +0 -0
  170. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon/heat_capacity_matrix.py +0 -0
  171. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon/solver.py +0 -0
  172. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon/velocity_operator.py +0 -0
  173. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/__init__.py +0 -0
  174. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/collision_matrix.py +0 -0
  175. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/displacement_fc3.py +0 -0
  176. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/fc3.py +0 -0
  177. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/gruneisen.py +0 -0
  178. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/imag_self_energy.py +0 -0
  179. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/interaction.py +0 -0
  180. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/joint_dos.py +0 -0
  181. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/real_self_energy.py +0 -0
  182. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/real_to_reciprocal.py +0 -0
  183. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/reciprocal_to_normal.py +0 -0
  184. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/spectral_function.py +0 -0
  185. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/phonon3/triplets.py +0 -0
  186. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/scripts/phono3py.py +0 -0
  187. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/scripts/phono3py_coleigplot.py +0 -0
  188. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/scripts/phono3py_kaccum.py +0 -0
  189. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/scripts/phono3py_kdeplot.py +0 -0
  190. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/scripts/phono3py_load.py +0 -0
  191. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/sscha/__init__.py +0 -0
  192. {phono3py-3.3.1 → phono3py-3.3.2}/phono3py/sscha/sscha.py +0 -0
  193. {phono3py-3.3.1 → phono3py-3.3.2}/pyproject.toml +0 -0
  194. {phono3py-3.3.1 → phono3py-3.3.2}/test/AgNO2_cell.yaml +0 -0
  195. {phono3py-3.3.1 → phono3py-3.3.2}/test/BORN_NaCl +0 -0
  196. {phono3py-3.3.1 → phono3py-3.3.2}/test/FORCES_FC3_si_pbesol +0 -0
  197. {phono3py-3.3.1 → phono3py-3.3.2}/test/FORCE_SETS_NaCl +0 -0
  198. {phono3py-3.3.1 → phono3py-3.3.2}/test/Si-111-222-fd.tar.xz +0 -0
  199. {phono3py-3.3.1 → phono3py-3.3.2}/test/Si-111-222-rd.tar.xz +0 -0
  200. {phono3py-3.3.1 → phono3py-3.3.2}/test/api/test_api_phono3py.py +0 -0
  201. {phono3py-3.3.1 → phono3py-3.3.2}/test/conductivity/__init__.py +0 -0
  202. {phono3py-3.3.1 → phono3py-3.3.2}/test/conductivity/test_kappa_LBTE.py +0 -0
  203. {phono3py-3.3.1 → phono3py-3.3.2}/test/conductivity/test_kappa_LBTE_Wigner.py +0 -0
  204. {phono3py-3.3.1 → phono3py-3.3.2}/test/conductivity/test_kappa_RTA.py +0 -0
  205. {phono3py-3.3.1 → phono3py-3.3.2}/test/conductivity/test_kappa_RTA_Wigner.py +0 -0
  206. {phono3py-3.3.1 → phono3py-3.3.2}/test/cui/phono3py_params-qe-Si222.yaml.xz +0 -0
  207. {phono3py-3.3.1 → phono3py-3.3.2}/test/file_IO/test_file_IO.py +0 -0
  208. {phono3py-3.3.1 → phono3py-3.3.2}/test/interface/test_phono3py_yaml.py +0 -0
  209. {phono3py-3.3.1 → phono3py-3.3.2}/test/other/__init__.py +0 -0
  210. {phono3py-3.3.1 → phono3py-3.3.2}/test/other/test_isotope.py +0 -0
  211. {phono3py-3.3.1 → phono3py-3.3.2}/test/other/test_kaccum.py +0 -0
  212. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_params-Si111-rd.yaml.xz +0 -0
  213. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_params_AlN332.yaml.xz +0 -0
  214. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_params_MgO-222rd-444rd.yaml.xz +0 -0
  215. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_params_NaCl111.yaml +0 -0
  216. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_params_NaCl222.yaml.xz +0 -0
  217. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_params_Si-111-222-fd.yaml.xz +0 -0
  218. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_params_Si-111-222-rd.yaml.xz +0 -0
  219. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_params_Si-111-222.yaml +0 -0
  220. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_params_Si111.yaml +0 -0
  221. {phono3py-3.3.1 → phono3py-3.3.2}/test/phono3py_si_pbesol.yaml +0 -0
  222. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon/__init__.py +0 -0
  223. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon/test_grid.py +0 -0
  224. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon/test_velocity_operator.py +0 -0
  225. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon3/__init__.py +0 -0
  226. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon3/test_displacements.py +0 -0
  227. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon3/test_fc3.py +0 -0
  228. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon3/test_imag_self_energy.py +0 -0
  229. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon3/test_interaction.py +0 -0
  230. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon3/test_joint_dos.py +0 -0
  231. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon3/test_real_self_energy.py +0 -0
  232. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon3/test_spectral_function.py +0 -0
  233. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonon3/test_triplets.py +0 -0
  234. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonopy_disp_NaCl.yaml +0 -0
  235. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonopy_params-Si111-iterha.yaml.gz +0 -0
  236. {phono3py-3.3.1 → phono3py-3.3.2}/test/phonopy_params_Si.yaml +0 -0
  237. {phono3py-3.3.1 → phono3py-3.3.2}/test/sscha/__init__.py +0 -0
  238. {phono3py-3.3.1 → phono3py-3.3.2}/test/sscha/test_sscha.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: phono3py
3
- Version: 3.3.1
3
+ Version: 3.3.2
4
4
  Summary: This is the phono3py module.
5
5
  Author-Email: Atsushi Togo <atztogo@gmail.com>
6
6
  License: Copyright (c) 2015-2024, Phonopy. All rights reserved.
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '3.3.1'
16
- __version_tuple__ = version_tuple = (3, 3, 1)
15
+ __version__ = version = '3.3.2'
16
+ __version_tuple__ = version_tuple = (3, 3, 2)
@@ -81,7 +81,7 @@ from phono3py.conductivity.rta import get_thermal_conductivity_RTA
81
81
  from phono3py.interface.fc_calculator import get_fc3
82
82
  from phono3py.interface.phono3py_yaml import Phono3pyYaml
83
83
  from phono3py.phonon.grid import BZGrid
84
- from phono3py.phonon3.dataset import get_displacements_and_forces_fc3
84
+ from phono3py.phonon3.dataset import forces_in_dataset, get_displacements_and_forces_fc3
85
85
  from phono3py.phonon3.displacement_fc3 import (
86
86
  direction_to_displacement,
87
87
  get_third_order_displacements,
@@ -846,6 +846,9 @@ class Phono3py:
846
846
  """
847
847
  dataset = self._dataset
848
848
 
849
+ if self._dataset is None:
850
+ raise RuntimeError("displacement dataset is not set.")
851
+
849
852
  if "first_atoms" in dataset:
850
853
  num_scells = len(dataset["first_atoms"])
851
854
  for disp1 in dataset["first_atoms"]:
@@ -863,7 +866,7 @@ class Phono3py:
863
866
  for disp2 in disp1["second_atoms"]:
864
867
  displacements[i, disp2["number"]] = disp2["displacement"]
865
868
  i += 1
866
- elif "forces" in dataset or "displacements" in dataset:
869
+ elif "displacements" in dataset:
867
870
  displacements = dataset["displacements"]
868
871
  else:
869
872
  raise RuntimeError("displacement dataset has wrong format.")
@@ -1218,10 +1221,10 @@ class Phono3py:
1218
1221
 
1219
1222
  def generate_displacements(
1220
1223
  self,
1221
- distance=0.03,
1222
- cutoff_pair_distance=None,
1223
- is_plusminus="auto",
1224
- is_diagonal=True,
1224
+ distance: float = 0.03,
1225
+ cutoff_pair_distance: Optional[float] = None,
1226
+ is_plusminus: Union[bool, str] = "auto",
1227
+ is_diagonal: bool = True,
1225
1228
  number_of_snapshots: Optional[int] = None,
1226
1229
  random_seed: Optional[int] = None,
1227
1230
  is_random_distance: bool = False,
@@ -1410,7 +1413,7 @@ class Phono3py:
1410
1413
  self,
1411
1414
  symmetrize_fc3r: bool = False,
1412
1415
  is_compact_fc: bool = False,
1413
- fc_calculator: Optional[str] = None,
1416
+ fc_calculator: Optional[Union[str, dict]] = None,
1414
1417
  fc_calculator_options: Optional[Union[str, dict]] = None,
1415
1418
  ):
1416
1419
  """Calculate fc3 from displacements and forces.
@@ -2150,7 +2153,9 @@ class Phono3py:
2150
2153
  log_level=_log_level,
2151
2154
  )
2152
2155
 
2153
- def save(self, filename="phono3py_params.yaml", settings=None):
2156
+ def save(
2157
+ self, filename: str = "phono3py_params.yaml", settings: Optional[dict] = None
2158
+ ):
2154
2159
  """Save parameters in Phono3py instants into file.
2155
2160
 
2156
2161
  Parameters
@@ -2541,6 +2546,11 @@ class Phono3py:
2541
2546
  Return None if tagert data is not found rather than raising exception.
2542
2547
 
2543
2548
  """
2549
+ if self._dataset is None:
2550
+ return None
2551
+ if not forces_in_dataset(self._dataset):
2552
+ return None
2553
+
2544
2554
  if target in self._dataset: # type-2
2545
2555
  return self._dataset[target]
2546
2556
  elif "first_atoms" in self._dataset: # type-1
@@ -68,6 +68,7 @@ from phono3py.file_IO import (
68
68
  )
69
69
  from phono3py.interface.fc_calculator import extract_fc2_fc3_calculators
70
70
  from phono3py.interface.phono3py_yaml import Phono3pyYaml
71
+ from phono3py.phonon3.dataset import forces_in_dataset
71
72
  from phono3py.phonon3.fc3 import (
72
73
  set_permutation_symmetry_fc3,
73
74
  set_translational_invariance_fc3,
@@ -95,8 +96,6 @@ def create_phono3py_force_constants(
95
96
  symmetrize_fc3r = settings.is_symmetrize_fc3_r or settings.fc_symmetry
96
97
  symmetrize_fc2 = settings.is_symmetrize_fc2 or settings.fc_symmetry
97
98
 
98
- (fc_calculator, fc_calculator_options) = get_fc_calculator_params(settings)
99
-
100
99
  if log_level:
101
100
  show_phono3py_force_constants_settings(settings)
102
101
 
@@ -113,6 +112,9 @@ def create_phono3py_force_constants(
113
112
  ):
114
113
  pass
115
114
  else:
115
+ (fc_calculator, fc_calculator_options) = get_fc_calculator_params(
116
+ settings, log_level=(not settings.read_fc3) * 1
117
+ )
116
118
  if settings.read_fc3:
117
119
  _read_phono3py_fc3(phono3py, symmetrize_fc3r, input_filename, log_level)
118
120
  else: # fc3 from FORCES_FC3 or ph3py_yaml
@@ -292,10 +294,17 @@ def parse_forces(
292
294
  # Type-1 FORCES_FC*.
293
295
  # dataset comes either from disp_fc*.yaml or phono3py*.yaml.
294
296
  if not forces_in_dataset(dataset):
295
- if fc_type == "phonon_fc2":
296
- parse_FORCES_FC2(dataset, filename=force_filename)
297
- else:
298
- parse_FORCES_FC3(dataset, filename=force_filename)
297
+ if force_filename is not None:
298
+ if fc_type == "phonon_fc2":
299
+ parse_FORCES_FC2(dataset, filename=force_filename)
300
+ else:
301
+ parse_FORCES_FC3(dataset, filename=force_filename)
302
+
303
+ if log_level:
304
+ print(
305
+ f'Sets of supercell forces were read from "{force_filename}".',
306
+ flush=True,
307
+ )
299
308
 
300
309
  # Unit of displacements is already converted.
301
310
  # Therefore, only unit of forces is converted.
@@ -305,28 +314,10 @@ def parse_forces(
305
314
  force_to_eVperA=physical_units["force_to_eVperA"],
306
315
  )
307
316
 
308
- if log_level:
309
- print('Sets of supercell forces were read from "%s".' % force_filename)
310
- sys.stdout.flush()
311
-
312
317
  return dataset
313
318
 
314
319
 
315
- def forces_in_dataset(dataset: dict) -> bool:
316
- """Return whether forces in dataset or not."""
317
- return "forces" in dataset or (
318
- "first_atoms" in dataset and "forces" in dataset["first_atoms"][0]
319
- )
320
-
321
-
322
- def displacements_in_dataset(dataset: Optional[dict]) -> bool:
323
- """Return whether displacements in dataset or not."""
324
- if dataset is None:
325
- return False
326
- return "displacements" in dataset or "first_atoms" in dataset
327
-
328
-
329
- def get_fc_calculator_params(settings):
320
+ def get_fc_calculator_params(settings, log_level=0):
330
321
  """Return fc_calculator and fc_calculator_params from settings."""
331
322
  fc_calculator = None
332
323
  fc_calculator_list = []
@@ -339,13 +330,49 @@ def get_fc_calculator_params(settings):
339
330
  if fc_calculator_list:
340
331
  fc_calculator = "|".join(fc_calculator_list)
341
332
 
342
- fc_calculator_options = None
343
- if settings.fc_calculator_options is not None:
344
- fc_calculator_options = settings.fc_calculator_options
333
+ fc_calculator_options = settings.fc_calculator_options
334
+ if settings.cutoff_pair_distance:
335
+ if fc_calculator_list and fc_calculator_list[-1] in ("alm", "symfc"):
336
+ if fc_calculator_list[-1] == "alm":
337
+ cutoff_str = f"-1 {settings.cutoff_pair_distance}"
338
+ if fc_calculator_list[-1] == "symfc":
339
+ cutoff_str = f"{settings.cutoff_pair_distance}"
340
+ fc_calculator_options = _set_cutoff_in_fc_calculator_options(
341
+ fc_calculator_options,
342
+ cutoff_str,
343
+ log_level,
344
+ )
345
345
 
346
346
  return fc_calculator, fc_calculator_options
347
347
 
348
348
 
349
+ def _set_cutoff_in_fc_calculator_options(
350
+ fc_calculator_options: Optional[str],
351
+ cutoff_str: str,
352
+ log_level: int,
353
+ ):
354
+ str_appended = f"cutoff={cutoff_str}"
355
+ calc_opts = fc_calculator_options
356
+ if calc_opts is None:
357
+ calc_opts = "|"
358
+ if "|" in calc_opts:
359
+ calc_opts_fc2, calc_opts_fc3 = [v.strip() for v in calc_opts.split("|")][:2]
360
+ else:
361
+ calc_opts_fc2 = calc_opts
362
+ calc_opts_fc3 = calc_opts
363
+
364
+ if calc_opts_fc3 == "":
365
+ calc_opts_fc3 += f"{str_appended}"
366
+ if log_level:
367
+ print(f'Set "{str_appended}" to fc_calculator_options for fc3.')
368
+ elif "cutoff" not in calc_opts_fc3:
369
+ calc_opts_fc3 += f", {str_appended}"
370
+ if log_level:
371
+ print(f'Appended "{str_appended}" to fc_calculator_options for fc3.')
372
+
373
+ return f"{calc_opts_fc2}|{calc_opts_fc3}"
374
+
375
+
349
376
  def _read_phono3py_fc3(phono3py: Phono3py, symmetrize_fc3r, input_filename, log_level):
350
377
  if input_filename is None:
351
378
  filename = "fc3.hdf5"
@@ -417,7 +444,7 @@ def _read_phono3py_fc2(phono3py, symmetrize_fc2, input_filename, log_level):
417
444
 
418
445
  def read_type2_dataset(natom, filename="FORCES_FC3", log_level=0) -> Optional[dict]:
419
446
  """Read type-2 FORCES_FC3."""
420
- if not pathlib.Path(filename).exists():
447
+ if filename is None or not pathlib.Path(filename).exists():
421
448
  return None
422
449
 
423
450
  with open(filename, "r") as f:
@@ -49,13 +49,13 @@ from phonopy.structure.cells import determinant
49
49
 
50
50
  from phono3py import Phono3py
51
51
  from phono3py.cui.create_force_constants import (
52
- forces_in_dataset,
53
52
  parse_forces,
54
53
  run_pypolymlp_to_compute_forces,
55
54
  )
56
55
  from phono3py.file_IO import read_fc2_from_hdf5, read_fc3_from_hdf5
57
56
  from phono3py.interface.fc_calculator import extract_fc2_fc3_calculators
58
57
  from phono3py.interface.phono3py_yaml import Phono3pyYaml
58
+ from phono3py.phonon3.dataset import forces_in_dataset
59
59
  from phono3py.phonon3.fc3 import show_drift_fc3
60
60
 
61
61
 
@@ -453,7 +453,7 @@ def compute_force_constants_from_datasets(
453
453
  fc3_calculator = extract_fc2_fc3_calculators(fc_calculator, 3)
454
454
  fc2_calculator = extract_fc2_fc3_calculators(fc_calculator, 2)
455
455
  if not read_fc["fc3"] and (ph3py.dataset or ph3py.mlp_dataset):
456
- if ph3py.mlp_dataset and use_pypolymlp:
456
+ if use_pypolymlp and forces_in_dataset(ph3py.mlp_dataset):
457
457
  run_pypolymlp_to_compute_forces(
458
458
  ph3py,
459
459
  mlp_params=mlp_params,
@@ -462,17 +462,22 @@ def compute_force_constants_from_datasets(
462
462
  random_seed=random_seed,
463
463
  log_level=log_level,
464
464
  )
465
- ph3py.produce_fc3(
466
- symmetrize_fc3r=symmetrize_fc,
467
- is_compact_fc=is_compact_fc,
468
- fc_calculator=fc3_calculator,
469
- fc_calculator_options=extract_fc2_fc3_calculators(fc_calculator_options, 3),
470
- )
465
+ if forces_in_dataset(ph3py.dataset):
466
+ ph3py.produce_fc3(
467
+ symmetrize_fc3r=symmetrize_fc,
468
+ is_compact_fc=is_compact_fc,
469
+ fc_calculator=fc3_calculator,
470
+ fc_calculator_options=extract_fc2_fc3_calculators(
471
+ fc_calculator_options, 3
472
+ ),
473
+ )
471
474
 
472
- if log_level and symmetrize_fc and fc_calculator is None:
473
- print("fc3 was symmetrized.")
475
+ if log_level and symmetrize_fc and fc_calculator is None:
476
+ print("fc3 was symmetrized.")
474
477
 
475
- if not read_fc["fc2"] and (ph3py.dataset or ph3py.phonon_dataset):
478
+ if not read_fc["fc2"] and (
479
+ forces_in_dataset(ph3py.dataset) or forces_in_dataset(ph3py.phonon_dataset)
480
+ ):
476
481
  ph3py.produce_fc2(
477
482
  symmetrize_fc2=symmetrize_fc,
478
483
  is_compact_fc=is_compact_fc,
@@ -495,6 +500,7 @@ def _get_dataset_or_fc3(
495
500
  p2s_map = ph3py.primitive.p2s_map
496
501
  read_fc3 = False
497
502
  dataset = None
503
+
498
504
  if fc3_filename is not None or pathlib.Path("fc3.hdf5").exists():
499
505
  if fc3_filename is None:
500
506
  _fc3_filename = "fc3.hdf5"
@@ -532,8 +538,17 @@ def _get_dataset_or_fc3(
532
538
  cutoff_pair_distance,
533
539
  log_level,
534
540
  )
535
- if not forces_in_dataset(dataset):
536
- dataset = None
541
+ elif ph3py_yaml is not None and ph3py_yaml.dataset is not None:
542
+ # not forces_in_dataset(ph3py_yaml.dataset)
543
+ # but want to read displacement dataset.
544
+ dataset = _get_dataset_for_fc3(
545
+ ph3py,
546
+ ph3py_yaml,
547
+ None,
548
+ phono3py_yaml_filename,
549
+ cutoff_pair_distance,
550
+ log_level,
551
+ )
537
552
 
538
553
  return read_fc3, dataset
539
554
 
@@ -558,7 +573,7 @@ def _get_dataset_phonon_dataset_or_fc2(
558
573
  ph3py.fc2 = fc2
559
574
  read_fc2 = True
560
575
  if log_level:
561
- print(f'fc2 was read from "{fc2_filename}".')
576
+ print(f'fc2 was read from "{_fc2_filename}".')
562
577
  elif (
563
578
  ph3py_yaml is not None
564
579
  and ph3py_yaml.phonon_dataset is not None
@@ -585,8 +600,16 @@ def _get_dataset_phonon_dataset_or_fc2(
585
600
  "phonon_fc2",
586
601
  log_level,
587
602
  )
588
- if not forces_in_dataset(phonon_dataset):
589
- phonon_dataset = None
603
+ elif ph3py_yaml is not None and ph3py_yaml.phonon_dataset is not None:
604
+ # not forces_in_dataset(ph3py_yaml.dataset)
605
+ # but want to read displacement dataset.
606
+ phonon_dataset = _get_dataset_for_fc2(
607
+ ph3py,
608
+ ph3py_yaml,
609
+ None,
610
+ "phonon_fc2",
611
+ log_level,
612
+ )
590
613
 
591
614
  return read_fc2, phonon_dataset
592
615
 
@@ -528,8 +528,6 @@ def store_force_constants(
528
528
  if log_level:
529
529
  print("-" * 29 + " Force constants " + "-" * 30)
530
530
 
531
- (fc_calculator, fc_calculator_options) = get_fc_calculator_params(settings)
532
-
533
531
  read_fc = set_dataset_and_force_constants(
534
532
  phono3py,
535
533
  ph3py_yaml=ph3py_yaml,
@@ -538,6 +536,9 @@ def store_force_constants(
538
536
  use_pypolymlp=settings.use_pypolymlp,
539
537
  log_level=log_level,
540
538
  )
539
+ (fc_calculator, fc_calculator_options) = get_fc_calculator_params(
540
+ settings, log_level=(not read_fc["fc3"]) * 1
541
+ )
541
542
  try:
542
543
  compute_force_constants_from_datasets(
543
544
  phono3py,
@@ -34,6 +34,8 @@
34
34
  # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
35
  # POSSIBILITY OF SUCH DAMAGE.
36
36
 
37
+ from typing import Optional
38
+
37
39
  import numpy as np
38
40
 
39
41
 
@@ -94,3 +96,12 @@ def get_displacements_and_forces_fc3(disp_dataset):
94
96
  return disp_dataset["displacements"], disp_dataset["forces"]
95
97
  else:
96
98
  raise RuntimeError("disp_dataset doesn't contain correct information.")
99
+
100
+
101
+ def forces_in_dataset(dataset: Optional[dict]) -> bool:
102
+ """Return whether forces in dataset or not."""
103
+ if dataset is None:
104
+ return False
105
+ return "forces" in dataset or (
106
+ "first_atoms" in dataset and "forces" in dataset["first_atoms"][0]
107
+ )
@@ -34,4 +34,4 @@
34
34
  # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
35
  # POSSIBILITY OF SUCH DAMAGE.
36
36
 
37
- __version__ = "3.3.1"
37
+ __version__ = "3.3.2"
@@ -69,6 +69,22 @@ def si_pbesol(request) -> Phono3py:
69
69
  )
70
70
 
71
71
 
72
+ @pytest.fixture(scope="session")
73
+ def si_pbesol_without_forcesets(request) -> Phono3py:
74
+ """Return Phono3py instance of Si 2x2x2 without force sets.
75
+
76
+ * with symmetry
77
+
78
+ """
79
+ yaml_filename = cwd / "phono3py_si_pbesol.yaml"
80
+ enable_v2 = request.config.getoption("--v2")
81
+ return phono3py.load(
82
+ yaml_filename,
83
+ make_r0_average=not enable_v2,
84
+ log_level=1,
85
+ )
86
+
87
+
72
88
  @pytest.fixture(scope="session")
73
89
  def si_pbesol_grg(request) -> Phono3py:
74
90
  """Return Phono3py instance of Si 2x2x2.
@@ -0,0 +1,18 @@
1
+ """Tests of Phono3py load."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from phono3py import Phono3py
6
+
7
+
8
+ def test_phono3py_load(si_pbesol_without_forcesets: Phono3py):
9
+ """Test phono3py.load.
10
+
11
+ Check phono3py.load can read displacements from phono3py_disp.yaml like file
12
+ that doesn't contain forces.
13
+
14
+ """
15
+ ph3 = si_pbesol_without_forcesets
16
+ assert ph3.dataset is not None
17
+ assert ph3.displacements.shape == (111, 64, 3)
18
+ assert ph3.forces is None
@@ -1,4 +1,4 @@
1
- """Tests of Phono3py API."""
1
+ """Tests of phono3py-load script."""
2
2
 
3
3
  from __future__ import annotations
4
4
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes