Class MopacSlaterReader

All Implemented Interfaces:
javajs.api.GenericLineReader
Direct Known Subclasses:
CsfReader, GamessReader, MoldenReader, MopacGraphfReader, WebMOReader

abstract class MopacSlaterReader extends SlaterReader
Author:
hansonr <hansonr@stolaf.edu>
  • Field Details

    • MIN_COEF

      protected static final float MIN_COEF
      See Also:
    • atomicNumbers

      protected int[] atomicNumbers
    • mopacBasis

      protected float[][] mopacBasis
      GAMESS may need AM1, PMn, or RM1 zeta/coef data
    • allowMopacDCoef

      protected boolean allowMopacDCoef
    • principalQuantumNumber

      private static final int[] principalQuantumNumber
    • npqd

      private static final int[] npqd
    • sphericalDValues

      private static final int[] sphericalDValues
    • mopacParams

      private static Map<String,float[][]> mopacParams
    • MOPAC_TYPES

      public static final String MOPAC_TYPES
      See Also:
    • _AM1_C

      static final float[] _AM1_C
      Data from MOPAC F90 source parameters_for_xxx_C.F90 for use in GamessReader. Values are 1/Bohr Bob Hanson 2021.03.16
    • _MNDO_C

      private static final float[] _MNDO_C
    • _PM3_C

      private static final float[] _PM3_C
    • _PM6_C

      private static final float[] _PM6_C
    • _PM7_C

      private static final float[] _PM7_C
    • _RM1_C

      private static final float[] _RM1_C
  • Constructor Details

    • MopacSlaterReader

      MopacSlaterReader()
  • Method Details

    • scaleSlater

      protected double scaleSlater(int ex, int ey, int ez, int er, double zeta)
      overrides method in SlaterReader to allow for MOPAC's treatment of the radial exponent differently depending upon position in the periodic table -- noble gases and transition metals and for the fact that these are spherical functions (5D, not 6D) ignores any F orbitals.
      Overrides:
      scaleSlater in class SlaterReader
      Parameters:
      ex -
      ey -
      ez -
      er -
      zeta -
      Returns:
      scaling factor
    • setMOData

      public void setMOData(boolean clearOrbitals)
      Overrides:
      setMOData in class MOReader
    • getNPQ

      private static final int getNPQ(int atomicNumber)
    • getNPQs

      private static final int getNPQs(int atomicNumber)
      for S orbitals, MOPAC adds 1 to n for noble gases other than helium
      Parameters:
      atomicNumber -
      Returns:
      adjusted principal quantum number
    • getNPQp

      private static final int getNPQp(int atomicNumber)
      for P orbitals, MOPAC adds 1 to n for helium only
      Parameters:
      atomicNumber -
      Returns:
      adjusted principal quantum number
    • getNPQd

      private static final int getNPQd(int atomicNumber)
      for D orbitals, MOPAC adds 1 to n for noble gases but subtracts 1 from n for transition metals
      Parameters:
      atomicNumber -
      Returns:
      adjusted principal quantum number
    • addSlaterBasis

      protected void addSlaterBasis()
      When slater basis is referred to only by "AM1" "PM6" etc., as in GAMESS
      Overrides:
      addSlaterBasis in class MOReader
    • createMopacSlaters

      public void createMopacSlaters(int iAtom, int atomicNumber, float[] values, boolean allowD)
    • createSphericalSlaterByType

      protected void createSphericalSlaterByType(int iAtom, int atomicNumber, String type, double zeta, float coef)
      We have the type as a string and need to translate that to exponents for x, y, z, and r. No F here.
      Parameters:
      iAtom -
      atomicNumber -
      type -
      zeta -
      coef -
    • getMopacAtomZetaSPD

      public static float[][] getMopacAtomZetaSPD(String type)
      Retrieve the MOPAC zeta(1/bohr) [s,p,d] array by atom number
      Parameters:
      type -
      Returns:
      [[zs,zp,zd],[zs,zp,zd]...] where [1] is for hydrogen, [6] is for carbon, etc.
    • addData

      private static void addData(float[][] params, float[] data)
      Add Fortran zeta data
      Parameters:
      params -
      data -