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  String calculationType
           
private static double CUT
           
private  float[] CX
           
private  float[] CY
           
private  float[] CZ
           
private  int[][] dfCoefMaps
           
private  boolean doNormalize
           
private  float[] DXY
           
private  float[] DXZ
           
private  float[] DYZ
           
private  float[] EX
           
private  float[] EY
           
private  float[] EZ
           
private  int firstAtomOffset
           
private  int gaussianPtr
           
private  float[][] gaussians
           
private  boolean isElectronDensity
           
private  int moCoeff
           
private  float[] moCoefficients
           
private  int nGaussians
           
private  float occupancy
           
private static float ROOT3
           
private  List shells
           
private  SlaterData[] slaters
           
protected  float[][][] voxelDataTemp
           
 
Fields inherited from class org.jmol.quantum.QuantumCalculation
atomIndex, bohr_per_angstrom, doDebug, nX, nY, nZ, originBohr, qmAtoms, rangeBohrOrAngstroms, stepBohr, thisAtom, unitFactor, volume, 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)
           
private  void addData10F()
           
private  void addData5D()
           
private  void addData6D()
           
private  void addData7F()
           
private  void addDataP()
           
private  void addDataS()
           
private  void addDataSP()
           
private  void calcSP(float alpha, float as, float ax, float ay, float az)
           
 void calculate(VolumeDataInterface volumeData, BitSet bsSelected, String calculationType, Point3f[] atomCoordAngstroms, int firstAtomOffset, List shells, float[][] gaussians, int[][] dfCoefMaps, Object slaters, float[] moCoefficients, float[] nuclearCharges, boolean doNormalize)
           
 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 shell, int[] map)
           
private  void dumpInfo(String info)
           
protected  void initialize(int nX, int nY, int nZ)
           
private  void processShell(int iShell)
           
private  boolean 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
setupCoordinates
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CUT

private static final double CUT
See Also:
Constant Field Values

CX

private float[] CX

CY

private float[] CY

CZ

private float[] CZ

DXY

private float[] DXY

DXZ

private float[] DXZ

DYZ

private float[] DYZ

EX

private float[] EX

EY

private float[] EY

EZ

private float[] EZ

calculationType

private String calculationType

shells

private List shells

gaussians

private float[][] gaussians

slaters

private SlaterData[] slaters

moCoefficients

private float[] moCoefficients

moCoeff

private int moCoeff

gaussianPtr

private int gaussianPtr

firstAtomOffset

private int firstAtomOffset

isElectronDensity

private boolean isElectronDensity

occupancy

private float occupancy

doNormalize

private boolean doNormalize

dfCoefMaps

private int[][] dfCoefMaps

voxelDataTemp

protected float[][][] voxelDataTemp

as5D

boolean as5D

nGaussians

private int nGaussians

ROOT3

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

MOCalculation

public MOCalculation()
Method Detail

calculate

public void calculate(VolumeDataInterface volumeData,
                      BitSet bsSelected,
                      String calculationType,
                      Point3f[] atomCoordAngstroms,
                      int firstAtomOffset,
                      List shells,
                      float[][] gaussians,
                      int[][] dfCoefMaps,
                      Object slaters,
                      float[] moCoefficients,
                      float[] nuclearCharges,
                      boolean doNormalize)
Specified by:
calculate in interface MOCalculationInterface

initialize

protected void initialize(int nX,
                          int nY,
                          int nZ)
Overrides:
initialize in class QuantumCalculation

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)

setTemp

private void setTemp()

addDataS

private void addDataS()

addDataP

private void addDataP()

addDataSP

private void addDataSP()

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()

addData5D

private void addData5D()

addData10F

private void addData10F()

addData7F

private void addData7F()

processSlater

private boolean processSlater(int slaterIndex)

dumpInfo

private void dumpInfo(String info)

dumpInfo

private void dumpInfo(int shell,
                      int[] map)