From: <ha...@us...> - 2010-02-19 15:27:10
|
Revision: 12416 http://jmol.svn.sourceforge.net/jmol/?rev=12416&view=rev Author: hansonr Date: 2010-02-19 15:26:27 +0000 (Fri, 19 Feb 2010) Log Message: ----------- preliminary CRYSTAL reader - still needs testing Modified Paths: -------------- trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java Modified: trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java =================================================================== --- trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java 2010-02-19 15:20:37 UTC (rev 12415) +++ trunk/Jmol/src/org/jmol/adapter/readers/xtal/CrystalReader.java 2010-02-19 15:26:27 UTC (rev 12416) @@ -68,7 +68,7 @@ } if (isPrimitive) { if (line - .startsWith(" COORDINATES OF THE EQUIVALENT ATOMS")) { + .startsWith(" ATOMS IN THE ASYMMETRIC UNIT")) { readFractionalCoords(); continue; } @@ -130,24 +130,22 @@ } /* - COORDINATES OF THE EQUIVALENT ATOMS - (X AND Y IN FRACTIONARY UNITS, Z IN ANGSTROMS) - - N. ATOM EQUIV AT. N. X Y Z - - 1 1 1 26 FE 3.33130643604E-01 1.66339516481E-01 6.03501134235E+00 - */ +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 { - discardLinesUntilContains("ATOM EQUIV"); - while (readLine() != null && line.indexOf("NUMBER OF SYMM") < 0) { - if (line.length() == 0) - continue; + readLine(); + readLine(); + while (readLine() != null && line.length() > 0) { Atom atom = atomSetCollection.addNewAtom(); String[] tokens = getTokens(); - int atomicNumber = parseInt(tokens[3]); - float x = parseFloat(tokens[5]); - float y = parseFloat(tokens[6]); - float z = parseFloat(tokens[7]); + int atomicNumber = parseInt(tokens[2]); + float x = parseFloat(tokens[4]); + float y = parseFloat(tokens[5]); + float z = parseFloat(tokens[6]); if (isPolymer || isSlab) { if (x < 0) x += 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |