public List <int> moltoUFF(OBMol mol, string coefficientfilename, string datafilename, bool contingency, double padding) { LAMMPSNow lammpssetup = new LAMMPSNow(parameters, atomtypes, periodictable); if (contingency) { //if lammps fails to minimize, try minimization using openbabel as a starting point OBForceField uff = OBForceField.FindForceField("UFF"); mol = lammpssetup.perturbator(mol, 2); //lammps crashes when atoms are on top of each other OBConversion obconv = new OBConversion(); obconv.SetOutFormat("cml"); obconv.WriteFile(mol, "badrun.cml"); uff.Setup(mol); uff.SteepestDescent(1000); } lammpssetup.setupUFF(mol, coefficientfilename, datafilename, padding); List <int> esequence = lammpssetup.getesequence(); return(esequence); }
public void designgraphtoUFF(designGraph host, string coefficientfilename, string datafilename, bool contingency) { OBMol mol = new OBMol(); OBFunctions.designgraphtomol(host, ref mol); LAMMPSNow lammpssetup = new LAMMPSNow(parameters, atomtypes, periodictable); if (contingency) { //if lammps fails to minimize, try minimization using openbabel as a starting point OBForceField uff = OBForceField.FindForceField("UFF"); mol = lammpssetup.perturbator(mol, 2); //lammps crashes when atoms are on top of each other OBConversion obconv = new OBConversion(); obconv.SetOutFormat("cml"); obconv.WriteFile(mol, "badrun.cml"); uff.Setup(mol); uff.SteepestDescent(1000); } lammpssetup.setupUFF(mol, coefficientfilename, datafilename, 50); //lammpssetup.setupUFFtest(mol); //lammpssetup.reset(); }