예제 #1
0
 def get_potential_energy(self):
     self.system.set_calculator(self.setup_calculator())
     try:
         if self.minimize:
             optimizer = LAMMPSOptimizer(self.system)
             optimizer.run()
         e = self.system.get_potential_energy()
         self.system._del_calculator()
     except:
         traceback.print_exc()
         print "{0} molecule not converged".format(self.name)
         e = 1000 #not converged value
     return e
예제 #2
0
def build_PVA(N):
	mol, bond_matrix, backbone_carbons = create_PVA(N)
	distance_geometry(mol, bond_matrix, backbone_carbons)

	N = len(mol)
	bonds = np.array(np.where(np.triu(bond_matrix, 1))).T
	mol.info['bonds'] = Bonds(mol, pairs=bonds)
	
	from multiasecalc.lammps.compass import COMPASS
	from multiasecalc.lammps.dynamics import LAMMPSOptimizer
	from multiasecalc.utils import get_datafile
	mol.calc = COMPASS(get_datafile('compass.frc'), parameters=dict(extra_cmds=['communicate single cutoff 80']), debug=True)
	dyn = LAMMPSOptimizer(mol)
	dyn.run()
	
	return mol
예제 #3
0
from multiasecalc.lammps.reaxff import ReaxFF
from multiasecalc.lammps.compass import COMPASS
from multiasecalc.lammps.dynamics import LAMMPSOptimizer, LAMMPS_NVT
from multiasecalc.utils import get_datafile
from ase.data import s22
from ase import units
import numpy as np
import ase.io
from ase.io.trajectory import PickleTrajectory

atoms = s22.create_s22_system('Methane_dimer')
atoms.center(vacuum=10.0)
print atoms.positions

atoms.calc = COMPASS(ff_file_path=get_datafile('compass.frc'), debug=True)
optimizer = LAMMPSOptimizer(atoms)
optimizer.run()
print atoms.positions

atoms.calc = ReaxFF(ff_file_path=get_datafile('ffield.reax'), debug=True)
dyn = LAMMPS_NVT(atoms,
                 1 * units.fs,
                 100,
                 trajectory='test.traj',
                 traj_interval=2)
dyn.run(5)

atoms.calc = COMPASS(ff_file_path=get_datafile('compass.frc'), debug=True)
dyn.run(10)

trj = PickleTrajectory('test.traj', 'r')
예제 #4
0
from ase.atoms import Atoms
from multiasecalc.lammps.reaxff import ReaxFF
from multiasecalc.lammps.compass import COMPASS
from multiasecalc.lammps.dynamics import LAMMPSOptimizer, LAMMPS_NVT
from multiasecalc.utils import get_datafile
from ase.data import s22
from ase import units
import numpy as np
import ase.io
from ase.io.trajectory import PickleTrajectory

atoms = s22.create_s22_system('Methane_dimer')
atoms.center(vacuum=10.0)
print atoms.positions

atoms.calc = COMPASS(ff_file_path=get_datafile('compass.frc'), debug=True)
optimizer = LAMMPSOptimizer(atoms)
optimizer.run()
print atoms.positions

atoms.calc = ReaxFF(ff_file_path=get_datafile('ffield.reax'), debug=True)
dyn = LAMMPS_NVT(atoms, 1*units.fs, 100, trajectory='test.traj', traj_interval = 2)
dyn.run(5)

atoms.calc = COMPASS(ff_file_path=get_datafile('compass.frc'), debug=True)
dyn.run(10)

trj = PickleTrajectory('test.traj', 'r')

for t in trj: print t.positions