ZacrosParametersScanResults

The ZacrosParametersScanResults class was designed to take charge of the job folder after executing the ZacrosParametersScanJob. It gathers the information from the output files and helps to extract data of interest from them. Every ZacrosParametersScanJob instance has an associated ZacrosParametersScanResults instance created automatically on job creation and stored in its results attribute. This class extends the PLAMS Results class.

The following lines of code show an example of how to use the ZacrosParametersScanResults class:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
ps_parameters = pz.ZacrosParametersScanJob.Parameters()
ps_parameters.add( 'x_CO', 'molar_fraction.CO', numpy.arange(0.1, 1.0, 0.1) )
ps_parameters.add( 'x_O2', 'molar_fraction.O2', lambda params: 1.0-params['x_CO'] )
ps_parameters.set_generator( pz.ZacrosParametersScanJob.zipGenerator )
print(ps_parameters)

ps_job = pz.ZacrosParametersScanJob( reference=z_job, parameters=ps_parameters )
results = ps_job.run()

if( ps_job.ok() ):
   results_dict = results.turnover_frequency()
   print(results_dict[0])

   print("%4s"%"cond", "%8s"%"x_CO", "%10s"%"TOF_CO2")
   for i,idx in enumerate(results.indices()):
       print( '%4d'%i,
              '%8.2f'%results_dict[i]['x_CO'],
              '%10.6f'%results_dict[i]['turnover_frequency']['CO2'] )

Lines 1-8 were already discussed before (see ZacrosParametersScanJob). Here, the ZacrosParametersScanResults object results is created by calling the method run() of the corresponding ZacrosParametersScanJob job (line 8).

Afterward, the method ok() is invoked to assure that the calculation finished appropriately (line 10), and only after that, it is good to go to get information from the output files by using the ZacrosParametersScanResults methods (lines 11-18). As an example, the method turnover_frequency() returns the turnover frequency (TOF) for every gas species (for this example they are CO, O2, and CO2) and for every composition (x_CO and x_O2 values) in the form of a dictionary (line 11).

The execution of the code above after line 8 shows the following information to the standard output:

{'x_CO': 0.1,
 'x_O2': 0.9,
 'turnover_frequency': {'CO': -0.017600, 'O2': -0.014926, 'CO2': 0.017600},
 'turnover_frequency_error': {'CO': 0.018148, 'O2': 0.015503, 'CO2': 0.018148},
 'turnover_frequency_converged': {'CO': False, 'O2': False, 'CO2': False}}

cond     x_CO     TOF_CO2
   0     0.10    0.017600
   1     0.20    0.049895
   2     0.30    0.123811
   3     0.40    0.577095
   4     0.50    2.108442
   5     0.60    0.221453
   6     0.70    0.008863
   7     0.80    0.000589
   8     0.90   -0.000000

Line 12 prints out the first element of the list results_dict. As you can see in the output generated, this element contains the molar fractions of the gas species (x_CO and x_O2) and three values related to the turnover frequency calculation, namely the value itself (turnover_frequency), its error (turnover_frequency_error), and a flag to determine if the calculation is converged or not (turnover_frequency_converged). Finally, lines 14-18 show the values of x_CO and TOF_CO2 for all compositions in a summary table.

API

class ZacrosParametersScanResults(job)

A Class for handling ZacrosParametersScanJob Results.

indices()

Returns the indices to get access to the children results.

Example of use:

for i,idx in enumerate(results.indices()):
    print( results.children_results( child_id=idx ).history( pos=-1 )['max_time'] )
children_results(child_id=None)

Returns the children results in a dictionary form.

Example of use:

for i,idx in enumerate(results.indices()):
    print( results.children_results( child_id=idx ).history( pos=-1 )['max_time'] )
turnover_frequency(nbatch=20, confidence=0.99, ignore_nbatch=1, update=None)

Return a list with values related to the calculation of the turnover frequency for the gas species.

  • nbatch – Number of batches to use.

  • confidence – Confidence level to use in the criterion to determine if the steady-state was reached.

  • ignore_nbatch – Number of batches to ignore during the averaging in the calculation of the TOF.

  • update – List with dictionary items to be updated with the output values.

The following example illustrates the structure of one element of the output list:

{'x_CO': 0.1,
 'x_O2': 0.9,
 'turnover_frequency': {'CO': -0.017600, 'O2': -0.014926, 'CO2': 0.017600},
 'turnover_frequency_error': {'CO': 0.018148, 'O2': 0.015503, 'CO2': 0.018148},
 'turnover_frequency_converged': {'CO': False, 'O2': False, 'CO2': False}}
average_coverage(last=5, update=None)

Return a list with values related to the calculation of the average coverage for the adsorbed species. Each element of the output list is a dictionary with the average coverage fractions using the last last lattice states, for example:

{'x_CO': 0.1,
 'x_O2': 0.9,
 'average_coverage': { "CO*":0.32, "O*":0.45 }}