-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
77 changed files
with
4,507 additions
and
1,598 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
## v0.3.0 | ||
|
||
### Merge with workflows repo | ||
- the second repository with basic workflows was merged into the plugin repostitory. | ||
- Afterwards the repo was renamed from aiida_fleur_plugin to aiida-fleur | ||
|
||
### Installation (new aiida plugin system): | ||
- everything is now pip installable (pip install -e .) (not yet on pypi) | ||
Therefore the files do not have to be copied anymore into the aiida_core source folder | ||
(make sure to add the aiida-fleur folder to your PYTHONPATH variable) | ||
- all modules are now importet from the aiida_fleur folder | ||
(example 'from aiida.tools.codespecific.fleur.convergence import fleur_convergence' -> 'from aiida_fleur.workflows.scf import fleur_scf_wc) | ||
|
||
### Renaming | ||
- In the process (and due to the entry points some things have to be renamed) | ||
The plugin in aiida (fleur_inp.fleur -> fleur.fleur; fleur_inp.fleurinp -> fleur.fleurinp; fleur_inp.fleurinputgen -> fleur.inpgen) | ||
|
||
### Workflows | ||
- some fine tuning of workflows. Naming scheme was introduced. | ||
- Some first error catching and controlled shutdown (because of new AiiDA features). | ||
- added consistent through all workflows the 'serial' key in wf_parameter nodes, which will turn of mpi. | ||
|
||
### Dokumentation | ||
- Due to the new plugin system of AiiDA the Dokumentation is now online on read-the-docs. | ||
(so far incomplete because of old AiiDA version on pypi) We still recommend to take a look at the docs in the repo itself (ggf build it) | ||
|
||
|
||
|
||
## v0.2.0 tutorial version | ||
|
||
Version for used at the MAX AiiDA-fleur tutorial in May 2017 | ||
|
||
### Dokumentation | ||
- added some basic explainations pages beyond the pure in code docs | ||
|
||
|
||
### Tests | ||
- added basic tests of Fleur itself and tests for submission | ||
|
||
### Ploting | ||
- There is a plot_methods repo on bitbucket which has methods to visualize common workflow output nodes. | ||
|
||
|
||
|
||
|
||
## v0.1 Base commit | ||
|
||
### Moved everything von bitbucket to github | ||
|
||
### Dokumentation | ||
-Basic docs available locally | ||
|
||
### Installation | ||
- provided copy_files script to copy the plugin files into AiiDA folder | ||
|
||
### Workflows | ||
- Some basic sketches of basic workflows available (working AiiDa workflow system just released) |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
__author__: Jens Broeder (j.broeder@fz-juelich.de) | ||
|
||
Here are some guidlines for writting FLEUR workflows/workchains and AiiDA in general. | ||
Keep in mind that a workflow is REAL SOFTWARE which will be used by others and build ontop and NOT a script. | ||
|
||
|
||
######################## | ||
|
||
GENERAL: | ||
|
||
1. Every Workflow needs a clear documentation of input, output! Think this through and do not change it later on, bcause you will break the code of others! Therefore thinking about good names (see below) is not wasted time. | ||
|
||
2. reuse as much of previous workflows as possible, use subworkflows. | ||
(otherwise your code exploded, is hard to understand again und not reusable) | ||
|
||
3. If you think somthing processing is common or might be useful for something else, | ||
make it modular, and import the method (goes along with point 2.). | ||
|
||
4. Try to keep the workflow context clean! (this part will always be saved and visible, there people track what is going on. | ||
|
||
5. Write clear report statements in the worklow report. | ||
|
||
6. ggf one has to think about resource managment. | ||
i.e if a big system needs to be calculated and the user says use x hundred cores, | ||
and in the workflow simulations on very small systems need to be done, it makes no | ||
sense to submit a job with the same huge amount | ||
(use a default amount of resources, or the given ones if they are less, for small calculations) | ||
|
||
7. ERROR handling: | ||
|
||
Error handling is very important and might take a lot of effort. Write at least an outline (named: inspect_xx, handle_xx), which skeleton for all the errors (treated or not). (look at the aiida QE workflows as example) | ||
Now iterative put every time you ancounter a 'crash' because something failed (usually variable/node acess stuff), the corresponding code in a try block and call your handler. | ||
Use self.abort('message') to clearly terminate the workflow in the case something went wrong and it makes no sense to continue. | ||
|
||
Keep in mind, your workflow should never: | ||
|
||
7.1 end up in a while true (because of a calculation or subworkflow failure) | ||
7.2 crash with at a later point because a calculation or subworkflow failed. | ||
(The user won't understand so easly what append, also this makes it impossible to build useful error handling of your workflow ontop (when using your workflow as a subworkflow)) | ||
.... | ||
|
||
|
||
|
||
|
||
########################## | ||
|
||
FLEUR Specific: | ||
|
||
1. Output nodes of a workflow has the nameing convention 'output_name_description' | ||
i.e 'output_scf_wc_para' | ||
|
||
2. Every workflow should give back one parameter output node named 'output_wfname_para' | ||
which contains all the 'physical results' the workflow is designd to provide, | ||
or at least information to acces these results direclty (if stored in files and so on) | ||
further the node should contain valuable information to make sense/judge the quality of the data. | ||
|
||
Try to design this node in a way that if you take a look at it, you understand | ||
the following questions: | ||
|
||
which workflow was run, what version? | ||
what came out? What was put in, how can I see what was put in? | ||
Is this valueable or garbage? | ||
|
||
3. so far name Fleur workflows/workchains name: fleur_name_wc | ||
|
||
4. (advanced) group workflow internal(between) calculations and add extras to calcualtion. (that way one can extract them from global querries, if need. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.