quantum-exeter / SpiDy.jl

:spider: Non-Markovian stochastic SPIn (and harmonic oscillator) DYnamics.
GNU General Public License v3.0
11 stars 2 forks source link
harmonic-oscillator open-systems spin-dynamics stochastic

spidy_banner

SpiDy.jl

Stable Dev Build Status DOI DOI

(It is pronounced "spee-dee" 😊)

SpiDy.jl is a Julia package that solves the non-Markovian stochastic dynamics of interacting classical spin vectors and harmonic oscillator networks in contact with a dissipative environment. The methods implemented allow the user to include arbitrary memory effects and colored quantum noise spectra. In this way, SpiDy.jl provides key tools for the simulation of classical and quantum open systems including non-Markovian effects and arbitrarily strong coupling to the environment. Among the wide range of applications, some examples range from atomistic spin dynamics to ultrafast magnetism and the study of anisotropic materials. We provide the user with Julia notebooks to guide them through the various mathematical methods and help them quickly set up complex simulations.

Reference paper

This is the reference paper for a quick overview. You might also want to cite it in case it is useful!

JOSS publication -> https://joss.theoj.org/papers/10.21105/joss.06263

arXiv preprint -> https://arxiv.org/abs/2310.03008

Bibtex citation ```tex @article{Scali2024, doi = {10.21105/joss.06263}, url = {https://doi.org/10.21105/joss.06263}, year = {2024}, publisher = {The Open Journal}, volume = {9}, number = {97}, pages = {6263}, author = {Stefano Scali and Simon Horsley and Janet Anders and Federico Cerisola}, title = {SpiDy.jl: open-source Julia package for the study of non-Markovian stochastic dynamics}, journal = {Journal of Open Source Software} } ```

Online documentation

Check the online documentation at this link.

Install Julia

If you are new to Julia, here is how to install it.

If you are a Windows/Mac user, download Julia here and run the installer. On Mac, drag-and-drop the app to the Applications.

If you are a Linux user, just open a terminal and use your package manager, e.g. on Debian-based distros run "sudo apt-get install julia", on RedHat-based distros run "sudo dnf install julia".

Install SpiDy

Start Julia and enter in Pkg REPL mode by pressing ] then run the following,

add SpiDy

NB: the entire installation of SpiDy and its dependencies takes about 5 minutes on a bare-bones Julia environment.

Run SpiDy

To run the code,

This last command will run the code and save plots/datafile of the chosen run. CONGRATS, you have just run SpiDy for the first time!

NB: the code can exploit parallel computation. To do this, run your files as

julia -t 6 "path-to-your-file"/run_dynamics.jl

where you want to replace "6" with the number of threads that you wish to use. As a general idea, you do not want to use more than 80% of the number of threads you have available in your machine, e.g. if you have a 4-core CPU, you are likely to have 8 threads and you may want to run the parallelization as indicated above.

Repo structure