Universal Potential: M3GNet-UP-2022¶
Note: This example requires AMS2023 or later.
This example illustrates how set up an AMS calculation using the M3GNet 2022 Universal Potential from the MLPotential Engine.
Example usage: (Download M3GNet.py
)
#!/usr/bin/env amspython
from scm.plams import *
def main():
init()
mol = from_smiles('O')
mol.lattice = [[3., 0., 0.,], [0., 3., 0.], [0., 0., 3.]]
s = Settings()
s.runscript.nproc = 1
s.input.ams.task = 'GeometryOptimization'
s.input.ams.GeometryOptimization.Convergence.Gradients = 0.01 # hartree/ang
s.input.MLPotential.Model = 'M3GNet-UP-2022'
#If you have trained a custom M3GNet model yourself, you can use:
#s.input.MLPotential.Model = 'Custom'
#s.input.MLPotential.Backend = 'm3gnet'
#s.input.MLPotential.ParameterDir = '<path to directory containing the M3GNet model>'
job = AMSJob(settings=s, molecule=mol, name='ams_with_m3gnet')
job.run()
energy = job.results.get_energy(unit='eV')
print(f"M3GNet: final energy {energy:.3f} eV")
finish()
if __name__ == '__main__':
main()