org.jmol.quantum
Class MOCalculation

java.lang.Object
  extended by org.jmol.quantum.QuantumCalculation
      extended by org.jmol.quantum.MOCalculation
All Implemented Interfaces:
MOCalculationInterface

public class MOCalculation
extends QuantumCalculation
implements MOCalculationInterface


Nested Class Summary
 
Nested classes/interfaces inherited from class org.jmol.quantum.QuantumCalculation
QuantumCalculation.QMAtom
 
Field Summary
(package private)  boolean as5D
           
private  java.lang.String calculationType
           
(package private)  float[] CX
           
(package private)  float[] CY
           
(package private)  float[] CZ
           
(package private)  float[] DXY
           
(package private)  float[] DXZ
           
(package private)  float[] DYZ
           
(package private)  float[] EX
           
(package private)  float[] EY
           
(package private)  float[] EZ
           
private  int firstAtomOffset
           
private  int gaussianPtr
           
private  float[][] gaussians
           
private  boolean isElectronDensity
           
private static int MAX_GRID
           
private  int moCoeff
           
private  float[] moCoefficients
           
private  float occupancy
           
private static float ROOT3
           
private  java.util.Vector shells
           
private  float[][] slaterData
           
private  int[][] slaterInfo
           
protected  float[][][] voxelDataTemp
           
 
Fields inherited from class org.jmol.quantum.QuantumCalculation
atomIndex, bohr_per_angstrom, doDebug, nX, nY, nZ, originBohr, qmAtoms, rangeBohr, stepBohr, thisAtom, voxelData, X, X2, xBohr, xMax, xMin, Y, Y2, yBohr, yMax, yMin, Z, Z2, zBohr, zMax, zMin
 
Constructor Summary
MOCalculation()
           
 
Method Summary
private  void addData(int basisType, int nGaussians)
           
private  void addData10F(int nGaussians)
           
private  void addData5D(int nGaussians)
           
private  void addData6D(int nGaussians)
           
private  void addData7F(int nGaussians)
           
private  void addDataP(int nGaussians)
           
private  void addDataS(int nGaussians)
           
private  void addDataSP(int nGaussians)
           
private  void calcSP(float alpha, float as, float ax, float ay, float az)
           
 void calculate(VolumeDataInterface volumeData, java.util.BitSet bsSelected, java.lang.String calculationType, javax.vecmath.Point3f[] atomCoordAngstroms, int firstAtomOffset, java.util.Vector shells, float[][] gaussians, java.util.Hashtable aoOrdersDF, int[][] slaterInfo, float[][] slaterData, float[] moCoefficients, float[] nuclearCharges)
           
 void calculateElectronDensity(float[] nuclearCharges)
           
private  void check5D()
          Idea here is that we skip all the atoms, just increment moCoeff, and compare the number of coefficients run through to the size of the moCoefficients array.
private  boolean checkCalculationType()
           
private  void createGaussianCube()
           
private  void createSlaterCube()
           
private  void dumpInfo(int nGaussians, int shell)
           
private  void dumpInfo(int nGaussians, java.lang.String info)
           
private  void processShell(int iShell)
           
private  void processSlater(int slaterIndex)
           
private  void setCE(float[] CX, float[] EX, float alpha, float as, float ax, float ay, float az)
           
private  void setE(float[] EX, float alpha)
           
private  void setTemp()
           
 
Methods inherited from class org.jmol.quantum.QuantumCalculation
initialize, setupCoordinates
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAX_GRID

private static int MAX_GRID

CX

final float[] CX

CY

final float[] CY

CZ

final float[] CZ

DXY

final float[] DXY

DXZ

final float[] DXZ

DYZ

final float[] DYZ

EX

final float[] EX

EY

final float[] EY

EZ

final float[] EZ

calculationType

private java.lang.String calculationType

shells

private java.util.Vector shells

gaussians

private float[][] gaussians

slaterInfo

private int[][] slaterInfo

slaterData

private float[][] slaterData

moCoefficients

private float[] moCoefficients

moCoeff

private int moCoeff

gaussianPtr

private int gaussianPtr

firstAtomOffset

private int firstAtomOffset

isElectronDensity

private boolean isElectronDensity

occupancy

private float occupancy

voxelDataTemp

protected float[][][] voxelDataTemp

as5D

boolean as5D

ROOT3

private static final float ROOT3
See Also:
Constant Field Values
Constructor Detail

MOCalculation

public MOCalculation()
Method Detail

calculate

public void calculate(VolumeDataInterface volumeData,
                      java.util.BitSet bsSelected,
                      java.lang.String calculationType,
                      javax.vecmath.Point3f[] atomCoordAngstroms,
                      int firstAtomOffset,
                      java.util.Vector shells,
                      float[][] gaussians,
                      java.util.Hashtable aoOrdersDF,
                      int[][] slaterInfo,
                      float[][] slaterData,
                      float[] moCoefficients,
                      float[] nuclearCharges)
Specified by:
calculate in interface MOCalculationInterface

calculateElectronDensity

public void calculateElectronDensity(float[] nuclearCharges)
Specified by:
calculateElectronDensity in interface MOCalculationInterface

createSlaterCube

private void createSlaterCube()

createGaussianCube

private void createGaussianCube()

check5D

private void check5D()
Idea here is that we skip all the atoms, just increment moCoeff, and compare the number of coefficients run through to the size of the moCoefficients array. If there are more coefficients than there should be, we have to assume 5D orbitals were not recognized by the file loader


checkCalculationType

private boolean checkCalculationType()

processShell

private void processShell(int iShell)

addData

private void addData(int basisType,
                     int nGaussians)

setTemp

private void setTemp()

addDataS

private void addDataS(int nGaussians)

addDataP

private void addDataP(int nGaussians)

addDataSP

private void addDataSP(int nGaussians)

setCE

private void setCE(float[] CX,
                   float[] EX,
                   float alpha,
                   float as,
                   float ax,
                   float ay,
                   float az)

setE

private void setE(float[] EX,
                  float alpha)

calcSP

private void calcSP(float alpha,
                    float as,
                    float ax,
                    float ay,
                    float az)

addData6D

private void addData6D(int nGaussians)

addData5D

private void addData5D(int nGaussians)

addData10F

private void addData10F(int nGaussians)

addData7F

private void addData7F(int nGaussians)

processSlater

private void processSlater(int slaterIndex)

dumpInfo

private void dumpInfo(int nGaussians,
                      java.lang.String info)

dumpInfo

private void dumpInfo(int nGaussians,
                      int shell)