Skip to content

Commit

Permalink
Merge branch 'develop' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
Tseplyaev committed Sep 27, 2021
2 parents 652570a + 23806c5 commit 61b0d82
Show file tree
Hide file tree
Showing 75 changed files with 6,643 additions and 1,194 deletions.
20 changes: 16 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,18 @@ jobs:

strategy:
matrix:
python-version: [3.6, 3.7, 3.8, 3.9]
python-version: [3.7, 3.8, 3.9]
aiida-version: ['aiida-core']
aiida-name: ['stable']
allowed-to-fail: [false]
include:
- python-version: 3.8
aiida-version: 'git+https://github.com/aiidateam/aiida-core.git@develop'
aiida-name: 'develop'
allowed-to-fail: true

name: tests-python-${{ matrix.python-version }}-${{ matrix.aiida-name }}
continue-on-error: ${{ matrix.allowed-to-fail }}

services:
postgres:
Expand All @@ -98,9 +109,9 @@ jobs:
uses: actions/cache@v1
with:
path: ~/.cache/pip
key: pip-${{ matrix.python-version }}-tests-${{ hashFiles('**/setup.json') }}
key: pip-${{ matrix.python-version }}-${{ matrix.aiida-name }}-tests-${{ hashFiles('**/setup.json') }}
restore-keys: |
pip-${{ matrix.python-version }}-tests
pip-${{ matrix.python-version }}-${{ matrix.aiida-name }}-tests
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
Expand All @@ -115,7 +126,8 @@ jobs:
- name: Install python dependencies
run: |
pip install --upgrade wheel setuptools
pip install git+https://github.com/aiidateam/aiida-testing.git@export_cache
# pip install git+https://github.com/aiidateam/aiida-testing.git@export_cache
pip install ${{ matrix.aiida-version }}
pip install .[testing]
reentry scan
Expand Down
1 change: 1 addition & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ disable=too-few-public-methods,
too-many-lines, # FIXME ?
too-many-return-statements, # FIXME ?
too-many-arguments, # FIXME
unspecified-encoding, # FIXME ?
pointless-string-statement # Because of multi line comments, or outcommented code

