emt.set_subtractE0(False) atoms_kim.set_calculator(kim) atoms_emt.set_calculator(emt) ek = atoms_kim.get_potential_energy() ee = atoms_emt.get_potential_energy() ReportTest(txt + "Total energy", ek, ee, 1e-8) ek = atoms_kim.get_potential_energies() ee = atoms_emt.get_potential_energies() for i in range(0, natoms, step): ReportTest(txt + "Energy of atom %i" % (i, ), ek[i], ee[i], 1e-8) fk = atoms_kim.get_forces() fe = atoms_emt.get_forces() n = 0 for i in range(0, natoms, step): n = (n + 1) % 3 ReportTest(txt + "Force(%i) of atom %i" % (n, i), fk[i, n], fe[i, n], 1e-8) sk = atoms_kim.get_stress() se = atoms_emt.get_stress() for i in range(6): ReportTest(txt + "Stress(%i)" % (i, ), sk[i], se[i], 1e-8) sk = atoms_kim.get_stresses() se = atoms_emt.get_stresses() for i in range(0, natoms, step): n = (n + 1) % 6 # Volume per atom is not defined the same way: greater tolerance needed ReportTest(txt + "Stress(%i) of atom %i" % (n, i), sk[i, n], se[i, n], 1e-3) ReportTest.Summary()
MaxwellBoltzmannDistribution(atoms, 300 * units.kB) s = atoms.get_stress() print print "Stress:", s s = atoms.get_stress() print print "Stress:", s atoms = FaceCenteredCubic(directions=((1,0,0), (0,1,0), (0,0,1)), size=(15,15,15), symbol="Cu", pbc=True) atoms.set_calculator(EMT()) s = atoms.get_stress() atoms.get_forces() atoms.get_forces() MaxwellBoltzmannDistribution(atoms, 300 * units.kB) atoms.get_forces() atoms.get_forces() atoms = FaceCenteredCubic(directions=((1,0,0), (0,1,0), (0,0,1)), size=(15,15,15), symbol="Cu", pbc=True) atoms.set_calculator(EMT()) atoms.get_stresses() atoms.get_stresses() MaxwellBoltzmannDistribution(atoms, 300 * units.kB) atoms.get_stresses() atoms.get_stresses() print print print "No crash: Test passes succesfully!"
emt = EMT() emt.set_subtractE0(False) atoms_kim.set_calculator(kim) atoms_emt.set_calculator(emt) ek = atoms_kim.get_potential_energy() ee = atoms_emt.get_potential_energy() ReportTest(txt+"Total energy", ek, ee, 1e-8) ek = atoms_kim.get_potential_energies() ee = atoms_emt.get_potential_energies() for i in range(0, natoms, step): ReportTest(txt+"Energy of atom %i" % (i,), ek[i], ee[i], 1e-8) fk = atoms_kim.get_forces() fe = atoms_emt.get_forces() n = 0 for i in range(0, natoms, step): n = (n + 1) % 3 ReportTest(txt+"Force(%i) of atom %i" % (n, i), fk[i, n], fe[i, n], 1e-8) sk = atoms_kim.get_stress() se = atoms_emt.get_stress() for i in range(6): ReportTest(txt+"Stress(%i)" % (i,), sk[i], se[i], 1e-8) sk = atoms_kim.get_stresses() se = atoms_emt.get_stresses() for i in range(0, natoms, step): n = (n + 1) % 6 # Volume per atom is not defined the same way: greater tolerance needed ReportTest(txt+"Stress(%i) of atom %i" % (n, i), sk[i, n], se[i, n], 1e-3) ReportTest.Summary()