Aiida for QE: launching a series of codes from pw.x to matdyn.x

72 views
Skip to first unread message

Félix Therrien

unread,
Mar 16, 2018, 12:15:47 PM3/16/18
to aiida...@googlegroups.com
Hi,

I have been learning how to use aiida with Quantum Espresso for the last couple of days and have managed to write a single python script that launches all the necessary codes to get a proper phonon dispersion (that's: pw.x, ph.x, q2r.x and matdyn.x)

This led me to the following 2 questions:

1. Is it possible to submit all the necessary codes in a single job? That is create and submit only one bash script (pbs, slurm,...) 

For the moment, I wait for the status of the first code (say pw.x) to change to "FINISHED" and submit the next code (say ph.x) in a different job. This seems odd since you need the python script to be running on the login node during the whole process and you can loose you priority in the queue between each code/job you submit.

2. Are the eigenvectors of the dynamical matrices parsed somewhere? 

After matdyn.x finishes, the output is a BandsData object. I can find the eigenvalues of the dynamical matrix (i.e the bands) but I can't seem to find the eigenvectors. The flvec file is created in the output folder but I can't find the parsed results.

Thank you for your help!

Félix

Giovanni Pizzi

unread,
Mar 23, 2018, 12:32:11 PM3/23/18
to aiida...@googlegroups.com
Dear Félix,

1. Currently, AiiDA uses the approach of performing multiple submissions. There’s the potential disadvantage that you mention (depending on how priorities are managed in your scheduler), but this can be alleviated if you have many simulations that you can submit, and some reasons behind this choice are that 1. You might want to compute phonons with more CPUs in general (e.g. the same # of CPUs per q-point); 2. You might want to check if the simulation converged and first do restarts/changes to parameters before submitting phonons.
If you have a small system probably this is not needed - in this case you could create (it’s not yet available) a pw+ph plugin, that just calls the _prepare_for_submission code of both, and then submits both in the same job. Some documentation on how to write the plugin here: http://aiida-core.readthedocs.io/en/latest/developer_guide/devel_tutorial/code_plugin_int_sum.html and here http://aiida-core.readthedocs.io/en/latest/developer_guide/devel_tutorial/code_plugin_qe.html - in the second, look for ‘codes_run_mode’ to run multiple scripts one after the other in the same job (you want to use code_run_modes.SERIAL). The plugin should be easy to write, as you don’t need to reimplement the input generation, but just to call the existing functions.

2. By default the flvec is not parsed. However, some functions to parse it are available in AiiDA. In your workflow you can use the function
from aiida_quantumespresso.parsers.raw_parser_ph import parse_ph_dynmat
However, I didn’t check now if this also parses the flvec format or if this is different. If this is not the case, you will have to implement your own parser (and we will very happily accept a PR if you want to share your code).

Best,
Giovanni



--
Please see the guidelines at AiiDA mailing list information page (http://www.aiida.net/?page_id=356) before posting a new question.
---
You received this message because you are subscribed to the Google Groups "aiidausers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to aiidausers+...@googlegroups.com.
To post to this group, send email to aiida...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/aiidausers/CAA-f%3DHXbfP8NzHHAEHird%2BdaHZyXY_DGcpRLy7J2m%3D7PS0GN8w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages