TB2J 0.9.11.2__tar.gz → 0.9.12.3__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.
- tb2j-0.9.12.3/.github/workflows/pylint.yml.bak +23 -0
- tb2j-0.9.12.3/.github/workflows/python-app.yml +44 -0
- tb2j-0.9.12.3/.gitignore +131 -0
- tb2j-0.9.12.3/.pre-commit-config.yaml +11 -0
- tb2j-0.9.12.3/.readthedocs.yml +28 -0
- tb2j-0.9.12.3/.ruff.toml +78 -0
- tb2j-0.9.12.3/.travis.yml +33 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/PKG-INFO +1 -1
- tb2j-0.9.12.3/TB2J/.gitignore +5 -0
- tb2j-0.9.12.3/TB2J/interfaces/abacus/.gitignore +2 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/magnon/magnon3.py +76 -28
- tb2j-0.9.12.3/TB2J/magnon/plot_magnon_dos_cli.py +211 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/TB2J_plot_magnon_bands.py +9 -14
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J.egg-info/PKG-INFO +1 -1
- tb2j-0.9.12.3/TB2J.egg-info/SOURCES.txt +232 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J.egg-info/entry_points.txt +1 -1
- tb2j-0.9.12.3/buildimage.sh +51 -0
- tb2j-0.9.12.3/docs/Makefile +20 -0
- tb2j-0.9.12.3/docs/_static/Logo-ULG.png +0 -0
- tb2j-0.9.12.3/docs/_static/logo_TB2J_horizon.png +0 -0
- tb2j-0.9.12.3/docs/conf.py +67 -0
- tb2j-0.9.12.3/docs/index.rst +44 -0
- tb2j-0.9.12.3/docs/make.bat +35 -0
- tb2j-0.9.12.3/docs/requirements.txt +3 -0
- tb2j-0.9.12.3/docs/src/BFOvarT.png +0 -0
- tb2j-0.9.12.3/docs/src/Contributors.rst +44 -0
- tb2j-0.9.12.3/docs/src/ReleaseNotes.md +226 -0
- tb2j-0.9.12.3/docs/src/SrMnO3_DOS.png +0 -0
- tb2j-0.9.12.3/docs/src/abacus.md +103 -0
- tb2j-0.9.12.3/docs/src/applications.rst +9 -0
- tb2j-0.9.12.3/docs/src/convention.rst +18 -0
- tb2j-0.9.12.3/docs/src/development.md +22 -0
- tb2j-0.9.12.3/docs/src/downfold.md +28 -0
- tb2j-0.9.12.3/docs/src/ecosystem.md +49 -0
- tb2j-0.9.12.3/docs/src/eigen.rst +34 -0
- tb2j-0.9.12.3/docs/src/extend.rst +45 -0
- tb2j-0.9.12.3/docs/src/faq.rst +79 -0
- tb2j-0.9.12.3/docs/src/install.rst +123 -0
- tb2j-0.9.12.3/docs/src/mae.md +127 -0
- tb2j-0.9.12.3/docs/src/magnon_band.assets/exchange_magnon-1593690872101.png +0 -0
- tb2j-0.9.12.3/docs/src/magnon_band.assets/exchange_magnon.png +0 -0
- tb2j-0.9.12.3/docs/src/magnon_band.assets/magnon_dos.png +0 -0
- tb2j-0.9.12.3/docs/src/magnon_band.rst +74 -0
- tb2j-0.9.12.3/docs/src/magnon_bands.md +177 -0
- tb2j-0.9.12.3/docs/src/multibinit.rst +89 -0
- tb2j-0.9.12.3/docs/src/openmx.rst +27 -0
- tb2j-0.9.12.3/docs/src/orbital_contribution.md +80 -0
- tb2j-0.9.12.3/docs/src/output.rst +52 -0
- tb2j-0.9.12.3/docs/src/parameters.rst +89 -0
- tb2j-0.9.12.3/docs/src/references.rst +36 -0
- tb2j-0.9.12.3/docs/src/roadmap.md +8 -0
- tb2j-0.9.12.3/docs/src/rotate_and_merge.rst +54 -0
- tb2j-0.9.12.3/docs/src/siesta.rst +38 -0
- tb2j-0.9.12.3/docs/src/spin_model_assets/canting_DMI.png +0 -0
- tb2j-0.9.12.3/docs/src/spin_model_assets/tmulti5_2.png +0 -0
- tb2j-0.9.12.3/docs/src/symmetry.md +42 -0
- tb2j-0.9.12.3/docs/src/tutorial.rst +18 -0
- tb2j-0.9.12.3/docs/src/wannier.rst +228 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/Fe.1.psml +1181 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/EigenJq.txt +119 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/exchange.xml +4126 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/exchange_kpth.txt +8 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/exchange_magnon.png +0 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon.py +3 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon_band.json +3332 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon_band.pdf +0 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon_dos.png +0 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/magnon_dos.txt +302 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/mb.files +3 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/mb.in +33 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/plot.sh +1 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/plot_magnon_dos.sh +1 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/Multibinit/plot_magnon_from_json_file.py +73 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/TB2J.pickle +0 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/TomASD/exchange.exch +1381 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/TomASD/exchange.ucf +3 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/TB2J_results/exchange.out +3097 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/getJ.sh +2 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/run.sh +3 -0
- tb2j-0.9.12.3/examples/Siesta/BccFe/siesta.fdf +61 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/Co.1.psml +3174 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/Multibinit/exchange.xml +7610 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/Multibinit/mb.files +3 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/Multibinit/mb.in +33 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/TB2J.pickle +0 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/TomASD/exchange.exch +2556 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/TomASD/exchange.ucf +4 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/Vampire/input +42 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/Vampire/vampire.UCF +644 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/Vampire/vampire.mat +24 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/exchange.out +5708 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/TB2J_results/summary.txt +10 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/getJ.sh +1 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/run.sh +3 -0
- tb2j-0.9.12.3/examples/Siesta/HcpCo/siesta.fdf +63 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/JvsR.pdf +0 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/Multibinit/exchange.xml +533 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/Multibinit/mb.files +3 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/Multibinit/mb.in +33 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/TB2J.pickle +0 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/TomASD/exchange.exch +509 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/TomASD/exchange.ucf +3 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/Vampire/input +42 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/Vampire/vampire.UCF +135 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/Vampire/vampire.mat +13 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/assigned_basis.txt +14 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/exchange.out +406 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/TB2J_results/exchange_orb_decomposition.out +1274 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/abinit.files +8 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/abinit.in +83 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/abinito_w90_down.win +113 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/abinito_w90_down_centres.xyz +21 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/abinito_w90_down_hr.dat +24512 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/abinito_w90_up.win +113 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/abinito_w90_up_centres.xyz +21 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/abinito_w90_up_hr.dat +24512 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/get_J.sh +1 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/psp/Mn.GGA-PBESOL-JTH.xml +16818 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/psp/O.GGA-PBESOL-JTH.xml +12782 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/psp/Sr.GGA-PBESOL-JTH.xml +12646 -0
- tb2j-0.9.12.3/examples/abinit-w90/SrMnO3/run.sh +6 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/pyproject.toml +2 -2
- tb2j-0.9.12.3/requirements.txt +11 -0
- tb2j-0.9.12.3/upload_to_pip.sh +5 -0
- tb2j-0.9.11.2/TB2J/magnon/plot_magnon_dos_cli.py +0 -99
- tb2j-0.9.11.2/TB2J.egg-info/SOURCES.txt +0 -116
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/LICENSE +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/README.md +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/Jdownfolder.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/Jtensor.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/MAE.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/MAEGreen.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/Oiju.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/Oiju_epc.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/anisotropy.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/basis.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/citation.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/contour.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/density_matrix.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/downfold/Hdownfolder.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/epc.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/exchange.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/exchangeCL2.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/exchange_params.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/exchange_pert.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/exchange_qspace.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/external/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/external/p_tqdm.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/gpaw_wrapper.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/green.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/greentest.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/abacus/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/abacus/abacus_api.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/abacus/abacus_wrapper.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/abacus/gen_exchange_abacus.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/abacus/orbital_api.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/abacus/stru_api.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/abacus/test_density_matrix.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/abacus/test_read_HRSR.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/abacus/test_read_stru.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/gpaw_interface.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/lawaf_interface.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/manager.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/siesta_interface.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/interfaces/wannier90_interface.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/io_exchange/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/io_exchange/io_exchange.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/io_exchange/io_multibinit.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/io_exchange/io_tomsasd.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/io_exchange/io_txt.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/io_exchange/io_uppasd.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/io_exchange/io_vampire.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/io_merge.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/kpoints.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/magnon/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/magnon/io_exchange2.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/magnon/magnon_band.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/magnon/magnon_dos.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/magnon/magnon_io.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/magnon/magnon_math.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/magnon/plot.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/magnon/structure.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/mathutils/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/mathutils/auto_kpath.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/mathutils/fermi.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/mathutils/fibonacci_sphere.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/mathutils/kR_convert.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/mathutils/lowdin.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/mathutils/rotate_spin.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/myTB.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/mycfr.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/orbital_magmom.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/orbmap.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/pauli.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/pert.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/plot.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/rotate_atoms.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/rotate_siestaDM.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/TB2J_downfold.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/TB2J_eigen.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/TB2J_magnon.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/TB2J_magnon2.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/TB2J_magnon_dos.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/TB2J_merge.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/TB2J_rotate.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/TB2J_rotateDM.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/abacus2J.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/siesta2J.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/scripts/wann2J.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/sisl_wrapper.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/base_parser.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/constants.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/hamiltonian.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/hamiltonian_terms.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/plot.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/qsolver.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/spin_api.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/spin_xml.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/spinham/supercell.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/symmetrize_J.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/tensor_rotate.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/thetaphi.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/utest.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/utils.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/versioninfo.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/wannier/__init__.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/wannier/w90_parser.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J/wannier/w90_tb_parser.py +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J.egg-info/dependency_links.txt +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J.egg-info/requires.txt +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/TB2J.egg-info/top_level.txt +0 -0
- {tb2j-0.9.11.2 → tb2j-0.9.12.3}/setup.cfg +0 -0
@@ -0,0 +1,23 @@
|
|
1
|
+
name: Pylint
|
2
|
+
|
3
|
+
on: [push]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
runs-on: ubuntu-latest
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
python-version: ["3.8", "3.9", "3.10"]
|
11
|
+
steps:
|
12
|
+
- uses: actions/checkout@v3
|
13
|
+
- name: Set up Python ${{ matrix.python-version }}
|
14
|
+
uses: actions/setup-python@v3
|
15
|
+
with:
|
16
|
+
python-version: ${{ matrix.python-version }}
|
17
|
+
- name: Install dependencies
|
18
|
+
run: |
|
19
|
+
python -m pip install --upgrade pip
|
20
|
+
pip install pylint
|
21
|
+
- name: Analysing the code with pylint
|
22
|
+
run: |
|
23
|
+
pylint $(git ls-files '*.py')
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# This workflow will install Python dependencies, run tests and lint with a single version of Python
|
2
|
+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
|
3
|
+
|
4
|
+
name: Python application
|
5
|
+
|
6
|
+
on:
|
7
|
+
push:
|
8
|
+
branches: [ "master" ]
|
9
|
+
pull_request:
|
10
|
+
branches: [ "master" ]
|
11
|
+
|
12
|
+
permissions:
|
13
|
+
contents: read
|
14
|
+
|
15
|
+
jobs:
|
16
|
+
build:
|
17
|
+
runs-on: ubuntu-latest
|
18
|
+
steps:
|
19
|
+
- uses: actions/checkout@v4
|
20
|
+
- name: Set up Python 3.10
|
21
|
+
uses: actions/setup-python@v5
|
22
|
+
with:
|
23
|
+
python-version: "3.10"
|
24
|
+
- name: Install dependencies
|
25
|
+
run: |
|
26
|
+
python -m pip install --upgrade pip
|
27
|
+
pip install flake8 pytest
|
28
|
+
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
29
|
+
- name: Lint with flake8
|
30
|
+
run: |
|
31
|
+
# stop the build if there are Python syntax errors or undefined names
|
32
|
+
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
33
|
+
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
34
|
+
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
35
|
+
- name: Test with pytest
|
36
|
+
run: |
|
37
|
+
#pytest
|
38
|
+
# - pwd
|
39
|
+
python -m pip install .
|
40
|
+
cd examples/abinit-w90/SrMnO3
|
41
|
+
ls -lah
|
42
|
+
sh get_J.sh
|
43
|
+
cd TB2J_results/Multibinit
|
44
|
+
TB2J_magnon.py --figfname magnon.png
|
tb2j-0.9.12.3/.gitignore
ADDED
@@ -0,0 +1,131 @@
|
|
1
|
+
doc/refs/*.pdf
|
2
|
+
|
3
|
+
|
4
|
+
*.swp
|
5
|
+
|
6
|
+
# Latex
|
7
|
+
*.aux
|
8
|
+
|
9
|
+
# xyz files
|
10
|
+
|
11
|
+
.DS_Store
|
12
|
+
|
13
|
+
# Byte-compiled / optimized / DLL files
|
14
|
+
__pycache__/
|
15
|
+
*.py[cod]
|
16
|
+
*$py.class
|
17
|
+
|
18
|
+
# numpy results
|
19
|
+
*.npy
|
20
|
+
|
21
|
+
# png files
|
22
|
+
|
23
|
+
# C extensions
|
24
|
+
*.so
|
25
|
+
*.a
|
26
|
+
|
27
|
+
# Fortran extensions
|
28
|
+
*.fpp
|
29
|
+
*.mod
|
30
|
+
*.o
|
31
|
+
|
32
|
+
# F90wrap files
|
33
|
+
*.plist
|
34
|
+
|
35
|
+
# Distribution / packaging
|
36
|
+
.Python
|
37
|
+
env/
|
38
|
+
build/
|
39
|
+
develop-eggs/
|
40
|
+
dist/
|
41
|
+
downloads/
|
42
|
+
eggs/
|
43
|
+
.eggs/
|
44
|
+
lib/
|
45
|
+
lib64/
|
46
|
+
parts/
|
47
|
+
sdist/
|
48
|
+
var/
|
49
|
+
wheels/
|
50
|
+
*.egg-info/
|
51
|
+
*.egg-info/*
|
52
|
+
.installed.cfg
|
53
|
+
*.egg
|
54
|
+
|
55
|
+
# temporary files
|
56
|
+
temp/
|
57
|
+
|
58
|
+
# PyInstaller
|
59
|
+
# Usually these files are written by a python script from a template
|
60
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
61
|
+
*.manifest
|
62
|
+
*.spec
|
63
|
+
|
64
|
+
# Installer logs
|
65
|
+
pip-log.txt
|
66
|
+
pip-delete-this-directory.txt
|
67
|
+
|
68
|
+
# Unit test / coverage reports
|
69
|
+
htmlcov/
|
70
|
+
.tox/
|
71
|
+
.coverage
|
72
|
+
.coverage.*
|
73
|
+
.cache
|
74
|
+
nosetests.xml
|
75
|
+
coverage.xml
|
76
|
+
*.cover
|
77
|
+
.hypothesis/
|
78
|
+
|
79
|
+
# Translations
|
80
|
+
*.mo
|
81
|
+
*.pot
|
82
|
+
|
83
|
+
# Django stuff:
|
84
|
+
*.log
|
85
|
+
local_settings.py
|
86
|
+
|
87
|
+
# Flask stuff:
|
88
|
+
instance/
|
89
|
+
.webassets-cache
|
90
|
+
|
91
|
+
# Scrapy stuff:
|
92
|
+
.scrapy
|
93
|
+
|
94
|
+
# Sphinx documentation
|
95
|
+
docs/_build/
|
96
|
+
|
97
|
+
# PyBuilder
|
98
|
+
target/
|
99
|
+
|
100
|
+
# Jupyter Notebook
|
101
|
+
.ipynb_checkpoints
|
102
|
+
|
103
|
+
# pyenv
|
104
|
+
.python-version
|
105
|
+
|
106
|
+
# celery beat schedule file
|
107
|
+
celerybeat-schedule
|
108
|
+
|
109
|
+
# SageMath parsed files
|
110
|
+
*.sage.py
|
111
|
+
|
112
|
+
# dotenv
|
113
|
+
.env
|
114
|
+
|
115
|
+
# virtualenv
|
116
|
+
.venv
|
117
|
+
venv/
|
118
|
+
ENV/
|
119
|
+
|
120
|
+
# Spyder project settings
|
121
|
+
.spyderproject
|
122
|
+
.spyproject
|
123
|
+
|
124
|
+
# Rope project settings
|
125
|
+
.ropeproject
|
126
|
+
|
127
|
+
# mkdocs documentation
|
128
|
+
/site
|
129
|
+
|
130
|
+
# mypy
|
131
|
+
.mypy_cache/
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# .readthedocs.yml
|
2
|
+
# Read the Docs configuration file
|
3
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
4
|
+
|
5
|
+
# Required
|
6
|
+
version: 2
|
7
|
+
build:
|
8
|
+
os: "ubuntu-22.04"
|
9
|
+
tools:
|
10
|
+
python: "3.11"
|
11
|
+
|
12
|
+
# Build documentation in the docs/ directory with Sphinx
|
13
|
+
sphinx:
|
14
|
+
configuration: docs/conf.py
|
15
|
+
|
16
|
+
# Build documentation with MkDocs
|
17
|
+
#mkdocs:
|
18
|
+
# configuration: mkdocs.yml
|
19
|
+
|
20
|
+
# Optionally build your docs in additional formats such as PDF
|
21
|
+
formats:
|
22
|
+
- pdf
|
23
|
+
|
24
|
+
# Optionally set the version of Python and requirements required to build your docs
|
25
|
+
python:
|
26
|
+
install:
|
27
|
+
- requirements: requirements.txt
|
28
|
+
- requirements: docs/requirements.txt
|
tb2j-0.9.12.3/.ruff.toml
ADDED
@@ -0,0 +1,78 @@
|
|
1
|
+
# Exclude a variety of commonly ignored directories.
|
2
|
+
exclude = [
|
3
|
+
".bzr",
|
4
|
+
".direnv",
|
5
|
+
".eggs",
|
6
|
+
".git",
|
7
|
+
".git-rewrite",
|
8
|
+
".hg",
|
9
|
+
".ipynb_checkpoints",
|
10
|
+
".mypy_cache",
|
11
|
+
".nox",
|
12
|
+
".pants.d",
|
13
|
+
".pyenv",
|
14
|
+
".pytest_cache",
|
15
|
+
".pytype",
|
16
|
+
".ruff_cache",
|
17
|
+
".svn",
|
18
|
+
".tox",
|
19
|
+
".venv",
|
20
|
+
".vscode",
|
21
|
+
"__pypackages__",
|
22
|
+
"_build",
|
23
|
+
"buck-out",
|
24
|
+
"build",
|
25
|
+
"dist",
|
26
|
+
"node_modules",
|
27
|
+
"site-packages",
|
28
|
+
"venv",
|
29
|
+
]
|
30
|
+
|
31
|
+
# Same as Black.
|
32
|
+
line-length = 88
|
33
|
+
indent-width = 4
|
34
|
+
|
35
|
+
# Assume Python 3.8
|
36
|
+
target-version = "py38"
|
37
|
+
|
38
|
+
[lint]
|
39
|
+
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default.
|
40
|
+
# Unlike Flake8, Ruff doesn't enable pycodestyle warnings (`W`) or
|
41
|
+
# McCabe complexity (`C901`) by default.
|
42
|
+
select = ["E4", "E7", "E9", "F"]
|
43
|
+
ignore = ["E741"]
|
44
|
+
|
45
|
+
# Allow fix for all enabled rules (when `--fix`) is provided.
|
46
|
+
fixable = ["ALL"]
|
47
|
+
unfixable = []
|
48
|
+
|
49
|
+
# Allow unused variables when underscore-prefixed.
|
50
|
+
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$"
|
51
|
+
|
52
|
+
[format]
|
53
|
+
# Like Black, use double quotes for strings.
|
54
|
+
quote-style = "double"
|
55
|
+
|
56
|
+
# Like Black, indent with spaces, rather than tabs.
|
57
|
+
indent-style = "space"
|
58
|
+
|
59
|
+
# Like Black, respect magic trailing commas.
|
60
|
+
skip-magic-trailing-comma = false
|
61
|
+
|
62
|
+
# Like Black, automatically detect the appropriate line ending.
|
63
|
+
line-ending = "auto"
|
64
|
+
|
65
|
+
# Enable auto-formatting of code examples in docstrings. Markdown,
|
66
|
+
# reStructuredText code/literal blocks and doctests are all supported.
|
67
|
+
#
|
68
|
+
# This is currently disabled by default, but it is planned for this
|
69
|
+
# to be opt-out in the future.
|
70
|
+
docstring-code-format = false
|
71
|
+
|
72
|
+
# Set the line length limit used when formatting code snippets in
|
73
|
+
# docstrings.
|
74
|
+
#
|
75
|
+
# This only has an effect when the `docstring-code-format` setting is
|
76
|
+
# enabled.
|
77
|
+
docstring-code-line-length = "dynamic"
|
78
|
+
|
@@ -0,0 +1,33 @@
|
|
1
|
+
language: python
|
2
|
+
python:
|
3
|
+
- "3.7"
|
4
|
+
- "3.8"
|
5
|
+
- "3.9"
|
6
|
+
- "3.10"
|
7
|
+
- "3.11"
|
8
|
+
cache: pip
|
9
|
+
|
10
|
+
addons:
|
11
|
+
apt:
|
12
|
+
packages: &common_packages
|
13
|
+
- gfortran
|
14
|
+
- libatlas-base-dev
|
15
|
+
- liblapack-dev
|
16
|
+
- libnetcdf-dev
|
17
|
+
- libnetcdff-dev
|
18
|
+
- eatmydata
|
19
|
+
- ccache
|
20
|
+
before_install:
|
21
|
+
- if [[ $TRAVIS_PYTHON_VERSION == 3.7 ]]; then pip install -U importlib_metadata; fi
|
22
|
+
|
23
|
+
install:
|
24
|
+
- pip install -r requirements.txt
|
25
|
+
- pip install sisl
|
26
|
+
- pip install -e .
|
27
|
+
script:
|
28
|
+
- pwd
|
29
|
+
- cd examples/abinit-w90/SrMnO3
|
30
|
+
- ls -lah
|
31
|
+
- sh get_J.sh
|
32
|
+
- cd TB2J_results/Multibinit
|
33
|
+
- TB2J_magnon.py --figfname magnon.png
|
@@ -31,6 +31,7 @@ class MagnonParameters:
|
|
31
31
|
Q: Optional[List[float]] = None
|
32
32
|
uz_file: Optional[str] = None
|
33
33
|
n: Optional[List[float]] = None
|
34
|
+
spin_conf_file: Optional[str] = None
|
34
35
|
show: bool = False
|
35
36
|
|
36
37
|
@classmethod
|
@@ -57,6 +58,8 @@ class MagnonParameters:
|
|
57
58
|
# Convert path to absolute path if uz_file is relative to it
|
58
59
|
if self.uz_file and not Path(self.uz_file).is_absolute():
|
59
60
|
self.uz_file = str(Path(self.path) / self.uz_file)
|
61
|
+
if self.spin_conf_file and not Path(self.spin_conf_file).is_absolute():
|
62
|
+
self.spin_conf_file = str(Path(self.path) / self.spin_conf_file)
|
60
63
|
|
61
64
|
|
62
65
|
@dataclass
|
@@ -76,7 +79,7 @@ class Magnon:
|
|
76
79
|
_n: np.ndarray
|
77
80
|
pbc: tuple = (True, True, True)
|
78
81
|
|
79
|
-
def set_reference(self, Q, uz, n):
|
82
|
+
def set_reference(self, Q, uz, n, magmoms=None):
|
80
83
|
"""
|
81
84
|
Set reference propagation vector and quantization axis
|
82
85
|
|
@@ -92,6 +95,8 @@ class Magnon:
|
|
92
95
|
self.set_propagation_vector(Q)
|
93
96
|
self._uz = np.array(uz, dtype=float)
|
94
97
|
self._n = np.array(n, dtype=float)
|
98
|
+
if magmoms is not None:
|
99
|
+
self.magmom = np.array(magmoms, dtype=float)
|
95
100
|
|
96
101
|
def set_propagation_vector(self, Q):
|
97
102
|
"""Set propagation vector"""
|
@@ -653,26 +658,40 @@ def plot_magnon_bands_from_TB2J(
|
|
653
658
|
)
|
654
659
|
|
655
660
|
# Set reference vectors if provided
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
661
|
-
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
671
|
-
|
672
|
-
|
673
|
-
|
661
|
+
Q = [0, 0, 0] if params.Q is None else params.Q
|
662
|
+
n = [0, 0, 1] if params.n is None else params.n
|
663
|
+
|
664
|
+
# Handle quantization axes
|
665
|
+
if params.uz_file is not None:
|
666
|
+
uz = np.loadtxt(params.uz_file)
|
667
|
+
if uz.shape[1] != 3:
|
668
|
+
raise ValueError(
|
669
|
+
f"Quantization axes file should contain a natom×3 array. Got shape {uz.shape}"
|
670
|
+
)
|
671
|
+
if uz.shape[0] != magnon.nspin:
|
672
|
+
raise ValueError(
|
673
|
+
f"Number of spins in uz file ({uz.shape[0]}) does not match the system ({magnon.nspin})"
|
674
|
+
)
|
675
|
+
else:
|
676
|
+
# Default: [0, 0, 1] for all spins
|
677
|
+
# uz = np.array([[0.0, 0.0, 1.0] for _ in range(magnon.nspin)])
|
678
|
+
uz = np.array([[0, 0, 1]], dtype=float)
|
679
|
+
|
680
|
+
print(params)
|
681
|
+
if params.spin_conf_file is not None:
|
682
|
+
magmoms = np.loadtxt(params.spin_conf_file)
|
683
|
+
if magmoms.shape[1] != 3:
|
684
|
+
raise ValueError(
|
685
|
+
f"Spin configuration file should contain a nspin×3 array. Got shape {magmoms.shape}"
|
686
|
+
)
|
687
|
+
if magmoms.shape[0] != magnon.nspin:
|
688
|
+
raise ValueError(
|
689
|
+
f"Number of spins in spin configuration file ({magmoms.shape[0]}) does not match the system ({magnon.nspin})"
|
690
|
+
)
|
691
|
+
else:
|
692
|
+
magmoms = None
|
674
693
|
|
675
|
-
|
694
|
+
magnon.set_reference(Q, uz, n, magmoms)
|
676
695
|
|
677
696
|
# Get band structure data
|
678
697
|
print(f"\nCalculating bands along path {params.kpath}...")
|
@@ -714,10 +733,25 @@ def plot_magnon_bands_from_TB2J(
|
|
714
733
|
return magnon
|
715
734
|
|
716
735
|
|
717
|
-
def
|
718
|
-
"""Command line interface for plotting magnon bands from TB2J results."""
|
736
|
+
def plot_magnon_bands_cli():
|
719
737
|
import argparse
|
720
|
-
|
738
|
+
import warnings
|
739
|
+
|
740
|
+
warnings.warn(
|
741
|
+
"""
|
742
|
+
# !!!!!!!!!!!!!!!!!! WARNING: =============================
|
743
|
+
#
|
744
|
+
# This functionality is under development and should not be used in production.
|
745
|
+
# It is provided for testing and development purposes only.
|
746
|
+
# Please use with caution and report any issues to the developers.
|
747
|
+
#
|
748
|
+
# This warning will be removed in future releases.
|
749
|
+
# =====================================
|
750
|
+
|
751
|
+
""",
|
752
|
+
UserWarning,
|
753
|
+
stacklevel=2,
|
754
|
+
)
|
721
755
|
parser = argparse.ArgumentParser(
|
722
756
|
description="Plot magnon band structure from TB2J results"
|
723
757
|
)
|
@@ -737,27 +771,32 @@ def main():
|
|
737
771
|
|
738
772
|
# Command line arguments (used if no config file is provided)
|
739
773
|
parser.add_argument(
|
774
|
+
"-p",
|
740
775
|
"--path",
|
741
776
|
default="TB2J_results",
|
742
777
|
help="Path to TB2J results directory (default: TB2J_results)",
|
743
778
|
)
|
744
779
|
parser.add_argument(
|
780
|
+
"-k",
|
745
781
|
"--kpath",
|
746
782
|
default=None,
|
747
783
|
help="k-path specification (default: auto-detected from type of cell)",
|
748
784
|
)
|
749
785
|
parser.add_argument(
|
786
|
+
"-n",
|
750
787
|
"--npoints",
|
751
788
|
type=int,
|
752
789
|
default=300,
|
753
790
|
help="Number of k-points along the path (default: 300)",
|
754
791
|
)
|
755
792
|
parser.add_argument(
|
793
|
+
"-o",
|
756
794
|
"--output",
|
757
795
|
default="magnon_bands.png",
|
758
796
|
help="Output file name (default: magnon_bands.png)",
|
759
797
|
)
|
760
798
|
parser.add_argument(
|
799
|
+
"-j",
|
761
800
|
"--Jiso",
|
762
801
|
action="store_true",
|
763
802
|
default=True,
|
@@ -770,18 +809,21 @@ def main():
|
|
770
809
|
help="Exclude isotropic exchange interactions",
|
771
810
|
)
|
772
811
|
parser.add_argument(
|
812
|
+
"-a",
|
773
813
|
"--Jani",
|
774
814
|
action="store_true",
|
775
815
|
default=False,
|
776
816
|
help="Include anisotropic exchange interactions (default: False)",
|
777
817
|
)
|
778
818
|
parser.add_argument(
|
819
|
+
"-d",
|
779
820
|
"--DMI",
|
780
821
|
action="store_true",
|
781
822
|
default=False,
|
782
823
|
help="Include Dzyaloshinskii-Moriya interactions (default: False)",
|
783
824
|
)
|
784
825
|
parser.add_argument(
|
826
|
+
"-q",
|
785
827
|
"--Q",
|
786
828
|
nargs=3,
|
787
829
|
type=float,
|
@@ -789,11 +831,19 @@ def main():
|
|
789
831
|
help="Propagation vector [Qx, Qy, Qz] (default: [0, 0, 0])",
|
790
832
|
)
|
791
833
|
parser.add_argument(
|
834
|
+
"-u",
|
792
835
|
"--uz-file",
|
793
836
|
type=str,
|
794
|
-
help="Path to file containing quantization axes for each spin (
|
837
|
+
help="Path to file containing quantization axes for each spin (nspin×3 array)",
|
838
|
+
)
|
839
|
+
parser.add_argument(
|
840
|
+
"-c",
|
841
|
+
"--spin-conf-file",
|
842
|
+
type=str,
|
843
|
+
help="Path to file containing magnetic moments for each spin (nspin×3 array)",
|
795
844
|
)
|
796
845
|
parser.add_argument(
|
846
|
+
"-v",
|
797
847
|
"--n",
|
798
848
|
nargs=3,
|
799
849
|
type=float,
|
@@ -802,6 +852,7 @@ def main():
|
|
802
852
|
)
|
803
853
|
|
804
854
|
parser.add_argument(
|
855
|
+
"-s",
|
805
856
|
"--show",
|
806
857
|
action="store_true",
|
807
858
|
default=False,
|
@@ -833,6 +884,7 @@ def main():
|
|
833
884
|
DMI=args.DMI,
|
834
885
|
Q=args.Q if args.Q is not None else None,
|
835
886
|
uz_file=args.uz_file,
|
887
|
+
spin_conf_file=args.spin_conf_file,
|
836
888
|
n=args.n if args.n is not None else None,
|
837
889
|
show=args.show,
|
838
890
|
)
|
@@ -840,10 +892,6 @@ def main():
|
|
840
892
|
plot_magnon_bands_from_TB2J(params)
|
841
893
|
|
842
894
|
|
843
|
-
if __name__ == "__main__":
|
844
|
-
main()
|
845
|
-
|
846
|
-
|
847
895
|
class MagnonASEWrapper:
|
848
896
|
def __init__(self, magnon: Magnon):
|
849
897
|
self.magnon = magnon
|