public List <int> moltoUFF_azo(OBMol mol, string coefficientfilename, string datafilename, double padding)
        {
            LAMMPSNow lammpssetup = new LAMMPSNow(parameters, atomtypes, periodictable);

            lammpssetup.setupUFF(mol, padding);
            lammpssetup.setupcalculationsUFF_azobenzene(mol, coefficientfilename, datafilename);
            List <int> esequence = lammpssetup.getesequence();

            return(esequence);
        }
        public List <int> moltoUFFPeriodic(OBMol mol, string coefficientfilename, string datafilename, int x_rep, int y_rep, int z_rep)
        {
            LAMMPSNow lammpssetup = new LAMMPSNow(parameters, atomtypes, periodictable);


            lammpssetup.setupUFFPeriodic(mol, coefficientfilename, datafilename, x_rep, y_rep, z_rep);
            List <int> esequence = lammpssetup.getesequence();

            return(esequence);
        }
        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();
        }
        public void moltoReaxFF(OBMol mol, string datafilename)
        {
            LAMMPSNow lammpssetup = new LAMMPSNow(parameters, atomtypes, periodictable);

            lammpssetup.setupReax(mol, datafilename);
        }