Skip to content

aiida-siesta 1.1.0

Choose a tag to compare

@bosonie bosonie released this 06 Oct 07:36
· 260 commits to master since this release
4d835ad

Version compatible with aiida-core>=1.3.0,<2.0.0. Previous versions of aiida-core do not have a working BaseRestartWorkChain, which is the building piece of many workchains in aiida-siesta.
Support for python 2.7 and python 3.5 has been dropped.

Improvements

  • Extend the STMCalculation to work with modern versions of the "plstm" code. Included support for spin options.
  • Improved the Siesta parser to recognize more siesta errors.
  • Refactoring of the SiestaBaseWorkChain to make use of BaseRestartWorkChain from aiida-core, added a more complete errors handling.
  • Substitute the bands workchain with the BandGapWorkChain. No parameter is assumed inside the workchian ("protocols" are moved outside).
  • Change the STMWorkChain. No parameter is assumed inside the workchain and it has been extended to support all the modes and spins options for STM calculations.
  • Introduce several new workchains: SiestaIterator, SiestaConverger, SiestaSequentialConverger and EqOfStateFixedCellShape.
  • Introduce the "protocols" system, that suggests inputs for AiiDA workchains based on the structure under investigation and a "protocol" string.
  • Add several examples about new features, workchains and the protocol system.
  • Expanded the documentation.

For developers

  • Introduce a complete set of unitests.
  • Introduced proper CI with GitHub actions, including pre-commit requirements.
  • Improved the FDFDict: more methods and a behavior more similar to a python dictionary.
  • Refactoring of PsmlData and PsfData classes to use new Group feature of aiida-core.

Known bugs

  • The calculation of bands is faulty when a relaxation with variable cell is performed in the same run. While the bands are parsed correctly, the corresponding kpoints are wrongly assigned. This applies to SiestaCalculation, SiestaBaseWorkChain and all the other workchains.
  • The method inputs_generator().get_inputs_dict (available for SiestaCalculations and all the workchains in the package) is anyway returning items for "bandskpoints" and "kpoints" even if they are not requested. The value assigned to these two inputs is "None". This does not allow to pass directly the obtained dictionary as input of a calculation/workchain The method inputs_generator().get_filled_builder is instead correct.
  • The SiestaSequentialConverger fails in case one of the parameters to converge in the sequential process is not reaching convergence.