From: <ha...@us...> - 2008-03-25 14:34:13
|
Revision: 9196 http://jmol.svn.sourceforge.net/jmol/?rev=9196&view=rev Author: hansonr Date: 2008-03-25 07:34:07 -0700 (Tue, 25 Mar 2008) Log Message: ----------- bob-minimize Modified Paths: -------------- branches/bob-minimize/Jmol/src/org/jmol/minimize/Minimizer.java branches/bob-minimize/Jmol/src/org/jmol/minimize/forcefield/CalculationsUFF.java branches/bob-minimize/Jmol/src/org/jmol/minimize/forcefield/ForceField.java branches/bob-minimize/Jmol/src/org/jmol/viewer/Token.java Modified: branches/bob-minimize/Jmol/src/org/jmol/minimize/Minimizer.java =================================================================== --- branches/bob-minimize/Jmol/src/org/jmol/minimize/Minimizer.java 2008-03-25 06:37:55 UTC (rev 9195) +++ branches/bob-minimize/Jmol/src/org/jmol/minimize/Minimizer.java 2008-03-25 14:34:07 UTC (rev 9196) @@ -293,14 +293,14 @@ Token.tokenLeftParen, Token.intToken(1), Token.tokenComma, - new Token(Token.identifier, "triple"), + new Token(Token.string, "triple"), Token.tokenRightParen, Token.tokenOr, new Token(Token.connected, "connected"), Token.tokenLeftParen, Token.intToken(2), Token.tokenComma, - new Token(Token.identifier, "double"), + new Token(Token.string, "double"), Token.tokenRightParen, Token.tokenRightParen, Token.tokenExpressionEnd}, @@ -313,7 +313,7 @@ Token.tokenLeftParen, Token.intToken(1), Token.tokenComma, - new Token(Token.identifier, "double"), + new Token(Token.string, "double"), Token.tokenRightParen, Token.tokenExpressionEnd}, }; @@ -512,24 +512,20 @@ //return the new atom coordinates updateAtomXYZ(); - + if (Logger.debugging) + pFF.dumpAtomList("F I N A L G E O M E T R Y"); return null; } private void updateAtomXYZ() { if (steps == 0) return; - String s = ""; for (int i = 0; i < atomCount; i++) { MinAtom minAtom = minAtoms[i]; Atom atom = minAtom.atom; - if (Logger.debugging) - s = " update " + atom.getInfo() + " was " + atom.x + " " + atom.y + " " + atom.z; atom.x = (float) minAtom.coord[0]; atom.y = (float) minAtom.coord[1]; atom.z = (float) minAtom.coord[2]; - if (Logger.debugging) - Logger.info(s + " now " + atom.x + " " + atom.y + " " + atom.z); } } Modified: branches/bob-minimize/Jmol/src/org/jmol/minimize/forcefield/CalculationsUFF.java =================================================================== --- branches/bob-minimize/Jmol/src/org/jmol/minimize/forcefield/CalculationsUFF.java 2008-03-25 06:37:55 UTC (rev 9195) +++ branches/bob-minimize/Jmol/src/org/jmol/minimize/forcefield/CalculationsUFF.java 2008-03-25 14:34:07 UTC (rev 9196) @@ -120,28 +120,6 @@ return true; } - void dumpAtomList(String title) { - Logger.info("\n" + title + "\n\n" - + " ATOM X Y Z GRAD X Y Z ---------BOND ATOMS--------\n" - + "---------------------------------------------------------------------------------------"); - for (int i = 0; i < atomCount; i++) { - MinAtom atom = atoms[i]; - int[] others = atom.getBondedAtomIndexes(); - int[] iVal = new int[others.length + 1]; - iVal[0] = atom.atom.getAtomNumber(); - String s = " "; - for (int j = 0; j < others.length; j++) { - s += " %-3i"; - iVal[j + 1] = atoms[others[j]].atom.getAtomNumber(); - } - Logger.info(TextFormat.sprintf("%-3i %8.3f %8.3f %8.3f %8.3f %8.3f %8.3f" + s, null, - new float[] { (float) atom.coord[0], (float) atom.coord[1], - (float) atom.coord[2], (float) atom.gradient[0], (float) atom.gradient[1], - (float) atom.gradient[2], }, iVal)); - } - Logger - .info("-----------------------------------------------------------\n"); - } private boolean isInvertible(int n) { switch (n) { case 6: // C @@ -262,10 +240,9 @@ // here we fold the 1/2 into the kij from equation 1a - // Otfherwise, this is equation 6 from the UFF paper. + // Otherwise, this is equation 6 from the UFF paper. - - kb = (0.5 * KCAL_TO_KJ * 664.12 * parA.dVal[PAR_Z] * parB.dVal[PAR_Z]) + kb = KCAL332 * parA.dVal[PAR_Z] * parB.dVal[PAR_Z] / (r0 * r0 * r0); calc.addElement(new Object[] { new int[] { ia, ib }, @@ -324,7 +301,6 @@ double zi = parA.dVal[PAR_Z]; double zk = parC.dVal[PAR_Z]; double theta0 = parB.dVal[PAR_THETA]; - System.out.println(a.atom.getInfo() + " " + zi + " " + b.type + " " + theta0); double cosT0 = Math.cos(theta0); double sinT0 = Math.sin(theta0); double c0, c1, c2; @@ -961,44 +937,75 @@ } } + + ///////// REPORTING ///////////// + + void dumpAtomList(String title) { + String trailer = + "----------------------------------------" + + "-------------------------------------------------------"; + Logger.info("\n" + title + "\n\n" + + " ATOM X Y Z TYPE GRADX GRADY GRADZ " + + "---------BONDED ATOMS--------\n" + + trailer); + for (int i = 0; i < atomCount; i++) { + MinAtom atom = atoms[i]; + int[] others = atom.getBondedAtomIndexes(); + int[] iVal = new int[others.length + 1]; + iVal[0] = atom.atom.getAtomNumber(); + String s = " "; + for (int j = 0; j < others.length; j++) { + s += " %3i"; + iVal[j + 1] = atoms[others[j]].atom.getAtomNumber(); + } + Logger.info(TextFormat.sprintf("%3i %8.3f %8.3f %8.3f %-5s %8.3f %8.3f %8.3f" + s, + new String[] { atom.type }, + new float[] { (float) atom.coord[0], (float) atom.coord[1], + (float) atom.coord[2], (float) atom.gradient[0], (float) atom.gradient[1], + (float) atom.gradient[2], }, + iVal)); + } + Logger.info(trailer + "\n"); + } + String getDebugHeader(int iType) { switch (iType){ case CALC_BOND: return "\nB O N D S T R E T C H I N G (" + bondCount + " bonds)\n\n" - +"ATOMS ATOM TYPES BOND BOND IDEAL FORCE\n" - +" I J I J TYPE LENGTH LENGTH CONSTANT DELTA ENERGY\n" + +" ATOMS ATOM TYPES BOND BOND IDEAL FORCE\n" + +" I J I J TYPE LENGTH LENGTH CONSTANT DELTA ENERGY\n" +"--------------------------------------------------------------------------------"; case CALC_ANGLE: return "\nA N G L E B E N D I N G (" + angles.length + " angles)\n\n" - +" ATOMS ATOM TYPES VALENCE IDEAL FORCE\n" - +" I J K I J K ANGLE ANGLE CONSTANT ENERGY\n" - +"------------------------------------------------------------------------"; + +" ATOMS ATOM TYPES VALENCE IDEAL FORCE\n" + +" I J K I J K ANGLE ANGLE CONSTANT ENERGY\n" + +"--------------------------------------------------------------------------"; case CALC_TORSION: return "\nT O R S I O N A L (" + torsions.length + " torsions)\n\n" - +" ATOMS ATOM TYPES FORCE TORSION\n" - +" I J K L I J K L CONSTANT ANGLE ENERGY\n" - +"--------------------------------------------------------------------------"; + +" ATOMS ATOM TYPES FORCE TORSION\n" + +" I J K L I J K L CONSTANT ANGLE ENERGY\n" + +"----------------------------------------------------------------------------"; case CALC_OOP: return "\nO U T - O F - P L A N E B E N D I N G\n\n" - +" ATOMS ATOM TYPES OOP FORCE \n" - +" I J K L I J K L ANGLE CONSTANT ENERGY\n" - +"---------------------------------------------------------------------"; + +" ATOMS ATOM TYPES OOP FORCE \n" + +" I J K L I J K L ANGLE CONSTANT ENERGY\n" + +"--------------------------------------------------------------------------"; case CALC_VDW: return "\nV A N D E R W A A L S\n\n" - +" ATOMS ATOM TYPES\n" - +" I J I J Rij kij ENERGY\n" - +"-------------------------------------------------"; + +" ATOMS ATOM TYPES\n" + +" I J I J Rij kij ENERGY\n" + +"-----------------------------------------------"; case CALC_ES: return "\nE L E C T R O S T A T I C I N T E R A C T I O N S\n\n" - +" ATOMS ATOM TYPES\n" - +" I J I J Rij 332.17*QiQj ENERGY\n" - +"---------------------------------------------------"; + +" ATOMS ATOM TYPES QiQj\n" + +" I J I J Rij *332.17 ENERGY\n" + +"-----------------------------------------------"; } return ""; } @@ -1007,7 +1014,7 @@ switch (iType) { case CALC_BOND: return TextFormat.sprintf( - "%-3i %-3i %-5s %-5s %4.2f%8.3f %8.3f %8.3f %8.3f %8.3f", + "%3i %3i %-5s %-5s %4.2f%8.3f %8.3f %8.3f %8.3f %8.3f", new String[] { atoms[c.ia].type, atoms[c.ib].type }, new float[] { (float)c.dData[2]/*rab*/, (float)c.rab, (float)c.dData[0], (float)c.dData[1], @@ -1015,7 +1022,7 @@ new int[] { atoms[c.ia].atom.getAtomNumber(), atoms[c.ib].atom.getAtomNumber() }); case CALC_ANGLE: return TextFormat.sprintf( - "%-3i %-3i %-3i %-5s %-5s %-5s%8.3f %8.3f %8.3f %8.3f", + "%3i %3i %3i %-5s %-5s %-5s %8.3f %8.3f %8.3f %8.3f", new String[] { atoms[c.ia].type, atoms[c.ib].type, atoms[c.ic].type }, new float[] { (float)(c.theta * RAD_TO_DEG), (float)c.dData[4] /*THETA0*/, @@ -1024,7 +1031,7 @@ atoms[c.ic].atom.getAtomNumber()} ); case CALC_TORSION: return TextFormat.sprintf( - "%-3i %-3i %-3i %-3i %-5s %-5s %-5s %-5s%6.3f %8.3f %8.3f", + "%3i %3i %3i %3i %-5s %-5s %-5s %-5s %8.3f %8.3f %8.3f", new String[] { atoms[c.ia].type, atoms[c.ib].type, atoms[c.ic].type, atoms[c.id].type }, new float[] { (float) c.dData[0]/*V*/, @@ -1033,7 +1040,7 @@ atoms[c.ic].atom.getAtomNumber(), atoms[c.id].atom.getAtomNumber() } ); case CALC_OOP: return TextFormat.sprintf("" + - "%-3i %-3i %-3i %-3i %-5s %-5s %-5s %-5s%8.3f %8.3f %8.3f", + "%3i %3i %3i %3i %-5s %-5s %-5s %-5s %8.3f %8.3f %8.3f", new String[] { atoms[c.ia].type, atoms[c.ib].type, atoms[c.ic].type, atoms[c.id].type }, new float[] { (float)(c.theta * RAD_TO_DEG), @@ -1041,12 +1048,12 @@ new int[] { atoms[c.ia].atom.getAtomNumber(), atoms[c.ib].atom.getAtomNumber(), atoms[c.ic].atom.getAtomNumber(), atoms[c.id].atom.getAtomNumber() } ); case CALC_VDW: - return TextFormat.sprintf("%-3i %-3i %-5s %-5s %8.3f %8.3f %8.3f", + return TextFormat.sprintf("%3i %3i %-5s %-5s %6.3f %8.3f %8.3f", new String[] { atoms[c.iData[0]].type, atoms[c.iData[1]].type }, new float[] { (float)c.rab, (float)c.dData[0]/*kab*/, (float)c.energy}, new int[] { atoms[c.ia].atom.getAtomNumber(), atoms[c.ib].atom.getAtomNumber() } ); case CALC_ES: - return TextFormat.sprintf("%-3i %-3i %-5s %-5s %8.3f %8.3f %8.3f", + return TextFormat.sprintf("%3i %3i %-5s %-5s %6.3f %8.3f %8.3f", new String[] { atoms[c.iData[0]].type, atoms[c.iData[1]].type }, new float[] { (float)c.rab, (float)c.dData[0]/*qq*/, (float)c.energy }, new int[] { atoms[c.ia].atom.getAtomNumber(), atoms[c.ib].atom.getAtomNumber() }); Modified: branches/bob-minimize/Jmol/src/org/jmol/minimize/forcefield/ForceField.java =================================================================== --- branches/bob-minimize/Jmol/src/org/jmol/minimize/forcefield/ForceField.java 2008-03-25 06:37:55 UTC (rev 9195) +++ branches/bob-minimize/Jmol/src/org/jmol/minimize/forcefield/ForceField.java 2008-03-25 14:34:07 UTC (rev 9196) @@ -391,5 +391,8 @@ return stepCurrent; } - + public void dumpAtomList(String title) { + calc.dumpAtomList(title); + } + } Modified: branches/bob-minimize/Jmol/src/org/jmol/viewer/Token.java =================================================================== --- branches/bob-minimize/Jmol/src/org/jmol/viewer/Token.java 2008-03-25 06:37:55 UTC (rev 9195) +++ branches/bob-minimize/Jmol/src/org/jmol/viewer/Token.java 2008-03-25 14:34:07 UTC (rev 9196) @@ -77,7 +77,7 @@ final public static int identifier = 1; final static int integer = 2; final static int decimal = 3; - final static int string = 4; + final public static int string = 4; final static int seqcode = 5; final static int list = 6; final public static int point3f = 7; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |