phono3py 3.0.2__tar.gz → 3.0.4__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.
- {phono3py-3.0.2/phono3py.egg-info → phono3py-3.0.4}/PKG-INFO +2 -2
- phono3py-3.0.4/__nanoversion__.txt +1 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/api_phono3py.py +201 -76
- phono3py-3.0.4/phono3py/cui/create_force_sets.py +396 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/create_supercells.py +2 -3
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/load.py +12 -5
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/phono3py_argparse.py +8 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/phono3py_script.py +25 -267
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/interface/phono3py_yaml.py +51 -42
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/version.py +1 -1
- {phono3py-3.0.2 → phono3py-3.0.4/phono3py.egg-info}/PKG-INFO +2 -2
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py.egg-info/SOURCES.txt +5 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py.egg-info/requires.txt +1 -1
- {phono3py-3.0.2 → phono3py-3.0.4}/setup.py +1 -1
- phono3py-3.0.4/test/Si-111-222-fd.tar.xz +0 -0
- phono3py-3.0.4/test/Si-111-222-rd.tar.xz +0 -0
- phono3py-3.0.4/test/api/test_api_phono3py.py +168 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/conftest.py +88 -0
- phono3py-3.0.4/test/phono3py_params_Si-111-222-fd.yaml.xz +0 -0
- phono3py-3.0.4/test/phono3py_params_Si-111-222-rd.yaml.xz +0 -0
- phono3py-3.0.2/__nanoversion__.txt +0 -1
- phono3py-3.0.2/test/api/test_api_phono3py.py +0 -42
- {phono3py-3.0.2 → phono3py-3.0.4}/LICENSE +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/MANIFEST.in +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/README.md +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/_phono3py.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/_phononcalc.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/bzgrid.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/bzgrid.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/collision_matrix.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/collision_matrix.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/dynmat.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/dynmat.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/fc3.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/fc3.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/grgrid.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/grgrid.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/gridsys.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/gridsys.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/imag_self_energy_with_g.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/imag_self_energy_with_g.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/interaction.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/interaction.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/isotope.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/isotope.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/lagrid.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/lagrid.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/lapack_wrapper.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/lapack_wrapper.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/niggli.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/niggli.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phono3py.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phono3py.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phonoc_array.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phonoc_const.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phonoc_utils.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phonoc_utils.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phonon.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phonon.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phononcalc.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/phononcalc.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/pp_collision.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/pp_collision.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/real_self_energy.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/real_self_energy.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/real_to_reciprocal.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/real_to_reciprocal.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/reciprocal_to_normal.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/reciprocal_to_normal.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/snf3x3.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/snf3x3.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/tetrahedron_method.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/tetrahedron_method.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/triplet.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/triplet.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/triplet_grid.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/triplet_grid.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/triplet_iw.c +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/c/triplet_iw.h +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/AlN-LDA/BORN +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/AlN-LDA/FORCES_FC2 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/AlN-LDA/FORCES_FC3.lzma +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/AlN-LDA/POSCAR-unitcell +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/AlN-LDA/README.md +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/AlN-LDA/phono3py_disp.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/AlN-LDA/phono3py_disp_dimfc2.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/NaCl-alm/README.md +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/NaCl-alm/phono3py_params_NaCl222.yaml.xz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-CRYSTAL/FORCES_FC2 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-CRYSTAL/FORCES_FC3 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-CRYSTAL/README +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-CRYSTAL/TEMPLATE +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-CRYSTAL/TEMPLATE3 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-CRYSTAL/crystal.o +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-CRYSTAL/outputs.tar.gz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-LDA/FORCES_FC3 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-LDA/POSCAR-unitcell +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-LDA/README.md +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-LDA/phono3py_disp.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-LDA/vasprun_xmls.tar.lzma +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBE/FORCES_FC3 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBE/POSCAR-unitcell +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBE/README.md +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBE/phono3py_disp.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBE/vasprun_xmls.tar.lzma +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/FORCES_FC3 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/POSCAR-unitcell +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/README.md +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/Si-band-DOS.png +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/Si-kaccum.png +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/Si.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/phono3py_disp.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/phono3py_disp_dimfc2.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/vasprun_xml_fc2/disp-fc2-00001/INCAR +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/vasprun_xml_fc2/disp-fc2-00001/POSCAR +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/vasprun_xml_fc2/disp-fc2-00001/vasprun.xml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-PBEsol/vasprun_xmls.tar.lzma +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-QE/FORCES_FC3 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-QE/README.md +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-QE/Si.in +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-QE/phono3py_disp.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-QE/supercell_out.tar.lzma +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-TURBOMOLE/FORCES_FC2 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-TURBOMOLE/FORCES_FC3 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-TURBOMOLE/README +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-TURBOMOLE/control +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-TURBOMOLE/coord +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Si-TURBOMOLE/outputs.tar.gz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Wigner_La2Zr2O7/BORN +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Wigner_La2Zr2O7/POSCAR +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Wigner_La2Zr2O7/command.sh +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Wigner_La2Zr2O7/fc2.hdf5 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Wigner_La2Zr2O7/kappa-m191919.hdf5 +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/Wigner_La2Zr2O7/tc_La2Zr2O7.out.xz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/zb-ZnTe-PBEsol/README.md +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/zb-ZnTe-PBEsol/launch_phono3py_ZnTe_PBEsol_222.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/example/zb-ZnTe-PBEsol/phono3py_params_ZnTe.yaml.xz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/api_isotope.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/api_jointdos.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/conductivity/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/conductivity/base.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/conductivity/direct_solution.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/conductivity/kubo.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/conductivity/rta.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/conductivity/utils.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/conductivity/wigner.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/create_force_constants.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/kaccum_script.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/settings.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/show_log.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/cui/triplets_info.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/file_IO.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/interface/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/interface/alm.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/interface/calculator.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/interface/fc_calculator.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/other/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/other/isotope.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/other/kaccum.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/other/tetrahedron_method.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon/func.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon/grid.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon/group_velocity_matrix.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon/heat_capacity_matrix.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon/solver.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon/velocity_operator.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/collision_matrix.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/dataset.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/displacement_fc3.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/fc3.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/gruneisen.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/imag_self_energy.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/interaction.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/joint_dos.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/real_self_energy.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/real_to_reciprocal.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/reciprocal_to_normal.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/spectral_function.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/phonon3/triplets.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/sscha/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py/sscha/sscha.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py.egg-info/dependency_links.txt +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/phono3py.egg-info/top_level.txt +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/pyproject.toml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/scripts/phono3py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/scripts/phono3py-coleigplot +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/scripts/phono3py-kaccum +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/scripts/phono3py-kdeplot +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/scripts/phono3py-load +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/setup.cfg +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/AgNO2_cell.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/BORN_NaCl +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/FORCES_FC3_si_pbesol +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/FORCE_SETS_NaCl +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/conductivity/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/conductivity/test_kappa_LBTE.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/conductivity/test_kappa_LBTE_Wigner.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/conductivity/test_kappa_RTA.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/conductivity/test_kappa_RTA_Wigner.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/cui/phono3py_params-qe-Si222.yaml.xz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/cui/test_phono3py_load_script.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/file_IO/test_file_IO.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/interface/test_phono3py_yaml.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/other/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/other/test_isotope.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/other/test_kaccum.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phono3py_params-Si111-rd.yaml.xz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phono3py_params_AlN332.yaml.xz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phono3py_params_NaCl111.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phono3py_params_NaCl222.yaml.xz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phono3py_params_Si-111-222.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phono3py_params_Si111.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phono3py_si_pbesol.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon/test_grid.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon/test_velocity_operator.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon3/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon3/test_displacements.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon3/test_fc3.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon3/test_imag_self_energy.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon3/test_interaction.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon3/test_joint_dos.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon3/test_real_self_energy.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon3/test_spectral_function.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonon3/test_triplets.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonopy_disp_NaCl.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonopy_params-Si111-iterha.yaml.gz +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/phonopy_params_Si.yaml +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/sscha/__init__.py +0 -0
- {phono3py-3.0.2 → phono3py-3.0.4}/test/sscha/test_sscha.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: phono3py
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.4
|
|
4
4
|
Summary: This is the phono3py module.
|
|
5
5
|
Home-page: http://phonopy.github.io/phono3py/
|
|
6
6
|
Author: Atsushi Togo
|
|
@@ -14,4 +14,4 @@ Requires-Dist: PyYAML>=5.3
|
|
|
14
14
|
Requires-Dist: matplotlib>=2.2.2
|
|
15
15
|
Requires-Dist: h5py>=3.0
|
|
16
16
|
Requires-Dist: spglib>=2.0
|
|
17
|
-
Requires-Dist: phonopy<2.
|
|
17
|
+
Requires-Dist: phonopy<2.24,>=2.23
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.0.4
|
|
@@ -34,8 +34,9 @@
|
|
|
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
|
+
import copy
|
|
37
38
|
from collections.abc import Sequence
|
|
38
|
-
from typing import Optional, Union
|
|
39
|
+
from typing import Literal, Optional, Union
|
|
39
40
|
|
|
40
41
|
import numpy as np
|
|
41
42
|
from phonopy.exception import ForceCalculatorRequiredError
|
|
@@ -582,6 +583,7 @@ class Phono3py:
|
|
|
582
583
|
{'number': atom index of second displaced atom,
|
|
583
584
|
'displacement': displacement in Cartesian coordinates},
|
|
584
585
|
'forces': forces on atoms in supercell,
|
|
586
|
+
'supercell_energy': energy of supercell,
|
|
585
587
|
'pair_distance': distance between paired atoms,
|
|
586
588
|
'included': with cutoff pair distance in displacement
|
|
587
589
|
pair generation, this indicates if this
|
|
@@ -591,9 +593,11 @@ class Phono3py:
|
|
|
591
593
|
... ] }, ... ] }
|
|
592
594
|
Type 2. All atomic displacements in each supercell:
|
|
593
595
|
{'displacements': ndarray, dtype='double', order='C',
|
|
594
|
-
shape=(supercells, atoms in supercell, 3)
|
|
596
|
+
shape=(supercells, atoms in supercell, 3),
|
|
595
597
|
'forces': ndarray, dtype='double',, order='C',
|
|
596
|
-
shape=(supercells, atoms in supercell, 3)
|
|
598
|
+
shape=(supercells, atoms in supercell, 3),
|
|
599
|
+
'supercell_energies': ndarray, dtype='double',
|
|
600
|
+
shape=(supercells,)}
|
|
597
601
|
In type 2, displacements and forces can be given by numpy array
|
|
598
602
|
with different shape but that can be reshaped to
|
|
599
603
|
(supercells, natom, 3).
|
|
@@ -607,7 +611,20 @@ class Phono3py:
|
|
|
607
611
|
|
|
608
612
|
@dataset.setter
|
|
609
613
|
def dataset(self, dataset):
|
|
610
|
-
|
|
614
|
+
if dataset is None:
|
|
615
|
+
self._dataset = None
|
|
616
|
+
elif "first_atoms" in dataset:
|
|
617
|
+
self._dataset = copy.deepcopy(dataset)
|
|
618
|
+
elif "displacements" in dataset:
|
|
619
|
+
self._dataset = {}
|
|
620
|
+
self.displacements = dataset["displacements"]
|
|
621
|
+
if "forces" in dataset:
|
|
622
|
+
self.forces = dataset["forces"]
|
|
623
|
+
if "supercell_energies" in dataset:
|
|
624
|
+
self.supercell_energies = dataset["supercell_energies"]
|
|
625
|
+
else:
|
|
626
|
+
raise RuntimeError("Data format of dataset is wrong.")
|
|
627
|
+
|
|
611
628
|
self._supercells_with_displacements = None
|
|
612
629
|
self._phonon_supercells_with_displacements = None
|
|
613
630
|
|
|
@@ -622,12 +639,15 @@ class Phono3py:
|
|
|
622
639
|
'first_atoms': [
|
|
623
640
|
{'number': atom index of first displaced atom,
|
|
624
641
|
'displacement': displacement in Cartesian coordinates,
|
|
625
|
-
'forces': forces on atoms in supercell
|
|
642
|
+
'forces': forces on atoms in supercell,
|
|
643
|
+
'supercell_energy': energy of supercell}, ... ]}
|
|
626
644
|
Type 2. All atomic displacements in each supercell:
|
|
627
645
|
{'displacements': ndarray, dtype='double', order='C',
|
|
628
|
-
shape=(supercells, atoms in supercell, 3)
|
|
646
|
+
shape=(supercells, atoms in supercell, 3),
|
|
629
647
|
'forces': ndarray, dtype='double',, order='C',
|
|
630
|
-
shape=(supercells, atoms in supercell, 3)
|
|
648
|
+
shape=(supercells, atoms in supercell, 3),
|
|
649
|
+
'supercell_energies': ndarray, dtype='double',
|
|
650
|
+
shape=(supercells,)}
|
|
631
651
|
In type 2, displacements and forces can be given by numpy array
|
|
632
652
|
with different shape but that can be reshaped to
|
|
633
653
|
(supercells, natom, 3).
|
|
@@ -637,7 +657,21 @@ class Phono3py:
|
|
|
637
657
|
|
|
638
658
|
@phonon_dataset.setter
|
|
639
659
|
def phonon_dataset(self, dataset):
|
|
640
|
-
|
|
660
|
+
if dataset is None:
|
|
661
|
+
self._phonon_dataset = None
|
|
662
|
+
elif "first_atoms" in dataset:
|
|
663
|
+
self._phonon_dataset = copy.deepcopy(dataset)
|
|
664
|
+
elif "displacements" in dataset:
|
|
665
|
+
self._phonon_dataset = {}
|
|
666
|
+
self.phonon_displacements = dataset["displacements"]
|
|
667
|
+
if "forces" in dataset:
|
|
668
|
+
self.phonon_forces = dataset["forces"]
|
|
669
|
+
if "supercell_energies" in dataset:
|
|
670
|
+
self.phonon_supercell_energies = dataset["supercell_energies"]
|
|
671
|
+
else:
|
|
672
|
+
raise RuntimeError("Data format of dataset is wrong.")
|
|
673
|
+
|
|
674
|
+
self._phonon_supercells_with_displacements = None
|
|
641
675
|
|
|
642
676
|
@property
|
|
643
677
|
def band_indices(self):
|
|
@@ -816,45 +850,32 @@ class Phono3py:
|
|
|
816
850
|
be the same order of supercells_with_displacements.
|
|
817
851
|
|
|
818
852
|
"""
|
|
819
|
-
|
|
820
|
-
if "forces" in dataset:
|
|
821
|
-
return dataset["forces"]
|
|
822
|
-
elif "first_atoms" in dataset:
|
|
823
|
-
num_scells = len(dataset["first_atoms"])
|
|
824
|
-
for disp1 in dataset["first_atoms"]:
|
|
825
|
-
num_scells += len(disp1["second_atoms"])
|
|
826
|
-
forces = np.zeros(
|
|
827
|
-
(num_scells, self._supercell.get_number_of_atoms(), 3),
|
|
828
|
-
dtype="double",
|
|
829
|
-
order="C",
|
|
830
|
-
)
|
|
831
|
-
i = 0
|
|
832
|
-
for disp1 in dataset["first_atoms"]:
|
|
833
|
-
forces[i] = disp1["forces"]
|
|
834
|
-
i += 1
|
|
835
|
-
for disp1 in dataset["first_atoms"]:
|
|
836
|
-
for disp2 in disp1["second_atoms"]:
|
|
837
|
-
forces[i] = disp2["forces"]
|
|
838
|
-
i += 1
|
|
839
|
-
return forces
|
|
840
|
-
else:
|
|
841
|
-
raise RuntimeError("displacement dataset has wrong format.")
|
|
853
|
+
return self._get_forces_energies(target="forces")
|
|
842
854
|
|
|
843
855
|
@forces.setter
|
|
844
|
-
def forces(self,
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
856
|
+
def forces(self, values):
|
|
857
|
+
self._set_forces_energies(values, target="forces")
|
|
858
|
+
|
|
859
|
+
@property
|
|
860
|
+
def supercell_energies(self):
|
|
861
|
+
"""Setter and getter of supercell energies in displacement dataset.
|
|
862
|
+
|
|
863
|
+
A set of supercell energies of displaced supercells. The order of
|
|
864
|
+
displaced supercells has to match with that in displacement dataset.
|
|
865
|
+
shape=(displaced supercells,)
|
|
866
|
+
|
|
867
|
+
getter : ndarray
|
|
868
|
+
|
|
869
|
+
setter : array_like
|
|
870
|
+
The order of supercells used for calculating supercell energies has
|
|
871
|
+
to be the same order of supercells_with_displacements.
|
|
872
|
+
|
|
873
|
+
"""
|
|
874
|
+
return self._get_forces_energies(target="supercell_energies")
|
|
875
|
+
|
|
876
|
+
@supercell_energies.setter
|
|
877
|
+
def supercell_energies(self, values):
|
|
878
|
+
self._set_forces_energies(values, target="supercell_energies")
|
|
858
879
|
|
|
859
880
|
@property
|
|
860
881
|
def phonon_displacements(self):
|
|
@@ -922,7 +943,7 @@ class Phono3py:
|
|
|
922
943
|
|
|
923
944
|
@property
|
|
924
945
|
def phonon_forces(self):
|
|
925
|
-
"""Setter and getter of forces in displacement dataset
|
|
946
|
+
"""Setter and getter of forces in fc2 displacement dataset.
|
|
926
947
|
|
|
927
948
|
A set of atomic forces in displaced supercells. The order of
|
|
928
949
|
displaced supercells has to match with that in phonon displacement
|
|
@@ -936,39 +957,30 @@ class Phono3py:
|
|
|
936
957
|
be the same order of phonon_supercells_with_displacements.
|
|
937
958
|
|
|
938
959
|
"""
|
|
939
|
-
|
|
940
|
-
raise RuntimeError("phonon_displacement_dataset does not exist.")
|
|
941
|
-
|
|
942
|
-
dataset = self._phonon_dataset
|
|
943
|
-
if "forces" in dataset:
|
|
944
|
-
return dataset["forces"]
|
|
945
|
-
elif "first_atoms" in dataset:
|
|
946
|
-
num_scells = len(dataset["first_atoms"])
|
|
947
|
-
forces = np.zeros(
|
|
948
|
-
(num_scells, self._phonon_supercell.get_number_of_atoms(), 3),
|
|
949
|
-
dtype="double",
|
|
950
|
-
order="C",
|
|
951
|
-
)
|
|
952
|
-
for i, disp1 in enumerate(dataset["first_atoms"]):
|
|
953
|
-
forces[i] = disp1["forces"]
|
|
954
|
-
return forces
|
|
955
|
-
else:
|
|
956
|
-
raise RuntimeError("displacement dataset has wrong format.")
|
|
960
|
+
return self._get_phonon_forces_energies(target="forces")
|
|
957
961
|
|
|
958
962
|
@phonon_forces.setter
|
|
959
|
-
def phonon_forces(self,
|
|
960
|
-
|
|
961
|
-
raise RuntimeError("phonon_displacement_dataset does not exist.")
|
|
963
|
+
def phonon_forces(self, values):
|
|
964
|
+
self._set_phonon_forces_energies(values, target="forces")
|
|
962
965
|
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
966
|
+
@property
|
|
967
|
+
def phonon_supercell_energies(self):
|
|
968
|
+
"""Setter and getter of supercell energies in fc2 displacement dataset.
|
|
969
|
+
|
|
970
|
+
shape=(displaced supercells,)
|
|
971
|
+
|
|
972
|
+
getter : ndarray
|
|
973
|
+
|
|
974
|
+
setter : array_like
|
|
975
|
+
The order of supercells used for calculating supercell energies has
|
|
976
|
+
to be the same order of phonon_supercells_with_displacements.
|
|
977
|
+
|
|
978
|
+
"""
|
|
979
|
+
return self._get_phonon_forces_energies(target="supercell_energies")
|
|
980
|
+
|
|
981
|
+
@phonon_supercell_energies.setter
|
|
982
|
+
def phonon_supercell_energies(self, values):
|
|
983
|
+
self._set_phonon_forces_energies(values, target="supercell_energies")
|
|
972
984
|
|
|
973
985
|
@property
|
|
974
986
|
def phph_interaction(self):
|
|
@@ -2274,3 +2286,116 @@ class Phono3py:
|
|
|
2274
2286
|
_fc_calculator_options = None
|
|
2275
2287
|
|
|
2276
2288
|
return _fc_calculator, _fc_calculator_options
|
|
2289
|
+
|
|
2290
|
+
def _get_forces_energies(
|
|
2291
|
+
self, target: Literal["forces", "supercell_energies"]
|
|
2292
|
+
) -> Optional[np.ndarray]:
|
|
2293
|
+
"""Return fc3 forces and supercell energies.
|
|
2294
|
+
|
|
2295
|
+
Return None if tagert data is not found rather than raising exception.
|
|
2296
|
+
|
|
2297
|
+
"""
|
|
2298
|
+
if target in self._dataset: # type-2
|
|
2299
|
+
return self._dataset[target]
|
|
2300
|
+
elif "first_atoms" in self._dataset: # type-1
|
|
2301
|
+
num_scells = len(self._dataset["first_atoms"])
|
|
2302
|
+
for disp1 in self._dataset["first_atoms"]:
|
|
2303
|
+
num_scells += len(disp1["second_atoms"])
|
|
2304
|
+
if target == "forces":
|
|
2305
|
+
values = np.zeros(
|
|
2306
|
+
(num_scells, len(self._supercell), 3),
|
|
2307
|
+
dtype="double",
|
|
2308
|
+
order="C",
|
|
2309
|
+
)
|
|
2310
|
+
type1_target = "forces"
|
|
2311
|
+
elif target == "supercell_energies":
|
|
2312
|
+
values = np.zeros(num_scells, dtype="double")
|
|
2313
|
+
type1_target = "supercell_energy"
|
|
2314
|
+
count = 0
|
|
2315
|
+
for disp1 in self._dataset["first_atoms"]:
|
|
2316
|
+
values[count] = disp1[type1_target]
|
|
2317
|
+
count += 1
|
|
2318
|
+
for disp1 in self._dataset["first_atoms"]:
|
|
2319
|
+
for disp2 in disp1["second_atoms"]:
|
|
2320
|
+
values[count] = disp2[type1_target]
|
|
2321
|
+
count += 1
|
|
2322
|
+
return values
|
|
2323
|
+
return None
|
|
2324
|
+
|
|
2325
|
+
def _set_forces_energies(
|
|
2326
|
+
self, values, target: Literal["forces", "supercell_energies"]
|
|
2327
|
+
):
|
|
2328
|
+
if "first_atoms" in self._dataset: # type-1
|
|
2329
|
+
count = 0
|
|
2330
|
+
for disp1 in self._dataset["first_atoms"]:
|
|
2331
|
+
if target == "forces":
|
|
2332
|
+
disp1[target] = np.array(values[count], dtype="double", order="C")
|
|
2333
|
+
elif target == "supercell_energies":
|
|
2334
|
+
disp1["supercell_energy"] = float(values[count])
|
|
2335
|
+
count += 1
|
|
2336
|
+
for disp1 in self._dataset["first_atoms"]:
|
|
2337
|
+
for disp2 in disp1["second_atoms"]:
|
|
2338
|
+
if target == "forces":
|
|
2339
|
+
disp2[target] = np.array(
|
|
2340
|
+
values[count], dtype="double", order="C"
|
|
2341
|
+
)
|
|
2342
|
+
elif target == "supercell_energies":
|
|
2343
|
+
disp2["supercell_energy"] = float(values[count])
|
|
2344
|
+
count += 1
|
|
2345
|
+
elif "displacements" in self._dataset or "forces" in self._dataset: # type-2
|
|
2346
|
+
self._dataset[target] = np.array(values, dtype="double", order="C")
|
|
2347
|
+
else:
|
|
2348
|
+
raise RuntimeError("Set of FC3 displacements is not available.")
|
|
2349
|
+
|
|
2350
|
+
def _get_phonon_forces_energies(
|
|
2351
|
+
self, target: Literal["forces", "supercell_energies"]
|
|
2352
|
+
) -> Optional[np.ndarray]:
|
|
2353
|
+
"""Return fc2 forces and supercell energies.
|
|
2354
|
+
|
|
2355
|
+
Return None if tagert data is not found rather than raising exception.
|
|
2356
|
+
|
|
2357
|
+
"""
|
|
2358
|
+
if self._phonon_dataset is None:
|
|
2359
|
+
raise RuntimeError("Dataset for fc2does not exist.")
|
|
2360
|
+
|
|
2361
|
+
if target in self._phonon_dataset: # type-2
|
|
2362
|
+
return self._phonon_dataset[target]
|
|
2363
|
+
elif "first_atoms" in self._phonon_dataset: # type-1
|
|
2364
|
+
values = []
|
|
2365
|
+
for disp in self._phonon_dataset["first_atoms"]:
|
|
2366
|
+
if target == "forces":
|
|
2367
|
+
if target in disp:
|
|
2368
|
+
values.append(disp[target])
|
|
2369
|
+
elif target == "supercell_energies":
|
|
2370
|
+
if "supercell_energy" in disp:
|
|
2371
|
+
values.append(disp["supercell_energy"])
|
|
2372
|
+
if values:
|
|
2373
|
+
return np.array(values, dtype="double", order="C")
|
|
2374
|
+
return None
|
|
2375
|
+
|
|
2376
|
+
def _set_phonon_forces_energies(
|
|
2377
|
+
self, values, target: Literal["forces", "supercell_energies"]
|
|
2378
|
+
):
|
|
2379
|
+
if self._phonon_dataset is None:
|
|
2380
|
+
raise RuntimeError("Dataset for fc2 does not exist.")
|
|
2381
|
+
|
|
2382
|
+
if "first_atoms" in self._phonon_dataset:
|
|
2383
|
+
for disp, v in zip(self._phonon_dataset["first_atoms"], values):
|
|
2384
|
+
if target == "forces":
|
|
2385
|
+
disp[target] = np.array(v, dtype="double", order="C")
|
|
2386
|
+
elif target == "supercell_energies":
|
|
2387
|
+
disp["supercell_energy"] = float(v)
|
|
2388
|
+
elif "displacements" in self._phonon_dataset:
|
|
2389
|
+
_values = np.array(values, dtype="double", order="C")
|
|
2390
|
+
natom = len(self._phonon_supercell)
|
|
2391
|
+
ndisps = len(self._phonon_dataset["displacements"])
|
|
2392
|
+
if target == "forces" and (
|
|
2393
|
+
_values.ndim != 3 or _values.shape != (ndisps, natom, 3)
|
|
2394
|
+
):
|
|
2395
|
+
raise RuntimeError(f"Array shape of input {target} is incorrect.")
|
|
2396
|
+
elif target == "supercell_energies":
|
|
2397
|
+
if _values.ndim != 1 or _values.shape != (ndisps,):
|
|
2398
|
+
raise RuntimeError(f"Array shape of input {target} is incorrect.")
|
|
2399
|
+
self._phonon_dataset[target] = _values
|
|
2400
|
+
else:
|
|
2401
|
+
raise RuntimeError("Set of FC2 displacements is not available.")
|