MeanFi
What is MeanFi?
MeanFi is a Python package that performs self-consistent Hartree-Fock calculations on tight-binding models.
It aims to find the groundstate of a Hamiltonian with density-density interactions
$$ \hat{H} = \hat{H_0} + \hat{V} = \sum_{ij} h_{ij} c^\dagger_{i} c_{j} + \frac{1}{2} \sum_{ij} v_{ij} \hat{n}_i \hat{n}_j, $$
and computes the mean-field correction $\hat{V}^{\text{MF}}$ which approximates the interaction term:
$$ \hat{V} \approx \hat{V}^{\text{MF}} =\sum_{ij} \tilde{v}_{ij} c_{i}^{\dagger} c_{j}. $$
For more details, refer to the theory overview and algorithm description.
How to use MeanFi?
The calculation of a mean-field Hamiltonian is a simple 3-step process:
-
Define
To specify the interacting problem, use a
Modelobject which collects:- Non-interacting Hamiltonian as a tight-binding dictionary.
- Interaction Hamiltonian as a tight-binding dictionary.
- Particle filling number in the unit cell.
-
Guess
Construct a starting guess for the mean-field correction.
-
Solve
Solve for the mean-field correction using the
solverfunction and add it to the non-interacting part to obtain the total mean-field Hamiltonian.
import meanfi
#Define
h_0 = {(0,) : onsite, (1,) : hopping, (-1,) : hopping.T.conj()}
h_int = {(0,) : onsite_interaction}
model = meanfi.Model(h_0, h_int, filling=2)
#Guess
guess = meanfi.guess_tb(guess_hopping_keys, ndof)
#Solve
mf_correction = meanfi.solver(model, guess)
h_mf = meanfi.add_tb(h_0, mf_correction)
For more details and examples on how to use the package, we refer to the tutorials.
Why MeanFi?
Here is why you should use MeanFi:
-
Simple
The workflow is straightforward. Interface with
Kwantallows easy creation of complicated tight-binding systems and interactions. -
Extensible
MeanFi's code is structured to be easy to understand, modify and extend. -
Optimized numerical workflow
Introduces minimal overhead to the calculation of the mean-field Hamiltonian.
What MeanFi doesn't do (yet)
Here are some features that are not yet implemented but are planned for future releases:
- Superconducting order parameters. Mean-field Hamiltonians do not include pairing terms.
- General interactions. We allow only density-density interactions (e.g. Coulomb) which can be described by a rank two tensor.
- Temperature effects. Density matrix calculations are done at zero temperature.
Installation
pip install meanfi
Citing MeanFi
If you have used MeanFi for work that has led to a scientific publication, please cite us as:
@misc{meanfi,
author = {Vilkelis, Kostas and Zijderveld, R. Johanna and Akhmerov, Anton R. and Manesco, Antonio L.R.},
doi = {10.5281/zenodo.11149850},
month = {5},
title = {MeanFi},
year = {2024}
}
Metadata
Release files for meanfi 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| meanfi-1.1.0.tar.gz | 171.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| meanfi-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 195.9 kB
Release files / meanfi-1.1.0.tar.gz
| Download URL | meanfi-1.1.0.tar.gz |
|---|---|
| Size | 171.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
130adc7a668f9066734dc3cfd859f15e21ab705e532b8ef173d232fa2d3d0442
|
|
BLAKE2b-256 checksum How to use checksums |
ca42f7d2b79a840b97f9c7a9e99dde0f0ae0f5ac999991a89e907f7d4856c468
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.27.0
|
Release files / meanfi-1.1.0-py3-none-any.whl
| Download URL | meanfi-1.1.0-py3-none-any.whl |
|---|---|
| Size | 24.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8b12fdfb17ee9985b7e779c22461a36dc7311627eebceaa0534a2b38cb7cc822
|
|
BLAKE2b-256 checksum How to use checksums |
0c6287857c3e351adfeab48cdd4af49123279872e825dc7679ba456ae59df105
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
python-httpx/0.27.0
|