# Enable the message, report, category or checker with the given id(s). You can
Expand Down
88 changes: 88 additions & 0 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
{
"upload_type": "software",
"language": "eng",
"title": "JuDFTteam/aiida-fleur: AiiDA-FLEUR release v1.3.0",
"license": {
"id": "MIT"
},
"access_right": "open",
"communities": [
{
"id": "compmatsci"
}
],
"grants": [
{
"id": "824143"
},
{
"id": "676598"
}
],
"keywords": [
"physics",
"materials-science",
"electronic-structure",
"python",
"scientific-computing",
"workflow",
"DFT",
"aiida-framework",
"aiida-plugin",
"max-repo",
"FLEUR",
"FLAPW",
"JLVMD",
"JuDFT"
],
"creators": [
{
"orcid": "0000-0001-7939-226X",
"affiliation": "Forschungszentrum J\u00fclich GmbH",
"name": "Jens Br\u00f6der"
},
{
"orcid": "0000-0001-9130-0049",
"affiliation": "Forschungszentrum J\u00fclich GmbH",
"name": "Vasily Tseplyaev"
},
{
"orcid": "0000-0003-3558-9487",
"affiliation": "Forschungszentrum J\u00fclich GmbH",
"name": "Henning Janssen"
},
{
"orcid": "0000-0001-9078-0132",
"affiliation": "Forschungszentrum J\u00fclich GmbH",
"name": "Anoop Chandran"
},

{
"orcid": "0000-0002-2248-1904",
"affiliation": "Forschungszentrum J\u00fclich GmbH",
"name": "Daniel Wortmann"
},
{
"orcid": "0000-0001-9987-4733",
"affiliation": "Forschungszentrum J\u00fclich GmbH",
"name": "Stefan Bl\u00fcgel"
}
],
"subjects": [
{
"term": "electronic structure",
"scheme": "url",
"identifier": "https://www.wikidata.org/wiki/Q5358432"
},
{
"term": "materials informatics",
"scheme": "url",
"identifier": "https://www.wikidata.org/wiki/Q6786605"
}
],
"resource_type": {
"type": "software",
"title": "Software"
},
"description": "<p><strong> This software contains a plugin that enables the usage of the all-electron DFT FLEUR program with the AiiDA framework.</strong></p>\n\n<p>Feel free to contribute.</p>\n\nThe code is hosted on GitHub at: https://github.com/JuDFTteam/aiida-fleur</p>\n\n<p>The documentation is hosted on https://aiida-fleur.readthedocs.io.</p>\n\n<p>Most functionality and workflows was developed for the use with the DFT program FLEUR developed at the Forschungszentrum J&uuml;lich (see http://judft.de, https://flapw.de for further information on the codes) and in the context of the AiiDA framework (https://aiida.net).</p>\n\n<p><strong>Installation</strong></p>\n\n<blockquote>\n<p><br>\npip install aiida-core<br>\n&nbsp;</p>\n</blockquote>\n\n<p><strong>Dependencies</strong></p>\n\n<p>These python packages are needed:</p>\n\n<ul>\n\t<li>`aiida-core[atomic_tools]`</li>\n\t<li>`masci-tools`</li>\n\t<li>`lxml`</li>\n\t<li>`pyhull` &nbsp;</li>\n\t<li>`sympy`</li>\n\t<li>`numpy`</li>\n\t<li>`future`</li>\n\t<li>`pyhull`</li>\n\t<li>`sqlalchemy<1.4`</li>\n</ul>\n\n<p><strong>Layout of aiida-fleur</strong></p>\n\n<ul>\n\t<li>&nbsp;`calculation`: Contains AiiDA job calculation plugins for the inpgen code and the FLEUR code.\n\t<ul>\n\t<li>`cmdline`: Contains files for the commandline interface.</li>\n\t</ul>\n\t</li>\n\t<li>`tests`: auto tests of `aiida-fleur` functions</li>\n\t<li>`common`: Contains base classes and constants which are used throughout the package.</li>\n\t<li>`data`: Contains AiiDA data plugins specific to FLEUR.</li>\n\t<li>`parsers`: Contains parser AiiDA plugins for the job calculation plugins.</li>\n\t<li>`tools`: Contains basic utility and high level utility which is rather complete</li>\n\t<li>`workflows`: Contains a collection of AiiDA workchains (workflows) specific to FLEUR which have HPC and HTC capabilties with full provenance tracking. </li>\n</ul>\n\n<p><strong>License</strong>:<br>\naiida-fleur is distributed under the terms and conditions of the MIT license which is specified in the `LICENSE` file.</p>"
}
13 changes: 10 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
## v.1.2.1
### release compatible with AiiDA-core 1.3.0+
- General improvements for CreateMagnetic workchain and related methods
- Added OrbControl workchain
- FleurBandDosWorkchain provides AiiDA BandsData for bandstructure calculations and XyData for DOS calculations as outputs
- General Improvements to plot_fleur function, e.g. can now visualize FleurBandDosWorkChain

## v.1.2.0
### release compatible with AiiDA-core 1.3.0+
possibly ready for aiida-core 2.0.0
- supports Fleur MaXR4 and MaXR5 versions with new inpgen
- supports Fleur MaXR4 and MaXR5 versions with new inpgen
MaXR4 requires providing versions in the code nodes
- Some features relying on the id in the inpgen files,
- Some features relying on the id in the inpgen files,
may be broken by the new inpgen interface change when using MaXR5.1
- Added support for GW calculations with Spex, and the Strain workchain
- Major code refactoring, moving all xml tools to masci-tools (therefore requires masci-tools >=0.4.8)
Expand All @@ -28,7 +35,7 @@ may be broken by the new inpgen interface change when using MaXR5.1
- Implemented feature in fleurinputCalculation to set significant figures
- Implemented feature scf can now use default queues specified in code extras
- First implementation of relax type None, which cases the relax workchain to skip the
relaxation, becoming a usual scf wc, which might make it easier to switch relaxation on
relaxation, becoming a usual scf wc, which might make it easier to switch relaxation on
and off in other workchains.
- Fleur parser parses now the total magnetic moment of the cell
- Introduced common constants, for bohr and htr, increased precision
Expand Down
2 changes: 1 addition & 1 deletion aiida_fleur/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@
'''
AiiDA-FLEUR
'''
__version__ = '1.2.0'
__version__ = '1.2.1'
25 changes: 13 additions & 12 deletions aiida_fleur/calculation/fleur.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,9 @@ class FleurCalculation(CalcJob):
_NMMPMAT_FILE_NAME = 'n_mmp_mat'
_NMMPMAT_HDF5_FILE_NAME = 'n_mmp_mat_out'

