Exemple #1
0
    def free_kim(self):
        if self.uses_neighbors:
            kimnl.nbl_cleanup(self.pkim)
        ks.KIM_API_model_destroy(self.pkim)
        ks.KIM_API_free(self.pkim)

        self.pkim = None
Exemple #2
0
 def __del__(self):
     """ Garbage collects the KIM API objects automatically """
     if self.pkim:
         if self.uses_neighbors:
             kimnl.nbl_cleanup(self.pkim)
         ks.KIM_API_free(self.pkim)
     self.pkim = None
#    NNeighbors, HalfNNeighbors, neighborList, RijList = set_NeighborList(pkim, coordinates, numberOfAtoms[0], cutoff[0]*4)
#    kimneighborlist.set_neigh_object(pkim, NNeighbors, HalfNNeighbors, neighborList, RijList)
    kimneighborlist.nbl_build_neighborlist(pkim)

    KIM_API_model_compute(pkim)
except error:
    KIM_API_report_error(error.message,errno)

# print results to screen
print "--------------------------------------------------------------------------------"
print "This is Test          : %s" % testname
print "Results for KIM Model : %s" % modelname
print "Forces:"
print "Atom     X                        Y                        Z"
for i in range(numberOfAtoms[0]):
    print "%2i   %25.15e%25.15e%25.15e" % (i, forces[i*DIM + 0], forces[i*DIM + 1], forces[i*DIM + 2])
print ""
print "Energy = %20.15e" %  energy[0]

print virialGlobal#, virialPerAtom

try:
    kimneighborlist.nbl_cleanup(pkim)
    KIM_API_model_destroy(pkim)
    KIM_API_free(pkim)
except error:
    KIM_API_report_error(error.message,errno)