Coder Social home page Coder Social logo

judftteam / aiida-spirit Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 2.0 6.36 MB

AiiDA plugin for the spirit code

License: MIT License

Python 18.13% CSS 0.85% HTML 2.15% JavaScript 78.87%
aiida condensed-matter-physics exchange-interaction forschungszentrum-juelich heisenberg-model hpc judft magnetism materials-science spin-dynamics

aiida-spirit's Introduction

Build Status Coverage Status Docs status PyPI version DOI

aiida-spirit

AiiDA plugin for the spirit code

Installation

pip install aiida-spirit # install aiida-spirit from pypi
verdi quicksetup  # better to set up a new profile
verdi plugin list aiida.calculations  # should now show your calclulation plugins

Usage

Here goes a complete example of how to submit a test calculation using this plugin.

A quick demo of how to submit a calculation (the spirit python API needs to be installed for this to work: pip install spirit):

verdi daemon start     # make sure the daemon is running
cd examples
./example_LLG.py       # run test calculation
verdi process list -a  # check record of calculation

Development

git clone https://github.com/JuDFTteam/aiida-spirit .
cd aiida-spirit
pip install -e .[pre-commit,testing]  # install extra dependencies
pre-commit install  # install pre-commit hooks
pytest -v  # discover and run all tests

Note that pytest -v will create a test database and profile which requires to find the pg_ctl command. If pg_ctl is not found you need to nake sure that postgres is installed and then add the localtion of pg_ctl to the PATH:

# add postgres path for pg_ctl to PATH
# this is an example for Postgres 9.6 installed on a mac
PATH="/Applications/Postgres.app/Contents/Versions/9.6/bin/:$PATH"
export PATH

Citation

If you use AiiDA-Spirit please cite the method paper

  • P. Rüßmann, J. Ribas Sobreviela, M. Sallermann, M. Hoffmann, F. Rhiem, and S. Blügel, The AiiDA-Spirit Plugin for Automated Spin-Dynamics Simulations and Multi-Scale Modeling Based on First-Principles Calculations, Front. Mater. 9, 825043 (2022). doi: 10.3389/fmats.2022.825043,

and the latest code release

  • P. Rüßmann, J. Ribas Sobreviela, M. Sallermann, M. Hoffmann, F. Rhiem, and S. Blügel. JuDFTteam/aiida-spirit. Zenodo. doi: 10.5281/zenodo.8070770.

License

The AiiDA-Spirit code is under the MIT license.

Contact

[email protected]

aiida-spirit's People

Contributors

philipprue avatar rjordi avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

spirit-code

aiida-spirit's Issues

Improve Spirit parser

So far the spirit parser only takes some basics. This should be improved. See also discussion in issue #4:

Other useful outputs might be:
For LLG (Dynamics) (meaning LLG with any solver that is not VP/LBFGS and direct_minimization=false)

Snapshots of the spin configuration at different time intervals

  • Energies at different time intervals

For LLG (Minimization) (So we probably expect some metastable configurations)

  • The profile/radius (thinking of Skyrmions)

  • Topological charge

For GNEB

  • The saddle point configuration/energies

  • Energy barrier

For HTST

  • All of the quantities in htst_info

  • Eigenvalues/Eigenvectors (if non sparse calculation)

MC

  • Critical temperatures (requires post processing, so maybe a bit out of scope)
  • Ground state spin configuration (simulated annealing + final minimization with LLG) (How to control convergence?)

Improve Spirit parameters input

So far the parameters input node for a SpiritCalculation only accepts strings, e.g. {'llg_temperature': '50.0', 'external_field_normal': '0.0 0.0 1.0'}.

This should be generalized to work with numerical values and some type checking should be included to ensure consistency of the input (i.e. ensure that for vectors 3 values are given, warn when floats are used where integer are expected, ...).

Allow to use more than the LLG method in spirit

The run_spirit.py script that is created in the SpiritCalculation
https://github.com/JuDFTteam/aiida-spirit/blob/develop/aiida_spirit/calculations.py#L174
only works for LLG, the Depondt solver and may include the +z initialization of the spins.

This should be generalized to cover the other modes of spirit (MC, GNEB, HTST, MMF), solvers (HEUN, LBFGS_Atlas, LBFGS_OSO, RK4, SIB, VP, VP_OSO) and configurations (+/-z, random, pinning, skyrmion, hopfion, dw_skyrmion, spin_spiral, noise).

A reference for the differnet methods, solvers and configurations can be found in the spirit python API documentatoion.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.