#files for crystal field calculations
_CFDATA_HDF5_FILE_NAME = 'CFdata.hdf'

#files for greensfunctions
_GREENSF_HDF5_FILE_NAME = 'greensf.hdf'

Expand Down Expand Up @@ -415,7 +418,12 @@ def prepare_for_submission(self, folder):
if modes['greensf']:
if with_hdf5:
mode_retrieved_filelist.append(self._GREENSF_HDF5_FILE_NAME)
if modes['force_theorem']:
if modes['cf_coeff']:
if with_hdf5:
mode_retrieved_filelist.append(self._CFDATA_HDF5_FILE_NAME)
else:
self.logger.warning('CF calculation without HDF5 not supported ' 'for automatic file retrieval.')
if modes['force_theorem'] or modes['cf_coeff']:
if 'remove_from_retrieve_list' not in settings_dict:
settings_dict['remove_from_retrieve_list'] = []
if with_hdf5:
Expand All @@ -439,7 +447,7 @@ def prepare_for_submission(self, folder):
self._NMMPMAT_HDF5_FILE_NAME in outfolder_filenames):
if has_fleurinp:
if 'n_mmp_mat' in fleurinp.files:
self.logger.warning('Ingnoring n_mmp_mat from fleurinp. '
self.logger.warning('Ignoring n_mmp_mat from fleurinp. '
'There is already an n_mmp_mat file '
'for the parent calculation')
local_copy_list.remove((fleurinp.uuid, 'n_mmp_mat', 'n_mmp_mat'))
Expand Down Expand Up @@ -475,14 +483,7 @@ def prepare_for_submission(self, folder):
# TODO: not on same computer -> copy needed files from repository
# if they are not there throw an error
if copy_remotely: # on same computer.
# from fleurmodes
if modes['dos']:
pass
elif modes['band']:
pass
else:
filelist_tocopy_remote = filelist_tocopy_remote + \
self._copy_filelist_scf_remote
filelist_tocopy_remote = filelist_tocopy_remote + self._copy_filelist_scf_remote
# from settings, user specified
# TODO: check if list?
for file1 in settings_dict.get('additional_remotecopy_list', []):
Expand All @@ -500,7 +501,7 @@ def prepare_for_submission(self, folder):
self.logger.info('remote copy file list %s', str(remote_copy_list))

# create a JUDFT_WARN_ONLY file in the calculation folder
with io.StringIO(u'/n') as handle:
with io.StringIO('/n') as handle:
warn_only_filename = self._JUDFT_WARN_ONLY_INFO_FILE_NAME
folder.create_file_from_filelike(handle, filename=warn_only_filename, mode='w')

Expand Down Expand Up @@ -584,7 +585,7 @@ def prepare_for_submission(self, folder):
# + ["<", self._INPXML_FILE_NAME,
# ">", self._SHELLOUTPUT_FILE_NAME, "2>&1"]
codeinfo.code_uuid = code.uuid
codeinfo.withmpi = self.node.get_attribute('max_wallclock_seconds')
codeinfo.withmpi = self.node.get_attribute('withmpi')
codeinfo.stdin_name = None # self._INPUT_FILE_NAME
codeinfo.stdout_name = self._SHELLOUTPUT_FILE_NAME
#codeinfo.join_files = True
Expand Down
Loading

0 comments on commit 61b0d82

Please sign in to comment.