# 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
- Run tests on different magnetic materials and compare it to Grogu Matlab --> ran on Jij_for_Marci_6p45ang, but I could not compare data
## Developing
- Magnetic entities cannot handle orbitals, only shells
- Use ReadThe Docs [addons ](https://docs.readthedocs.io/en/stable/addons.html )
- Check the symmetrization of the Hamiltonian and overlap matrix to make them hermitian
- Check if exchange field has scalar part
- Add more tests!!
- io stuff
# 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. Then autogenerate the documentation and build. After this the html page can be found in `docs/source/_build/html` . Follow the commands below.
```
cd docs/source
sphinx-apidoc -o ./implementation/ ../../src/
make clean
make html
```
To build a pdf containing the documentation instead of make, first navigate to the `docs/source` folde, then use the rst2pdf extension.
```
cd docs/source
sphinx-apidoc -o ./implementation/ ../../src/
sphinx-build -b pdf . _build/pdf
```