Getting parsed calculation results

In this section, we describe how to get the results of a calculation, after AiiDA parsed the output of the calculation.

When a calculation is done on the remote computer, AiiDA will retrieve the results and try to parse the results with the default parser, if one is available for the given calculation. These results are stored in new nodes, and connected as output of the calculation. Of course, it is possible for a given calculation to check output nodes and get their content. However, AiiDA provides a way to directly access the results, using the aiida.orm.calculation.job.CalculationResultManager class, described in the next section.

The CalculationResultManager

Note

In the following, we assume that calc is a correctly finished and parsed Quantum ESPRESSO pw.x calculation. You can load such a calculation for instance with the command:

calc = load_node(YOURPK)

either in verdi shell, or in a python script (see here for more information on how to use verdi shell or how to run python scripts for AiiDA), and where YOURPK is substituted by a valid calculation PK in your database.

Each JobCalculation has a res attribute that is a CalculationResultManager object and gives direct access to parsed data.

To use it, you can just use then:

calc.res

that will however just return the class. You can however convert it to a list, to get all the possible keys that were parsed. For instance, if you type:

print list(calc.res)

you will get something like this:

[u'rho_cutoff', u'energy', u'energy_units', ...]

(the list of keys has been cut for clarity: you will get many more keys).

Once you know which keys have been parsed, you can access the parsed value simply as an attribute of the res ResultManager. For instance, to get the final total energy, you can use:

print calc.res.energy

that will print the total energy in units of eV, as also stated in the energy_units key:

print calc.res.energy_units

Similarly, you can get any other parsed value, for any code that provides a parser.

Note

the CalculationResultManager is also integrated with iPython/verdi shell completion mechanism: if calc is a valid JobCalculation, you can type:

calc.res.

and then press the TAB key of the keyboard to get/complete the list of valid parsed properties for the calculation calc.