From: <ha...@us...> - 2010-02-20 13:59:33
|
Revision: 12424 http://jmol.svn.sourceforge.net/jmol/?rev=12424&view=rev Author: hansonr Date: 2010-02-20 13:59:18 +0000 (Sat, 20 Feb 2010) Log Message: ----------- preliminary CRYSTAL reader - still needs testing -- adds unimplemented molecular orbital capability Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java trunk/Jmol/src/org/jmol/adapter/readers/quantum/MOReader.java Added Paths: ----------- trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java Removed Paths: ------------- trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java 2010-02-20 00:19:33 UTC (rev 12423) +++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java 2010-02-20 13:59:18 UTC (rev 12424) @@ -191,7 +191,7 @@ if (line.indexOf("Molecular Orbital Coefficients") >= 0) { if (!filterMO()) return true; - readGaussianMolecularOrbitals(); + readMolecularOrbitals(); if (Logger.debugging) { Logger.debug(orbitals.size() + " molecular orbitals read"); } @@ -335,7 +335,7 @@ There are 2 symmetry adapted basis functions of B2 symmetry. */ - void readBasis() throws Exception { + private void readBasis() throws Exception { shells = new Vector(); Vector gdata = new Vector(); int atomCount = 0; @@ -356,9 +356,9 @@ slater[0] = atomCount - 1; String oType = tokens[4]; if (doSphericalF && oType.indexOf("F") >= 0 || doSphericalD && oType.indexOf("D") >= 0) - slater[1] = JmolAdapter.getQuantumShellTagIDSpherical(tokens[4]); + slater[1] = JmolAdapter.getQuantumShellTagIDSpherical(oType); else - slater[1] = JmolAdapter.getQuantumShellTagID(tokens[4]); + slater[1] = JmolAdapter.getQuantumShellTagID(oType); int nGaussians = parseInt(tokens[5]); slater[2] = gaussianCount; // or parseInt(tokens[7]) - 1 @@ -401,7 +401,7 @@ 105 4S -47.27845 63.29565-100.44035 1.98362 -51.35328 */ - void readGaussianMolecularOrbitals() throws Exception { + private void readMolecularOrbitals() throws Exception { if (shells == null) return; Hashtable[] mos = new Hashtable[5]; Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/MOReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/quantum/MOReader.java 2010-02-20 00:19:33 UTC (rev 12423) +++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/MOReader.java 2010-02-20 13:59:18 UTC (rev 12424) @@ -80,7 +80,7 @@ /AONBO / : Print the AO to NBO transformation * */ -abstract class MOReader extends AtomSetCollectionReader { +abstract public class MOReader extends AtomSetCollectionReader { protected int shellCount = 0; protected int gaussianCount = 0; @@ -120,8 +120,8 @@ abstract protected boolean checkLine() throws Exception; public void readAtomSetCollection(BufferedReader reader, String type) { - initializeMoReader(reader, type); try { + initializeMoReader(reader, type); readLine(); iHaveAtoms = false; while (line != null && continuing) @@ -133,11 +133,11 @@ } } - protected void finalizeMoReader() { + protected void finalizeMoReader() throws Exception { // see subclasses } - private void initializeMoReader(BufferedReader reader, String type) { + protected void initializeMoReader(BufferedReader reader, String type) throws Exception { this.reader = reader; atomSetCollection = new AtomSetCollection(type, this); line = "\nNBOs in the AO basis:"; @@ -146,7 +146,7 @@ getNBOCharges = (filter != null && filterMO()); if (filter == null) return; - filter = TextFormat.simpleReplace(filter, "nbocharges",""); + filter = TextFormat.simpleReplace(filter, "nbocharges", ""); if (filter.length() < 3) filter = null; } Deleted: trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java 2010-02-20 00:19:33 UTC (rev 12423) +++ trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java 2010-02-20 13:59:18 UTC (rev 12424) @@ -1,206 +0,0 @@ -/* $RCSfile$ - * $Author: hansonr $ - * - * Copyright (C) 2003-2005 Miguel, Jmol Development, www.jmol.org - * - * Contact: jmo...@li... - * - * Copyright (C) 2009 Piero Canepa, University of Kent , UK - * - * Contact: pc...@ke... or pie...@gm... - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - */ - -package org.jmol.adapter.readers.xtal; - -import org.jmol.adapter.smarter.*; -import java.io.BufferedReader; - -/** - * - * http://www.crystal.unito.it/ - * - * @author Pieremanuele Canepa, Room 104, FM Group School of Physical Sciences, - * Ingram Building, University of Kent, Canterbury, Kent, CT2 7NH United - * Kingdom - * - * @version 1.0 - * - * - * for final optimized geometry use - * - * load "xxx.out" filter "optimized" - * - * for conventional unit cell, use - * - * load "xxx.out" filter "conventional" - * - * TODO: vibrational frequencies - * - */ - -public class CrystalReader extends AtomSetCollectionReader { - - private boolean isPrimitive = true; - private boolean isPolymer = false; - private boolean isSlab = false; - - public void readAtomSetCollection(BufferedReader reader) { - this.reader = reader; - atomSetCollection = new AtomSetCollection("Crystal", this); - - isPrimitive = (filter == null || filter.indexOf("conv") < 0); - atomSetCollection.setAtomSetAuxiliaryInfo("unitCellType", (isPrimitive ? "primitive" : "conventional")); - boolean isFinal = (filter != null && filter.indexOf("opt") >= 0); - try { - setFractionalCoordinates(readHeader()); - if (isFinal) { - discardLinesUntilContains("FINAL OPTIMIZED GEOMETRY"); - atomSetCollection.setCollectionName(name + " (optimized)"); - isPrimitive = true; - } - while (readLine() != null) { - if (line.startsWith(" LATTICE PARAMETER") && - (isFinal || isPrimitive && line.contains("- PRIMITIVE") || !isPrimitive && line.contains("- CONVENTIONAL"))) { - if (isFinal) - readLine(); - readCellParams(); - continue; - } - if (isPrimitive) { - if (line - .startsWith(" ATOMS IN THE ASYMMETRIC UNIT")) { - readFractionalCoords(); - continue; - } - } else { - if (line.startsWith(" INPUT COORDINATES")) { - readInputCoords(); - continue; - } - } - } - applySymmetryAndSetTrajectory(); - - } catch (Exception e) { - setError(e); - } - } - - private String name; - private boolean readHeader() throws Exception { - discardLinesUntilContains("* CRYSTAL"); - discardLinesUntilContains("EEEEEEEEEE"); - atomSetCollection.setCollectionName(name = readLine().trim()); - readLine(); - calculationType = readLine().trim(); - isPolymer = (calculationType.equals("POLYMER CALCULATION")); - isSlab = (calculationType.equals("SLAB CALCULATION")); - atomSetCollection.setAtomSetAuxiliaryInfo("calculationType", - calculationType); - if (calculationType.indexOf("MOLECULAR") >= 0) - return false; - if (!isPrimitive) { - readLine(); - readLine(); - readSpaceGroup(); - } - return true; - } - - private void readSpaceGroup() { - // SPACE GROUP (CENTROSYMMETRIC) : F M 3 M - String name = line.substring(line.indexOf(":") + 1).trim(); - setSpaceGroupName(name); - } - - private void readCellParams() throws Exception { - if (isPolymer && !isPrimitive) { - float a = parseFloat(line.substring(line.indexOf("CELL") + 4)); - setUnitCell(a, -1, -1, 90, 90, 90); - return; - } - readLine(); - String[] tokens = getTokens(readLine()); - if (isSlab) { - if (isPrimitive) - setUnitCell(parseFloat(tokens[0]), parseFloat(tokens[1]), -1, - parseFloat(tokens[3]), parseFloat(tokens[4]), parseFloat(tokens[5])); - else - setUnitCell(parseFloat(tokens[0]), parseFloat(tokens[1]), -1, - 90, 90, parseFloat(tokens[2])); - } else if (isPolymer) { - setUnitCell(parseFloat(tokens[0]), -1, -1, - parseFloat(tokens[3]), parseFloat(tokens[4]), parseFloat(tokens[5])); - } else { - setUnitCell(parseFloat(tokens[0]), parseFloat(tokens[1]), parseFloat(tokens[2]), - parseFloat(tokens[3]), parseFloat(tokens[4]), parseFloat(tokens[5])); - } - } - - /* - * ATOMS IN THE ASYMMETRIC UNIT 30 - ATOMS IN THE UNIT CELL: 30 ATOM X/A Y/B - * Z(ANGSTROM) - * ***************************************************************** - * ************* 1 T 26 FE 3.331306436039E-01 1.663395164811E-01 - * 6.035011342353E+00 2 T 8 O -3.291645441100E-01 1.554613095970E-01 - * 5.654299584852E+00 - */ - private void readFractionalCoords() throws Exception { - readLine(); - readLine(); - while (readLine() != null && line.length() > 0) { - Atom atom = atomSetCollection.addNewAtom(); - String[] tokens = getTokens(); - int atomicNumber = parseInt(tokens[2]); - float x = parseFloat(tokens[4]); - float y = parseFloat(tokens[5]); - float z = parseFloat(tokens[6]); - // because with these we cannot use the "packed" keyword - if ((isPolymer || isSlab) && x < 0) - x += 1; - if (isSlab && y < 0) - y += 1; - setAtomCoord(atom, x, y, z); - atom.elementSymbol = getElementSymbol(atomicNumber); - } - } - - /* - * INPUT COORDINATES - * - * ATOM AT. N. COORDINATES - * 1 12 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 - * 2 8 5.000000000000E-01 5.000000000000E-01 5.000000000000E-01 - */ - private void readInputCoords() - throws Exception { - readLine(); - readLine(); - while (readLine() != null && line.length() > 0) { - Atom atom = atomSetCollection.addNewAtom(); - String[] tokens = getTokens(); - int atomicNumber = parseInt(tokens[1]); - float x = parseFloat(tokens[2]); - float y = parseFloat(tokens[3]); - float z = parseFloat(tokens[4]); - setAtomCoord(atom, x, y, z); - atom.elementSymbol = getElementSymbol(atomicNumber); - } - } - -} Added: trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java (rev 0) +++ trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java 2010-02-20 13:59:18 UTC (rev 12424) @@ -0,0 +1,331 @@ +/* $RCSfile$ + * $Author: hansonr $ + * + * Copyright (C) 2003-2005 Miguel, Jmol Development, www.jmol.org + * + * Contact: jmo...@li... + * + * Copyright (C) 2009 Piero Canepa, University of Kent , UK + * + * Contact: pc...@ke... or pie...@gm... + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +package org.jmol.adapter.readers.xtal; + +import org.jmol.adapter.readers.quantum.MOReader; +import org.jmol.adapter.smarter.*; +//import org.jmol.api.JmolAdapter; + +import java.io.BufferedReader; +//import java.util.Vector; + +/** + * + * http://www.crystal.unito.it/ + * + * @author Pieremanuele Canepa, Room 104, FM Group School of Physical Sciences, + * Ingram Building, University of Kent, Canterbury, Kent, CT2 7NH United + * Kingdom + * + * @version 1.0 + * + * + * for final optimized geometry use + * + * load "xxx.out" filter "optimized" + * + * for conventional unit cell, use + * + * load "xxx.out" filter "conventional" + * + * TODO: vibrational frequencies + * + */ + +public class CrystalReader extends MOReader { + + private boolean isPrimitive = true; + private boolean isPolymer = false; + private boolean isSlab = false; + private boolean isFinal = false; + + public void readAtomSetCollection(BufferedReader reader) { + readAtomSetCollection(reader, "Crystal"); + } + + protected void initializeMoReader(BufferedReader reader, String type) throws Exception { + super.initializeMoReader(reader, type); + isPrimitive = (filter == null || filter.indexOf("conv") < 0); + atomSetCollection.setAtomSetAuxiliaryInfo("unitCellType", (isPrimitive ? "primitive" : "conventional")); + isFinal = (filter != null && filter.indexOf("opt") >= 0); + setFractionalCoordinates(readHeader()); + if (isFinal) { + discardLinesUntilContains("FINAL OPTIMIZED GEOMETRY"); + atomSetCollection.setCollectionName(name + " (optimized)"); + isPrimitive = true; + } + } + + protected boolean checkLine() throws Exception { + + if (line.startsWith(" LATTICE PARAMETER") + && (isFinal || isPrimitive && line.contains("- PRIMITIVE") || !isPrimitive + && line.contains("- CONVENTIONAL"))) { + if (isFinal) + readLine(); + readCellParams(); + return true; + } + if (isPrimitive) { + if (line.startsWith(" ATOMS IN THE ASYMMETRIC UNIT")) { + readFractionalCoords(); + return true; + } + } else { + if (line.startsWith(" INPUT COORDINATES")) { + readInputCoords(); + return true; + } + } + if (line.indexOf(" LOCAL ATOMIC FUNCTIONS BASIS SET") >= 0) { + //readBasisSet(); + return true; + } + if (line.indexOf("A.O. POPULATION") >= 0) { + //readMolecularOrbitals(); + return true; + } + if (line.startsWith(" TYPE OF CALCULATION")) { + calculationType = line.substring(line.indexOf(":") + 1).trim(); + return true; + } + return true; + } + + protected void finalizeMoReader() throws Exception { + applySymmetryAndSetTrajectory(); + } + + private String name; + private boolean readHeader() throws Exception { + discardLinesUntilContains("* CRYSTAL"); + discardLinesUntilContains("EEEEEEEEEE"); + atomSetCollection.setCollectionName(name = readLine().trim()); + readLine(); + String type = readLine().trim(); + isPolymer = (type.equals("POLYMER CALCULATION")); + isSlab = (type.equals("SLAB CALCULATION")); + atomSetCollection.setAtomSetAuxiliaryInfo("symmetryType", type); + if (type.indexOf("MOLECULAR") >= 0) + return false; + if (!isPrimitive) { + readLine(); + readLine(); + readSpaceGroup(); + } + return true; + } + + private void readSpaceGroup() { + // SPACE GROUP (CENTROSYMMETRIC) : F M 3 M + String name = line.substring(line.indexOf(":") + 1).trim(); + setSpaceGroupName(name); + } + + private void readCellParams() throws Exception { + if (isPolymer && !isPrimitive) { + float a = parseFloat(line.substring(line.indexOf("CELL") + 4)); + setUnitCell(a, -1, -1, 90, 90, 90); + return; + } + readLine(); + String[] tokens = getTokens(readLine()); + if (isSlab) { + if (isPrimitive) + setUnitCell(parseFloat(tokens[0]), parseFloat(tokens[1]), -1, + parseFloat(tokens[3]), parseFloat(tokens[4]), parseFloat(tokens[5])); + else + setUnitCell(parseFloat(tokens[0]), parseFloat(tokens[1]), -1, + 90, 90, parseFloat(tokens[2])); + } else if (isPolymer) { + setUnitCell(parseFloat(tokens[0]), -1, -1, + parseFloat(tokens[3]), parseFloat(tokens[4]), parseFloat(tokens[5])); + } else { + setUnitCell(parseFloat(tokens[0]), parseFloat(tokens[1]), parseFloat(tokens[2]), + parseFloat(tokens[3]), parseFloat(tokens[4]), parseFloat(tokens[5])); + } + } + + /* + * ATOMS IN THE ASYMMETRIC UNIT 30 - ATOMS IN THE UNIT CELL: 30 ATOM X/A Y/B + * Z(ANGSTROM) + * ***************************************************************** + * ************* 1 T 26 FE 3.331306436039E-01 1.663395164811E-01 + * 6.035011342353E+00 2 T 8 O -3.291645441100E-01 1.554613095970E-01 + * 5.654299584852E+00 + */ + private void readFractionalCoords() throws Exception { + readLine(); + readLine(); + while (readLine() != null && line.length() > 0) { + Atom atom = atomSetCollection.addNewAtom(); + String[] tokens = getTokens(); + int atomicNumber = parseInt(tokens[2]); + float x = parseFloat(tokens[4]); + float y = parseFloat(tokens[5]); + float z = parseFloat(tokens[6]); + // because with these we cannot use the "packed" keyword + if ((isPolymer || isSlab) && x < 0) + x += 1; + if (isSlab && y < 0) + y += 1; + setAtomCoord(atom, x, y, z); + atom.elementSymbol = getElementSymbol(atomicNumber); + } + } + + /* + * INPUT COORDINATES + * + * ATOM AT. N. COORDINATES + * 1 12 0.000000000000E+00 0.000000000000E+00 0.000000000000E+00 + * 2 8 5.000000000000E-01 5.000000000000E-01 5.000000000000E-01 + */ + private void readInputCoords() + throws Exception { + readLine(); + readLine(); + while (readLine() != null && line.length() > 0) { + Atom atom = atomSetCollection.addNewAtom(); + String[] tokens = getTokens(); + int atomicNumber = parseInt(tokens[1]); + float x = parseFloat(tokens[2]); + float y = parseFloat(tokens[3]); + float z = parseFloat(tokens[4]); + setAtomCoord(atom, x, y, z); + atom.elementSymbol = getElementSymbol(atomicNumber); + } + } + + /* + LOCAL ATOMIC FUNCTIONS BASIS SET + ******************************************************************************* + ATOM X(AU) Y(AU) Z(AU) NO. TYPE EXPONENT S COEF P COEF D/F/G COEF + ******************************************************************************* + 1 FE 2.746 -4.757 0.614 + 1 S + 3.154E+05 2.275E-04 0.000E+00 0.000E+00 + 4.569E+04 1.900E-03 0.000E+00 0.000E+00 + 9.677E+03 1.110E-02 0.000E+00 0.000E+00 + 2.521E+03 5.010E-02 0.000E+00 0.000E+00 + 7.597E+02 1.705E-01 0.000E+00 0.000E+00 + 2.630E+02 3.692E-01 0.000E+00 0.000E+00 + 1.028E+02 4.033E-01 0.000E+00 0.000E+00 + 4.297E+01 1.434E-01 0.000E+00 0.000E+00 + 2- 5 SP + 7.983E+02-5.200E-03 8.500E-03 0.000E+00 + 1.912E+02-6.800E-02 6.080E-02 0.000E+00 + 6.369E+01-1.314E-01 2.114E-01 0.000E+00 + 2.536E+01 2.517E-01 3.944E-01 0.000E+00 + 1.073E+01 6.433E-01 3.980E-01 0.000E+00 + 3.764E+00 2.825E-01 2.251E-01 0.000E+00 + 6- 9 SP + + */ + /* + private void readBasisSet() throws Exception { + discardLines(3); + shells = new Vector(); + Vector gdata = new Vector(); + gaussianCount = 0; + shellCount = 0; + String[] tokens; + int i0 = -1; + int i1 = 0; + int slaterPt = 0; + int[] slater = null; + String type = null; + int atomIndex = 0; + boolean dataAssigned = true; + shells = new Vector(); + while (readLine() != null) { + if (line.charAt(3) != ' ') { + if (!dataAssigned) + slaterPt = copySlaterData(atomIndex, slaterPt); + atomIndex = parseInt(line.substring(0, 4)); + if (atomIndex-- < 0) + break; + dataAssigned = false; + continue; + } + // basis block + if (line.charAt(34) != ' ') { + // shell; + shellCount++; + i0 = parseInt(line.substring(0, 30)); + i1 = parseInt(line.substring(32, 35)) - 1; + if (i0-- < 0) + i0 = i1; + type = line.substring(36,38).trim(); + System.out.println(atomIndex + " " + i0 + " " + i1 + " " + type); + dataAssigned = true; + slaterPt = shells.size(); + slater = new int[4]; + shells.addElement(slater); + slater[0] = atomIndex; + slater[1] = JmolAdapter.getQuantumShellTagID(type); + slater[2] = gaussianCount; + //slater[3] = 0; // will be count of gaussians + continue; + } + gdata.addElement(getTokens()); + gaussianCount++; + slater[3]++; + } + gaussians = new float[gaussianCount][]; + for (int i = 0; i < gaussianCount; i++) { + tokens = (String[]) gdata.get(i); + gaussians[i] = new float[tokens.length]; + for (int j = 0; j < tokens.length; j++) + gaussians[i][j] = parseFloat(tokens[j]); + } + } + + private int copySlaterData(int atomIndex, int slaterPt) { + int n = shells.size(); + int i; + for (i = slaterPt; i < n; i++) { + int[] slater = new int[4]; + int[] s0 = (int[]) shells.get(i); + slater[0] = atomIndex; + slater[1] = s0[1]; + slater[2] = s0[2]; + slater[3] = s0[3]; + shells.add(slater); + } + return i; + } + private void readMolecularOrbitals() throws Exception { + // would need orbital coefficients here + //addMOData(nThisLine, data, mos); + //setMOData(false); + } + */ + + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-03-08 13:39:05
|
Revision: 12576 http://jmol.svn.sourceforge.net/jmol/?rev=12576&view=rev Author: hansonr Date: 2010-03-08 13:38:59 +0000 (Mon, 08 Mar 2010) Log Message: ----------- reader fix for latest reader changes Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/quantum/AdfReader.java trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/AdfReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/quantum/AdfReader.java 2010-03-08 04:12:22 UTC (rev 12575) +++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/AdfReader.java 2010-03-08 13:38:59 UTC (rev 12576) @@ -35,6 +35,9 @@ import java.util.Vector; /** + * + * TODO: adf-2007.out causes failure reading basis functions + * * A reader for ADF output. * Amsterdam Density Functional (ADF) is a quantum chemistry program * by Scientific Computing & Modelling NV (SCM) @@ -317,17 +320,26 @@ 1 0 0 0 1.250 34 46 */ + + // note, however, that these may continue to the next line as in example adf-2007.out + discardLinesUntilContains("(power of)"); discardLines(2); - while (readLine() != null && line.indexOf("Total") < 0) { - String[] tokens = getTokens(); + while (readLine() != null && line.length() > 2 && line.charAt(2) == ' ') { + String data = line; + while (readLine().indexOf("---") < 0) + data += line; + String[] tokens = getTokens(data); int nAtoms = tokens.length - 1; int[] atomList = new int[nAtoms]; for (int i = 1; i <= nAtoms; i++) atomList[i - 1] = parseInt(tokens[i]) - 1; readLine(); - while (readLine() != null && line.length() >= 10) { - tokens = getTokens(); + while (line.length() >= 10) { + data = line; + while (readLine().length() > 35 && line.substring(0, 35).trim().length() == 0) + data += line; + tokens = getTokens(data); boolean isCore = tokens[0].equals("Core"); int pt = (isCore ? 1 : 0); int x = parseInt(tokens[pt++]); Modified: trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java 2010-03-08 04:12:22 UTC (rev 12575) +++ trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java 2010-03-08 13:38:59 UTC (rev 12576) @@ -62,6 +62,7 @@ AtomSetCollection atomSetCollection, BufferedReader reader, XMLReader xmlReader) { this.parent = parent; + parent.doProcessLines = true; this.reader = reader; this.atomSetCollection = atomSetCollection; new VaspHandler(xmlReader); @@ -72,8 +73,8 @@ AtomSetCollection atomSetCollection, BufferedReader reader, JSObject DOMNode) { this.parent = parent; + parent.doProcessLines = true; this.atomSetCollection = atomSetCollection; - this.modelNumber = parent.modelNumber; implementedAttributes = vaspImplementedAttributes; ((VaspHandler) (new VaspHandler())).walkDOMTree(DOMNode); @@ -94,7 +95,7 @@ if (!parent.continuing) return; if ("structure".equals(localName)) { - if (!parent.doGetModel(++modelNumber)) { + if (!parent.doGetModel(++parent.modelNumber)) { parent.checkLastModel(); return; } @@ -149,6 +150,9 @@ while (true) { + if (!parent.doProcessLines) + break; + if ("v".equals(localName) && data != null) { data.append(chars); break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-03-25 05:56:46
|
Revision: 12695 http://jmol.svn.sourceforge.net/jmol/?rev=12695&view=rev Author: hansonr Date: 2010-03-25 05:56:40 +0000 (Thu, 25 Mar 2010) Log Message: ----------- version=11.9.36_dev # new feature: GenNBO file reader for xx.31-.41 files and .nbo output if in that directory # bug fix: Spartan and WebMO orbitals are already normalized! Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java trunk/Jmol/src/org/jmol/adapter/readers/quantum/GenNBOReader.java trunk/Jmol/src/org/jmol/adapter/readers/quantum/PsiReader.java trunk/Jmol/src/org/jmol/adapter/readers/simple/GhemicalMMReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java 2010-03-25 05:22:21 UTC (rev 12694) +++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java 2010-03-25 05:56:40 UTC (rev 12695) @@ -284,7 +284,7 @@ tokens = getTokens(); // get the tokens in the line Atom atom = atomSetCollection.addNewAtom(); atom.elementNumber = - (byte)parseInt(tokens[STD_ORIENTATION_ATOMIC_NUMBER_OFFSET]); + (short)parseInt(tokens[STD_ORIENTATION_ATOMIC_NUMBER_OFFSET]); if (atom.elementNumber < 0) atom.elementNumber = 0; // dummy atoms have -1 -> 0 int offset = tokens.length-3; Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/GenNBOReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/quantum/GenNBOReader.java 2010-03-25 05:22:21 UTC (rev 12694) +++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/GenNBOReader.java 2010-03-25 05:56:40 UTC (rev 12695) @@ -35,34 +35,31 @@ /** * NBO file nn reader will pull in other files as necessary - * - * + * + * **/ +/* + * NBO output analysis is based on + * + * ********************************** NBO 5.G + * *********************************** N A T U R A L A T O M I C O R B I T A L A + * N D N A T U R A L B O N D O R B I T A L A N A L Y S I S + * *********************** + * ******************************************************* (c) Copyright + * 1996-2004 Board of Regents of the University of Wisconsin System on behalf of + * the Theoretical Chemistry Institute. All Rights Reserved. + * + * Cite this program as: + * + * NBO 5.G. E. D. Glendening, J. K. Badenhoop, A. E. Reed, J. E. Carpenter, J. + * A. Bohmann, C. M. Morales, and F. Weinhold (Theoretical Chemistry Institute, + * University of Wisconsin, Madison, WI, 2001); http://www.chem.wisc.edu/~nbo5 + * + * /AONBO / : Print the AO to NBO transformation + */ +public class GenNBOReader extends MOReader { - - - /* NBO output analysis is based on - * - *********************************** NBO 5.G *********************************** - N A T U R A L A T O M I C O R B I T A L A N D - N A T U R A L B O N D O R B I T A L A N A L Y S I S - ******************************************************************************* - (c) Copyright 1996-2004 Board of Regents of the University of Wisconsin System - on behalf of the Theoretical Chemistry Institute. All Rights Reserved. - - Cite this program as: - - NBO 5.G. E. D. Glendening, J. K. Badenhoop, A. E. Reed, - J. E. Carpenter, J. A. Bohmann, C. M. Morales, and F. Weinhold - (Theoretical Chemistry Institute, University of Wisconsin, - Madison, WI, 2001); http://www.chem.wisc.edu/~nbo5 - - /AONBO / : Print the AO to NBO transformation - * - */ -public class GenNBOReader extends MOReader { - private boolean isOutputFile; private String moType = ""; private int nOrbitals; @@ -100,7 +97,7 @@ // for .nbo only return checkNboLine(); } - + private String getFileData(String ext) { String fileName = (String) htParams.get("fullPathName"); int pt = fileName.lastIndexOf("."); @@ -116,17 +113,15 @@ return data; } - /* - 14_a - Basis set information needed for plotting orbitals - --------------------------------------------------------------------------- - 36 90 162 - --------------------------------------------------------------------------- - 6 -2.992884000 -1.750577000 1.960024000 - 6 -2.378528000 -1.339374000 0.620578000 + * 14_a Basis set information needed for plotting orbitals + * --------------------------------------------------------------------------- + * 36 90 162 + * --------------------------------------------------------------------------- + * 6 -2.992884000 -1.750577000 1.960024000 6 -2.378528000 -1.339374000 + * 0.620578000 */ - + private void readFile31() throws Exception { String data = getFileData(".31"); if (data == null) @@ -153,24 +148,28 @@ if (line2 == null) line2 = readLine(); atomSetCollection.setAtomSetName(line1.trim() + moType); - + // read atomCount, shellCount, and gaussianCount - readLine(); // ---------- + readLine(); // ---------- String[] tokens = getTokens(readLine()); int atomCount = parseInt(tokens[0]); shellCount = parseInt(tokens[1]); gaussianCount = parseInt(tokens[2]); // read atom types and positions - readLine(); // ---------- + readLine(); // ---------- atomSetCollection.newAtomSet(); for (int i = 0; i < atomCount; i++) { tokens = getTokens(readLine()); + int z = parseInt(tokens[0]); + if (z < 0) // dummy atom + continue; Atom atom = atomSetCollection.addNewAtom(); - atom.elementNumber = (short) parseInt(tokens[0]); - atom.set(parseFloat(tokens[1]), parseFloat(tokens[2]), parseFloat(tokens[3])); - } - + atom.elementNumber = (short) z; + atom.set(parseFloat(tokens[1]), parseFloat(tokens[2]), + parseFloat(tokens[3])); + } + // read basis functions shells = new Vector(); gaussians = new float[gaussianCount][]; @@ -186,21 +185,31 @@ case 1: slater[1] = JmolAdapter.SHELL_S; break; - case 2: + case 3: slater[1] = JmolAdapter.SHELL_P; break; - case 3: // perhaps? - slater[1] = JmolAdapter.SHELL_D_SPHERICAL; - break; case 4: slater[1] = JmolAdapter.SHELL_SP; break; - case 5: // perhaps? + case 5: + // TODO + slater[1] = JmolAdapter.SHELL_D_CARTESIAN; + break; + case 6: + // TODO + slater[1] = JmolAdapter.SHELL_D_SPHERICAL; + break; + case 7: + // TODO + slater[1] = JmolAdapter.SHELL_F_CARTESIAN; + break; + case 10: + // TODO slater[1] = JmolAdapter.SHELL_F_SPHERICAL; break; } // 0 = S, 1 = P, 2 = SP, 3 = D, 4 = F - slater[2] = parseInt(tokens[2]) - 1; + slater[2] = parseInt(tokens[2]) - 1; slater[3] = parseInt(tokens[3]); shells.addElement(slater); } @@ -291,5 +300,4 @@ } } - } Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/PsiReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/quantum/PsiReader.java 2010-03-25 05:22:21 UTC (rev 12694) +++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/PsiReader.java 2010-03-25 05:56:40 UTC (rev 12695) @@ -137,7 +137,7 @@ if (isInitial) atomNames.addElement(tokens[0]); else - atom.elementNumber = (byte) parseInt(tokens[0]); + atom.elementNumber = (short) parseInt(tokens[0]); if (atom.elementNumber < 0) atom.elementNumber = 0; // dummy atoms have -1 -> 0 atom.set(parseFloat(tokens[1]), parseFloat(tokens[2]), parseFloat(tokens[3])); Modified: trunk/Jmol/src/org/jmol/adapter/readers/simple/GhemicalMMReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/simple/GhemicalMMReader.java 2010-03-25 05:22:21 UTC (rev 12694) +++ trunk/Jmol/src/org/jmol/adapter/readers/simple/GhemicalMMReader.java 2010-03-25 05:56:40 UTC (rev 12695) @@ -115,7 +115,7 @@ "expected: " + i + " saw:" + atomIndex); int elementNumber = parseInt(); Atom atom = atomSetCollection.addNewAtom(); - atom.elementNumber = (byte)elementNumber; + atom.elementNumber = (short)elementNumber; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-08-24 14:06:51
|
Revision: 14118 http://jmol.svn.sourceforge.net/jmol/?rev=14118&view=rev Author: hansonr Date: 2010-08-24 14:06:45 +0000 (Tue, 24 Aug 2010) Log Message: ----------- version=12.1.7_dev # new feature: Vasp reader shows enthalpy and Gibbs energy in model name Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java 2010-08-24 14:04:28 UTC (rev 14117) +++ trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java 2010-08-24 14:06:45 UTC (rev 14118) @@ -126,9 +126,9 @@ atomSetCollection.setDoFixPeriodic(); atomSetCollection.newAtomSet(); if (enthalpy != null) - atomSetCollection.setAtomSetAuxiliaryInfo("enthalpy", Float.valueOf(enthalpy)); + atomSetCollection.setAtomSetAuxiliaryInfo("enthalpy", Double.valueOf(enthalpy)); if (gibbsEnergy != null) - atomSetCollection.setAtomSetAuxiliaryInfo("gibbsEnergy", Float.valueOf(gibbsEnergy)); + atomSetCollection.setAtomSetAuxiliaryInfo("gibbsEnergy", Double.valueOf(gibbsEnergy)); if (enthalpy != null && gibbsEnergy != null) atomSetCollection.setAtomSetName(" Enthalpy = " + enthalpy + " Gibbs Energy = " + gibbsEnergy); return; Modified: trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java 2010-08-24 14:04:28 UTC (rev 14117) +++ trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java 2010-08-24 14:06:45 UTC (rev 14118) @@ -692,7 +692,7 @@ private void readEnergy() { line = TextFormat.simpleReplace(line, "( ", "("); String[] tokens = getTokens(); - energy = new Double(Double.parseDouble(tokens[2])); + energy = Double.valueOf(Double.parseDouble(tokens[2])); setEnergy(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2010-08-24 14:12:54
|
Revision: 14119 http://jmol.svn.sourceforge.net/jmol/?rev=14119&view=rev Author: hansonr Date: 2010-08-24 14:12:47 +0000 (Tue, 24 Aug 2010) Log Message: ----------- version=12.1.7_dev # new feature: Vasp reader shows enthalpy and Gibbs energy in model name Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java 2010-08-24 14:06:45 UTC (rev 14118) +++ trunk/Jmol/src/org/jmol/adapter/readers/xml/XmlVaspReader.java 2010-08-24 14:12:47 UTC (rev 14119) @@ -125,12 +125,15 @@ parent.setFractionalCoordinates(true); atomSetCollection.setDoFixPeriodic(); atomSetCollection.newAtomSet(); - if (enthalpy != null) + if (enthalpy != null) { atomSetCollection.setAtomSetAuxiliaryInfo("enthalpy", Double.valueOf(enthalpy)); - if (gibbsEnergy != null) + } + if (gibbsEnergy != null) { + atomSetCollection.setAtomSetEnergy("" + gibbsEnergy, parseFloat(gibbsEnergy)); atomSetCollection.setAtomSetAuxiliaryInfo("gibbsEnergy", Double.valueOf(gibbsEnergy)); + } if (enthalpy != null && gibbsEnergy != null) - atomSetCollection.setAtomSetName(" Enthalpy = " + enthalpy + " Gibbs Energy = " + gibbsEnergy); + atomSetCollection.setAtomSetName("Enthalpy = " + enthalpy + " Gibbs Energy = " + gibbsEnergy); return; } if (!parent.doProcessLines) Modified: trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java 2010-08-24 14:06:45 UTC (rev 14118) +++ trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java 2010-08-24 14:12:47 UTC (rev 14119) @@ -697,9 +697,9 @@ } private void setEnergy() { + atomSetCollection.setAtomSetEnergy("" + energy, energy.floatValue()); atomSetCollection.setAtomSetAuxiliaryInfo("Energy", energy); atomSetCollection.setAtomSetCollectionAuxiliaryInfo("Energy", energy); - atomSetCollection.setAtomSetEnergy("" + energy, energy.floatValue()); atomSetCollection.setAtomSetName("Energy = " + energy + " Hartree"); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2011-11-21 13:15:01
|
Revision: 16503 http://jmol.svn.sourceforge.net/jmol/?rev=16503&view=rev Author: hansonr Date: 2011-11-21 13:14:52 +0000 (Mon, 21 Nov 2011) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/molxyz/XyzReader.java trunk/Jmol/src/org/jmol/adapter/readers/simple/ZMatrixReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/molxyz/XyzReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/molxyz/XyzReader.java 2011-11-21 13:12:43 UTC (rev 16502) +++ trunk/Jmol/src/org/jmol/adapter/readers/molxyz/XyzReader.java 2011-11-21 13:14:52 UTC (rev 16503) @@ -25,7 +25,6 @@ package org.jmol.adapter.readers.molxyz; import org.jmol.adapter.smarter.*; -import org.jmol.api.JmolAdapter; import org.jmol.util.Logger; Modified: trunk/Jmol/src/org/jmol/adapter/readers/simple/ZMatrixReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/simple/ZMatrixReader.java 2011-11-21 13:12:43 UTC (rev 16502) +++ trunk/Jmol/src/org/jmol/adapter/readers/simple/ZMatrixReader.java 2011-11-21 13:14:52 UTC (rev 16503) @@ -163,11 +163,11 @@ checkLineForScript(); } else { if (!doReadAtoms) { + doReadAtoms = true; // skip first two lines ? String line1 = line; String line2 = readLine(); String line3 = readLine(); - doReadAtoms = true; isMopac = (line3.trim().length() == 0); if (!isMopac) { checkLine(line1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2012-09-08 19:43:59
|
Revision: 17533 http://jmol.svn.sourceforge.net/jmol/?rev=17533&view=rev Author: hansonr Date: 2012-09-08 19:43:53 +0000 (Sat, 08 Sep 2012) Log Message: ----------- jspecview reference out Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/more/JcampdxReader.java trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java trunk/Jmol/src/org/jmol/adapter/readers/xtal/MagResReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/more/JcampdxReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/more/JcampdxReader.java 2012-09-08 18:16:58 UTC (rev 17532) +++ trunk/Jmol/src/org/jmol/adapter/readers/more/JcampdxReader.java 2012-09-08 19:43:53 UTC (rev 17533) @@ -30,7 +30,7 @@ import java.util.BitSet; import java.util.List; -import jspecview.util.TextFormat; +import org.jmol.util.TextFormat; import org.jmol.adapter.readers.molxyz.MolReader; import org.jmol.adapter.smarter.AtomSetCollectionReader; Modified: trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java 2012-09-08 18:16:58 UTC (rev 17532) +++ trunk/Jmol/src/org/jmol/adapter/readers/quantum/GaussianReader.java 2012-09-08 19:43:53 UTC (rev 17533) @@ -35,7 +35,7 @@ import javax.vecmath.Vector3f; -import jspecview.util.TextFormat; +import org.jmol.util.TextFormat; import org.jmol.api.JmolAdapter; import org.jmol.util.ArrayUtil; Modified: trunk/Jmol/src/org/jmol/adapter/readers/xtal/MagResReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xtal/MagResReader.java 2012-09-08 18:16:58 UTC (rev 17532) +++ trunk/Jmol/src/org/jmol/adapter/readers/xtal/MagResReader.java 2012-09-08 19:43:53 UTC (rev 17533) @@ -12,7 +12,7 @@ * @version 1.0 */ -import jspecview.util.TextFormat; +import org.jmol.util.TextFormat; import org.jmol.adapter.smarter.AtomSetCollectionReader; import org.jmol.adapter.smarter.Atom; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2014-06-03 14:19:51
|
Revision: 19769 http://sourceforge.net/p/jmol/code/19769 Author: hansonr Date: 2014-06-03 14:19:48 +0000 (Tue, 03 Jun 2014) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/cif/Subsystem.java trunk/Jmol/src/org/jmol/adapter/readers/xtal/JanaReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/cif/Subsystem.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/cif/Subsystem.java 2014-06-03 14:17:24 UTC (rev 19768) +++ trunk/Jmol/src/org/jmol/adapter/readers/cif/Subsystem.java 2014-06-03 14:19:48 UTC (rev 19769) @@ -14,7 +14,7 @@ class Subsystem { - private MSRdr msReader; + private MSRdr msRdr; private String code; private int d; private Matrix w; @@ -23,8 +23,8 @@ private Matrix[] modMatrices; private boolean isFinalized; - Subsystem(MSRdr msReader, String code, Matrix w) { - this.msReader = msReader; + Subsystem(MSRdr msRdr, String code, Matrix w) { + this.msRdr = msRdr; this.code = code; this.w = w; d = w.getArray().length - 3; @@ -58,7 +58,7 @@ Matrix wd3 = w.getSubmatrix(3, 0, d, 3); Matrix w3d = w.getSubmatrix(0, 3, 3, d); Matrix wdd = w.getSubmatrix(3, 3, d, d); - Matrix sigma = msReader.getSigma(); + Matrix sigma = msRdr.getSigma(); Matrix sigma_nu = wdd.mul(sigma).add(wd3).mul(w3d.mul(sigma).add(w33).inverse()); Matrix tFactor = wdd.sub(sigma_nu.mul(w3d)); @@ -66,7 +66,7 @@ // Part 2: Get the new unit cell and symmetry operators - SymmetryInterface s0 = msReader.cr.asc.getSymmetry(); + SymmetryInterface s0 = msRdr.cr.asc.getSymmetry(); V3[] vu43 = s0.getUnitCellVectors(); V3[] vr43 = reciprocalsOf(vu43); @@ -123,7 +123,7 @@ // // (Wj R Wi_inv).submatrix(0,3,3,d) == all_zeros // - for (Entry<String, Subsystem> e: msReader.htSubsystems.entrySet()){ + for (Entry<String, Subsystem> e: msRdr.htSubsystems.entrySet()){ Subsystem ss = e.getValue(); if (ss == this) continue; Modified: trunk/Jmol/src/org/jmol/adapter/readers/xtal/JanaReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xtal/JanaReader.java 2014-06-03 14:17:24 UTC (rev 19768) +++ trunk/Jmol/src/org/jmol/adapter/readers/xtal/JanaReader.java 2014-06-03 14:19:48 UTC (rev 19769) @@ -197,7 +197,7 @@ private void ndim() throws Exception { ms = (MSInterface) Interface - .getOption("adapter.readers.cif.MSReader"); + .getOption("adapter.readers.cif.MSRdr"); modDim = ms.initialize(this, (parseIntStr(getTokens()[1]) - 3)); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2014-09-10 11:58:04
|
Revision: 19986 http://sourceforge.net/p/jmol/code/19986 Author: hansonr Date: 2014-09-10 11:57:56 +0000 (Wed, 10 Sep 2014) Log Message: ----------- Jmol.___JmolVersion="14.3.7_2014.09.10" bug fix: Pending measurements lost when dragging to reposition molecule bug fix: EM files not allowing unit cell creation for PDB or mmCIF files Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/cif/CifReader.java trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/cif/CifReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/cif/CifReader.java 2014-09-10 11:54:53 UTC (rev 19985) +++ trunk/Jmol/src/org/jmol/adapter/readers/cif/CifReader.java 2014-09-10 11:57:56 UTC (rev 19986) @@ -639,7 +639,7 @@ float v = parseFloatStr(data); if (Float.isNaN(v)) return; - notionalUnitCell[0] = 1; + //could enable EM box: notionalUnitCell[0] = 1; for (int i = 0; i < TransformFields.length; i++) { if (key.indexOf(TransformFields[i]) >= 0) { setUnitCellItem(6 + i, v); Modified: trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java 2014-09-10 11:54:53 UTC (rev 19985) +++ trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java 2014-09-10 11:57:56 UTC (rev 19986) @@ -1314,7 +1314,7 @@ if (cryst1 != 1 || notionalUnitCell == null) return; // not an EM image int pt = n * 4 + 2; - notionalUnitCell[0] = 1; + //could enable EM box: notionalUnitCell[0] = 1; setUnitCellItem(pt++,getFloat(10, 10)); setUnitCellItem(pt++,getFloat(20, 10)); setUnitCellItem(pt++,getFloat(30, 10)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2015-02-12 12:46:46
|
Revision: 20287 http://sourceforge.net/p/jmol/code/20287 Author: hansonr Date: 2015-02-12 12:46:39 +0000 (Thu, 12 Feb 2015) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java trunk/Jmol/src/org/jmol/adapter/readers/xtal/JanaReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java 2015-02-12 00:38:19 UTC (rev 20286) +++ trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java 2015-02-12 12:46:39 UTC (rev 20287) @@ -525,9 +525,10 @@ } private void title() { - if (lineLength < 10) - return; - appendLoadNote(line.substring(10).trim()); + if (lineLength > 72) + line = line.substring(0, 72); + if (lineLength >= 10) + appendLoadNote(line.substring(10).trim()); } private void compnd(boolean isSource) { @@ -863,7 +864,7 @@ atom.atomName = name; if (altID != ' ') atom.altLoc = altID; - atom.group3 = group3; + atom.group3 = (group3 == null ? "UNK" : group3); atom.chainID = chainID; if (biomtChainAtomCounts != null) biomtChainAtomCounts[chainID % 256]++; Modified: trunk/Jmol/src/org/jmol/adapter/readers/xtal/JanaReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xtal/JanaReader.java 2015-02-12 00:38:19 UTC (rev 20286) +++ trunk/Jmol/src/org/jmol/adapter/readers/xtal/JanaReader.java 2015-02-12 12:46:39 UTC (rev 20287) @@ -335,8 +335,6 @@ return; m40File = m40File.substring(0, ipt + 2) + "40"; String id = m40File.substring(0, ipt); - ipt = id.lastIndexOf("/"); - id = id.substring(ipt + 1); reader.close(); reader = Rdr.getBR((String) vwr.getLigandModel(id, m40File, "_file", "----")); if (out != null) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ha...@us...> - 2016-04-21 18:39:24
|
Revision: 21063 http://sourceforge.net/p/jmol/code/21063 Author: hansonr Date: 2016-04-21 18:39:23 +0000 (Thu, 21 Apr 2016) Log Message: ----------- Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/cif/MMCifReader.java trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/cif/MMCifReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/cif/MMCifReader.java 2016-04-21 14:16:06 UTC (rev 21062) +++ trunk/Jmol/src/org/jmol/adapter/readers/cif/MMCifReader.java 2016-04-21 18:39:23 UTC (rev 21063) @@ -260,7 +260,7 @@ return true; } } - if (latticeCells != null) + if (latticeCells != null && latticeCells[0] != 0) addJmolScript("unitcell;"); if (requiresSorting) sortAssemblyModels(); Modified: trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java 2016-04-21 14:16:06 UTC (rev 21062) +++ trunk/Jmol/src/org/jmol/adapter/readers/pdb/PdbReader.java 2016-04-21 18:39:23 UTC (rev 21063) @@ -457,7 +457,7 @@ asc.setModelInfoForSet("biosymmetry", null, asc.iSet); asc.checkSpecial = false; } - if (latticeCells != null) + if (latticeCells != null && latticeCells[0] != 0) addJmolScript("unitcell;"); finalizeReaderASCR(); if (vCompnds != null) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |