From: <ha...@us...> - 2009-04-16 14:22:05
|
Revision: 10810 http://jmol.svn.sourceforge.net/jmol/?rev=10810&view=rev Author: hansonr Date: 2009-04-16 14:21:33 +0000 (Thu, 16 Apr 2009) Log Message: ----------- version=11.7.33_dev # new feature: load xxxx FILTER "NBOcharges" loads NBO charges instead of Mulliken # note: for NBOs you still need FILTER "NBO" so with charges that would be FILTER "NBO;NBOcharges" Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/more/GaussianReader.java trunk/Jmol/src/org/jmol/adapter/readers/more/MOReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/more/GaussianReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/more/GaussianReader.java 2009-04-15 18:58:57 UTC (rev 10809) +++ trunk/Jmol/src/org/jmol/adapter/readers/more/GaussianReader.java 2009-04-16 14:21:33 UTC (rev 10810) @@ -593,6 +593,7 @@ void readPartialCharges() throws Exception { discardLines(1); int atomCount = atomSetCollection.getAtomCount(); + int firstAtomCount = atomSetCollection.getFirstAtomSetAtomCount(); int i0 = atomSetCollection.getLastAtomSetAtomIndex(); Atom[] atoms = atomSetCollection.getAtoms(); for (int i = i0; i < atomCount; ++i) { @@ -600,8 +601,8 @@ while (atoms[i].elementNumber == 0) ++i; // assign the partial charge - atoms[i].partialCharge = - parseFloat(getTokens(readLine())[2]); + float charge = parseFloat(getTokens(readLine())[2]); + atoms[i].partialCharge = (haveNboCharges ? atoms[i0 % firstAtomCount].partialCharge : charge); } } Modified: trunk/Jmol/src/org/jmol/adapter/readers/more/MOReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/more/MOReader.java 2009-04-15 18:58:57 UTC (rev 10809) +++ trunk/Jmol/src/org/jmol/adapter/readers/more/MOReader.java 2009-04-16 14:21:33 UTC (rev 10810) @@ -89,6 +89,7 @@ protected Vector moTypes; private boolean getNBOs; private boolean getNBOCharges; + protected boolean haveNboCharges; private String[] filterTokens; private boolean filterIsNot; @@ -200,10 +201,14 @@ =============================================================================== */ + private void getNboCharges() throws Exception { + if (haveNboCharges) + return; // don't use alpha/beta spin charges discardLinesUntilContains("----"); discardLinesUntilContains("----"); int atomCount = atomSetCollection.getFirstAtomSetAtomCount(); + haveNboCharges = true; for (int i = 0; i < atomCount; i++) { String[] tokens = getTokens(readLine()); float charge; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |