# reaction energies on initial, unoptimized geometries cmr_params = {'geometries': 'initial'} re.make_reaction_groups(database=False, index=0, cmr_params=cmr_params) # print re.print_result(database=False) # reaction energies on final, optimized geometries cmr_params = {'geometries': 'final'} re.make_reaction_groups(database=False, index=-1, cmr_params=cmr_params) # print re.print_result(database=False) reader = DirectoryReader('.') # retrieve all reactions (groups) with project_id and optimized geometries from the current directory all = reader.find(name_value_list=[('db_calculator', 'group'), ('geometries', 'final')], keyword_list=[project_id, 'reaction']) print 'reaction_id, calc, ref, calc - ref' # compare with the reference for r in reactions: reaction_id = r[-1][1] res = all.get('reaction_id', reaction_id) if res is None: print "Could not find reaction_id %s in reference" % str(reaction_id) else: calc = res['reaction_energy']
data = cmr.read(cmrfile) data.set_user_variable('xc', xc) data.write(cmrfile) # perform PBE calculation on LDA density ediff = calc2.get_xc_difference('PBE') # add new results to the cmrfile data = cmr.read(cmrfile) data.set_user_variable('PBE', data['ase_potential_energy'] + ediff) data.write(cmrfile) # analyze the results with CMR from cmr.ui import DirectoryReader reader = DirectoryReader(directory='.', ext='.cmr') # read all compounds in the project with lcao all = reader.find(name_value_list=[('mode', 'lcao')], keyword_list=[project_id]) results = all.get('formula', formula) print(results['formula'], results['xc'], results['ase_potential_energy']) # column_length=0 aligns data in the table (-1 : data unaligned is default) all.print_table(column_length=0, columns=['formula', 'xc', 'h', 'ase_potential_energy', 'PBE']) equal(results['PBE'], e + ediff, 1e-6) if rank == 0: for file in [formula + '.gpw', formula + '.db', cmrfile]: