Skip to content

Commit

Permalink
Merge branch 'release/0.0.5'
Browse files Browse the repository at this point in the history
  • Loading branch information
piskunow committed Nov 29, 2023
2 parents f275fe6 + bac7537 commit 7662cd6
Show file tree
Hide file tree
Showing 8 changed files with 3,418 additions and 39 deletions.
37 changes: 21 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
# kpm-tools

=======

# KPM Tools

[![PyPI](https://img.shields.io/pypi/v/kpm-tools.svg)][pypi_]
Expand All @@ -25,18 +21,13 @@
[pre-commit]: https://github.com/pre-commit/pre-commit
[black]: https://github.com/psf/black

KPM Tools is an open-source Python package that extends the Kernel Polynomial Method (KPM) functionalities of [Kwant](https://kwant-project.org/), a popular software for quantum transport simulations in tight-binding models. Our package specifically enhances the KPM expansion capabilities within the realm of closed tight-binding systems.

## Features

- KPM expansion of typical spectal functions
- Density of states
- Green's functions
- Kubo conductivity
- Chern marker
- Time evolution
- Tools for system with periodic boundaries
- KPM vector factories that produces tiles
- Velocity operators adapted to periodic boundaries
- Distance operators adapted to periodic boundaries
- Advanced KPM expansion of typical spectral functions like Density of States, Green's Functions, Kubo Conductivity, and Chern Markers.
- Extremely efficient time evolution operator expansion
- Additional functionalities like KPM vector factories producing tiles, and velocity and distance operators adapted to periodic boundaries.

## Requirements

Expand All @@ -56,8 +47,7 @@ Please see the [python api reference] for details.

## Contributing

Contributions are very welcome.
To learn more, see the [Contributor Guide].
Contributions, especially in documentation and the 'concatenator' function/module, are very welcome. For more information, see our [Contributor Guide].

## License

Expand All @@ -71,6 +61,21 @@ please [file an issue] along with a detailed description.

## Credits

Many of the ideas implemented in KPM Tools originate from the early work on KPM expansion on the paper

_Computation of topological phase diagram of disordered PbSnTe using the kernel polynomial method_.

[Phys. Rev. Research 2, 013229 (2020)](https://doi.org/10.48550/arXiv.1905.02215)
[arXiv:1905:02215](https://arxiv.org/abs/1905.02215)

Consider citing that work if you use this package on a publication.

### Acknowledgments to Kwant

KPM Tools is built upon the robust and efficient foundation provided by Kwant. We extend our gratitude to the Kwant authors and contributors for their work in developing a versatile platform for quantum transport simulations. KPM Tools aims to complement Kwant's capabilities in KPM expansions, adhering to the high standards of quality and performance set by the Kwant project.

### Project Template

This project was generated from [@cjolowicz]'s [Hypermodern Python Cookiecutter] template.

[@cjolowicz]: https://github.com/cjolowicz
Expand Down
3 changes: 3 additions & 0 deletions docs/tutorials.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
maxdepth: 1
---
tutorials/tutorial_operators_and_functions
tutorials/tutorial_conductivity
tutorials/tutorial_bloch
tutorials/tutorial_tiles
tutorials/tutorial_time_evolution
tutorials/tutorial_evolution_performance
```
963 changes: 963 additions & 0 deletions docs/tutorials/tutorial_conductivity.ipynb

Large diffs are not rendered by default.

1,032 changes: 1,032 additions & 0 deletions docs/tutorials/tutorial_operators_and_functions.ipynb

Large diffs are not rendered by default.

1,374 changes: 1,374 additions & 0 deletions docs/tutorials/tutorial_tiles.ipynb

Large diffs are not rendered by default.

34 changes: 17 additions & 17 deletions poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "kpm-tools"
version = "0.0.4"
version = "0.0.5"
description = "KPM Tools"
authors = ["Pablo Piskunow <[email protected]>"]
license = "BSD 2-Clause"
Expand Down
12 changes: 7 additions & 5 deletions src/kpm_tools/kpm_funcs.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@


def greens_function(syst, params, **kwargs):
"""Build a Green's function operator using KPM.
"""Build the retarded Green's function operator using KPM.
Returns a function that takes an energy or a list of energies, and returns
the Green's function with that energy acting on `vectors`.
Expand Down Expand Up @@ -38,15 +38,17 @@ def greens_function(syst, params, **kwargs):
acting on the vectors, for those energies.
"""
return general_function(syst, params, coef_function=coef_greens_function, **kwargs)
return general_function(
syst, params, coef_function=coef_greens_function_r, **kwargs
)


def delta_function(syst, params, **kwargs):
"""Build a projector over the occupied energies.
"""Build a projector onto the Fermi energy.
Returns a function that takes a Fermi energy, and returns the
projection of the `vectors` over the occupied energies of the
Hamiltonian.
projection of the `vectors` onto the states that have the
same Fermi energy.
Parameters
----------
Expand Down

0 comments on commit 7662cd6

Please sign in to comment.