# Relativistic magnetic interactions from non-orthogonal basis sets
More on the theoretical background can be seen on [arXiv ](https://arxiv.org/abs/2309.02558 ).
# TODO
## Testing
- Calculate total charge for all Green's function -->
- Run tests on different magnetic materials and compare it to Grogu Matlab --> ran on Jij_for_Marci_6p45ang, but I could not compare data
- Change order in:
* magnetic entities -->
* pairs -->
- Compair single pair run to multiple pair run --> it is the same
- Check behavior by distance to test symmetry and Green function phase --> it is symmetric and decays by distance in an AFM way
- Check behavior by orbital indexing --> there is no unwanted mixing and otherwise consistent with symmetry and distance
## Developing
- Add documentation to `useful` functions
- Check the symmetrization of the Hamiltonian and overlap matrix to make them hermitian
- Check if exchange field has scalar part
- Output dictionary and rewrite output printing with the information
- Add more tests!!
# Building wheel
See detailed documentation on [PYPI ](https://packaging.python.org/en/latest/tutorials/packaging-projects/ ).
- First you need some API Tokens for Test PYPI ,to be able to upload. You can read about it [here ](https://test.pypi.org/help/#apitoken ). I own the current project, so you have to contact me.
Use the following commands for a quick setup:
- Build wheel
```
python -m build
```
- Push to PYPI test repository
```
python -m twine upload --repository testpypi dist/*
```
# Usage
## For end users
Download and install from [PYPI ](https://test.pypi.org/project/grogu-magn/ ) test repository. Be aware that this is not up to date yet!!!
```
python3 -m pip install --index-url https://test.pypi.org/simple/ grogu_magn
```
## For developers
- Clone repository from Gitea
```
git clone https://gitea.vo.elte.hu/et209d/grogu.git
```
- Create a virtual environment (.venv) (for example with VsCode)
* Use python 3.9.6
* install dependencies from:
* requirements.txt
* requirements-dev.txt
* /docs/requirements.txt
- Install and run pre-commit
```
pre-commit install
pre-commit run --all-files
```
To build the documentation navigate to the `docs/source` folder and run `make clean` and `make html` . After this the html page can be found in `docs/source/_build/html` .
```
cd docs/source
make clean
make html
```