aiida-siesta 1.1.0
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
STMCalculationto 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
SiestaBaseWorkChainto make use ofBaseRestartWorkChainfrom 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,SiestaSequentialConvergerandEqOfStateFixedCellShape. - 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
PsmlDataandPsfDataclasses 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,SiestaBaseWorkChainand all the other workchains. - The method
inputs_generator().get_inputs_dict(available forSiestaCalculations 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 methodinputs_generator().get_filled_builderis instead correct. - The
SiestaSequentialConvergerfails in case one of the parameters to converge in the sequential process is not reaching convergence.