Revision: 21680 http://sourceforge.net/p/jmol/code/21680 Author: hansonr Date: 2017-07-27 13:42:02 +0000 (Thu, 27 Jul 2017) Log Message: ----------- Jmol.___JmolVersion="14.20.4"
bug fix: SpartanSMOL reader for iSpartan files does not read charges or vibrational mode data Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanArchive.java trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanReader.java trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanSmolReader.java trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanArchive.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanArchive.java 2017-07-27 13:15:02 UTC (rev 21679) +++ trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanArchive.java 2017-07-27 13:42:02 UTC (rev 21680) @@ -51,6 +51,7 @@ private int modelCount = 0; + private int modelAtomCount = 0; private int ac = 0; private String bondData; // not in archive; may or may not have private int moCount = 0; @@ -62,8 +63,9 @@ private BasisFunctionReader r; - SpartanArchive(BasisFunctionReader r, String bondData, String endCheck) { + SpartanArchive(BasisFunctionReader r, String bondData, String endCheck, int smolAtomCount) { initialize(r, bondData); + this.modelAtomCount = smolAtomCount; this.endCheck = endCheck; isSMOL = (endCheck != null); } @@ -130,8 +132,6 @@ r.asc.setAtomSetEnergy(tokens[0], value); } - int modelAtomCount; - private int setInfo(String info) throws Exception { // 5 17 11 18 0 1 17 0 RHF 3-21G(d) NOOPT FREQ // 0 1 2 3 4 5 6 7 8 9 Modified: trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanReader.java 2017-07-27 13:15:02 UTC (rev 21679) +++ trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanReader.java 2017-07-27 13:42:02 UTC (rev 21680) @@ -47,7 +47,7 @@ String cartesianHeader = "Cartesian Coordinates (Ang"; if (isSpartanArchive(cartesianHeader)) { moData = new Hashtable<String, Object>(); - SpartanArchive spartanArchive = new SpartanArchive(this, "", null); + SpartanArchive spartanArchive = new SpartanArchive(this, "", null, 0); int ac = spartanArchive.readArchive(line, true, 0, true); if (ac > 0) asc.setAtomSetName("Spartan file"); Modified: trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanSmolReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanSmolReader.java 2017-07-27 13:15:02 UTC (rev 21679) +++ trunk/Jmol/src/org/jmol/adapter/readers/spartan/SpartanSmolReader.java 2017-07-27 13:42:02 UTC (rev 21680) @@ -163,10 +163,6 @@ return false; } else if (lcline.endsWith("proparc") || lcline.endsWith("propertyarchive")) { - if (spartanArchive == null) { - spartanArchive = new SpartanArchive(this, bondData, endCheck); - spartanArchive.modelAtomCount = asc.getAtomSetAtomCount(asc.iSet); - } readProperties(); return false; } else if (lcline.endsWith("archive")) { @@ -246,7 +242,7 @@ } private String readArchive() throws Exception { - spartanArchive = new SpartanArchive(this, bondData, endCheck); + spartanArchive = new SpartanArchive(this, bondData, endCheck, 0); String modelName = readArchiveHeader(); if (modelName != null) modelAtomCount = spartanArchive.readArchive(line, false, asc.ac, false); @@ -266,10 +262,13 @@ } private void readProperties() throws Exception { - if (spartanArchive == null) { + if (modelAtomCount == 0) { rd(); return; } + if (spartanArchive == null) + spartanArchive = new SpartanArchive(this, bondData, endCheck, + modelAtomCount); spartanArchive.readProperties(); rd(); setCharges(); Modified: trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java 2017-07-27 13:15:02 UTC (rev 21679) +++ trunk/Jmol/src/org/jmol/adapter/smarter/AtomSetCollection.java 2017-07-27 13:42:02 UTC (rev 21680) @@ -738,8 +738,9 @@ if (!atomSetInfo.containsKey(auxKey)) return false; Lst<Float> atomData = (Lst<Float>) atomSetInfo.get(auxKey); - for (int i = atomData.size(); --i >= 0;) - atoms[i].partialCharge = atomData.get(i).floatValue(); + int n = atomData.size(); + for (int i = ac; --i >= 0;) + atoms[i].partialCharge = atomData.get(i % n).floatValue(); Logger.info("Setting partial charges type " + auxKey); return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ Jmol-commits mailing list Jmol-commits@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-commits