Exemplo n.º 1
0
# 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']
Exemplo n.º 2
0
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]: