def write_input(self, atoms, properties=None, systems_changes=None): from ase.io import write atoms.write(self.label + '.xyz', 'xyz') self.mopac_calc = Mopac(label=self.label) self.mopac_calc.parameters.update(self.mopacdict) self.ddmc_calc = dDMC(label=self.label) self.ddmc_calc.parameters.update(self.ddmcdict)
def __init__(self, label='dftbddmc', atoms=None, dftbdict={}, ddmcdict={}, **kwargs): """Construct a DFTB+ and a dDMC calculator. """ os.environ['ASE_DFTBDDMC_COMMAND'] = '' self.label = label self.dftbdict = dftbdict self.ddmcdict = ddmcdict ddmc_default_parameters = {} ddmc_default_parameters['param_a'] = 1.85705835084132 ddmc_default_parameters['param_b'] = 1.01824853175310 ddmc_default_parameters['param_c'] = 23.0 ddmc_default_parameters['dftype'] = 3 ddmc_default_parameters['tagtype'] = 'dftbp' for param in ddmc_default_parameters.keys(): if not param in self.ddmcdict.keys(): self.ddmcdict[param] = ddmc_default_parameters[param] restart = None ignore_bad_restart_file = None FileIOCalculator.__init__(self, restart, ignore_bad_restart_file, label, atoms, **kwargs) self.dftb_calc = Dftb(label=self.label) self.ddmc_calc = dDMC(label=self.label)
def __setASECalculator(self): """Initialize the calculator and set the parameters""" method = self.definedParams['method'] if method == 'dftb_std-dDMC': self.__setdDMCParams() from ase.calculators.dftbddmc import DftbdDMC self.calculator = DftbdDMC(atoms=self.mol,label='cazzo',dftbdict=self.__dftb_parameters, ddmcdict=self.__ddmc_parameters) elif method == 'dftb_std' or method == 'dftb_mio11': from ase.calculators.dftb import Dftb self.calculator = Dftb(atoms=self.mol,label='cazzo') elif method == 'dftb_std-D3': from ase.calculators.dftbd3h4 import DftbD3H4 self.calculator = DftbD3H4(atoms=self.mol,label='cazzo',dftbdict=self.__dftb_parameters ) elif method == 'dftb_std-D3H4': from ase.calculators.dftbd3h4 import DftbD3H4 self.calculator = DftbD3H4(atoms=self.mol,label='cazzo',dftbdict=self.__dftb_parameters ) elif method == 'dDMC': self.__setdDMCParams() from ase.calculators.ddmc import dDMC self.calculator = dDMC(atoms=self.mol, label='cazzo') else: raise ImplementationError(method,'Calculator for this method is not implemented') if self.definedParams['method'].find('dftb') > -1: self.calculator.parameters.update(self.__dftb_parameters) else: self.calculator.parameters.update(self.__ddmc_parameters)
def write_input(self, atoms, properties=None, systems_changes=None): from ase.io import write atoms.write(self.label+'.xyz','xyz') self.mopac_calc = Mopac(label=self.label) self.mopac_calc.parameters.update(self.mopacdict) self.ddmc_calc = dDMC(label=self.label) self.ddmc_calc.parameters.update(self.ddmcdict)
def __setASECalculator(self): """Initialize the calculator and set the parameters""" method = self.definedParams['method'] if method == 'dftb_std-dDMC': self.__setdDMCParams() from ase.calculators.dftbddmc import DftbdDMC self.calculator = DftbdDMC(atoms=self.mol, label='cazzo', dftbdict=self.__dftb_parameters, ddmcdict=self.__ddmc_parameters) elif method == 'dftb_std' or method == 'dftb_mio11': from ase.calculators.dftb import Dftb self.calculator = Dftb(atoms=self.mol, label='cazzo') elif method == 'dftb_std-D3': from ase.calculators.dftbd3h4 import DftbD3H4 self.calculator = DftbD3H4(atoms=self.mol, label='cazzo', dftbdict=self.__dftb_parameters) elif method == 'dftb_std-D3H4': from ase.calculators.dftbd3h4 import DftbD3H4 self.calculator = DftbD3H4(atoms=self.mol, label='cazzo', dftbdict=self.__dftb_parameters) elif method == 'dDMC': self.__setdDMCParams() from ase.calculators.ddmc import dDMC self.calculator = dDMC(atoms=self.mol, label='cazzo') else: raise ImplementationError( method, 'Calculator for this method is not implemented') if self.definedParams['method'].find('dftb') > -1: self.calculator.parameters.update(self.__dftb_parameters) else: self.calculator.parameters.update(self.__ddmc_parameters)
def write_input(self, atoms, properties=None, systems_changes=None): self.gaus_calc = Gaussian(label=self.label) self.gaus_calc.parameters.update(self.gausdict) self.ddmc_calc = dDMC(label=self.label) self.ddmc_calc.parameters.update(self.ddmcdict)
fd = open('%s.%d%s.pckl' % (name, a, 'xyz'[i]), 'w') pickle.dump(force, fd) fd.close() if parallel is not None: world.sum(F_ai) return F_ai #test = Atoms('2N',positions=[(0.,0.,0.),(0.,0.,4.10)]) #test = molecule('C2H2') test = sys.argv[1] #test = Atoms('2Ar', position=[(0.,0.,0.),(0.,0.,3.)]) test.set_calculator(dDMC(label='S668-24BenzeneBenzenepipi-090',atoms=test,dftype='3',tagtype='column')) print test.get_potential_energy() numer = numeric_forces(test, indices=None, axes=(0, 1, 2), d=0.001, parallel=None, name=None) anal = test.get_forces() print 'Numerical Gradient: ' print numer print print 'Analitical Gradient: ' print anal print print 'Numerical/Analytical:' print numer/anal
'w') pickle.dump(force, fd) fd.close() if parallel is not None: world.sum(F_ai) return F_ai #test = Atoms('2N',positions=[(0.,0.,0.),(0.,0.,4.10)]) #test = molecule('C2H2') test = sys.argv[1] #test = Atoms('2Ar', position=[(0.,0.,0.),(0.,0.,3.)]) test.set_calculator( dDMC(label='S668-24BenzeneBenzenepipi-090', atoms=test, dftype='3', tagtype='column')) print test.get_potential_energy() numer = numeric_forces(test, indices=None, axes=(0, 1, 2), d=0.001, parallel=None, name=None) anal = test.get_forces() print 'Numerical Gradient: ' print numer print