Class QCJSONWriter

java.lang.Object
org.jmol.util.JSONWriter
org.jmol.adapter.writers.QCJSONWriter
All Implemented Interfaces:
JmolWriter

public class QCJSONWriter extends JSONWriter implements JmolWriter
A very experimental class for writing QCJSON files. This standard is in the process of being developed, so any of this could change at any time. All we have here is Bob Hanson's experiment with getting Jmol to save and restore structures, vibrations, and molecular orbitals. Data set Bob is using is at https://sourceforge.net/p/jmol/code/HEAD/tree/trunk/Jmol-datafiles/qcjson
  • Field Details

    • moBases

      private Map<String,Object> moBases
    • htBasisMap

      private Map<String,String> htBasisMap
    • filterMOs

      private boolean filterMOs
    • vwr

      private Viewer vwr
    • basisID

      private int basisID
    • shells

      private javajs.util.Lst<int[]> shells
    • dfCoefMaps

      private int[][] dfCoefMaps
    • integrationKeyMap

      private static Map<String,String> integrationKeyMap
  • Constructor Details

    • QCJSONWriter

      public QCJSONWriter()
  • Method Details

    • set

      public void set(Viewer viewer, javajs.util.OC oc, Object[] data)
      Specified by:
      set in interface JmolWriter
    • write

      public String write(javajs.util.BS bs)
      Specified by:
      write in interface JmolWriter
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • writeJSON

      public void writeJSON()
    • writeSchemaMetadata

      public void writeSchemaMetadata()
    • openSchema

      public void openSchema()
    • writeMagic

      public void writeMagic()
    • closeSchema

      public void closeSchema()
    • writeJobs

      public void writeJobs()
    • writeJob

      public void writeJob(int iJob)
    • writeJobMetadata

      public void writeJobMetadata()
    • writeModels

      public void writeModels()
    • writeModel

      public int writeModel(int modelIndex)
    • writeTopology

      public void writeTopology(int modelIndex)
    • getProperty

      public Object getProperty(int modelIndex, String key)
    • isVibration

      private boolean isVibration(int modelIndex)
    • writeModelMetadata

      public void writeModelMetadata(int modelIndex)
    • writeAtoms

      public void writeAtoms(int modelIndex)
    • formatNumber

      private String formatNumber(float x)
    • writePrefix_Units

      private void writePrefix_Units(String prefix, String units)
    • writeBonds

      public void writeBonds(int modelIndex)
    • writeVibrations

      public int writeVibrations(int modelIndex)
    • writeMapKeyValueUnits

      private void writeMapKeyValueUnits(String key, Object value, String units)
    • haveMOData

      private boolean haveMOData(int modelIndex)
    • getAuxiliaryData

      private Object getAuxiliaryData(int modelIndex, String key)
    • writeMOData

      private void writeMOData(int modelIndex)
    • fixIntegration

      private static Map<String,String> fixIntegration()
      When an MO is calculated in Jmol, Jmol will check the integration so that it can be checked to be close to 1.0000. This integration value is saved back in the MO data, but it is not a standard key. (As though anything is here!) So we set a key mapping to replace it.
      Returns:
      the "integration" key map
    • getAndCheckValue

      protected Object getAndCheckValue(Map<String,Object> map, String key)
      Overrides:
      getAndCheckValue in class JSONWriter
    • fixCoefficients

      private Object fixCoefficients(double[] coeffs)
      Jmol allows for a set of arrays that map coefficient indicies with nonstandard order to Gaussian/Molden order. Here we do the conversion upon writing so that the order is always Gaussian/Molden order.
      Parameters:
      coeffs -
      Returns:
    • setDFCoord

      private void setDFCoord(Map<String,Object> moData)
    • addBasis

      private String addBasis(Map<String,Object> moData)
      Add a basis to the associative array moBases keyed on its hashcode
      Parameters:
      moData -
      Returns:
      ID for this basis.
    • writeMOBases

      public void writeMOBases()
    • writeObject

      public void writeObject(Object o)
      Overrides:
      writeObject in class JSONWriter