|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.jmol.adapter.smarter.AtomSetCollectionReader
org.jmol.adapter.readers.quantum.BasisFunctionReader
org.jmol.adapter.readers.quantum.SlaterReader
abstract class SlaterReader
Nested Class Summary | |
---|---|
(package private) class |
SlaterReader.OrbitalSorter
|
(package private) class |
SlaterReader.SlaterSorter
|
Field Summary | |
---|---|
private static double |
_1_4pi
|
private static double[] |
dfact2
|
private static double[] |
fact1
|
protected SlaterData[] |
slaterArray
|
protected List |
slaters
|
Fields inherited from class org.jmol.adapter.readers.quantum.BasisFunctionReader |
---|
alphaBeta, CANONICAL_DC_LIST, CANONICAL_DS_LIST, CANONICAL_FC_LIST, CANONICAL_FS_LIST, dfCoefMaps, ignoreMOs, moData, nOrbitals, orbitals, shells |
Constructor Summary | |
---|---|
SlaterReader()
|
Method Summary | |
---|---|
protected void |
addSlater(int iAtom,
int a,
int b,
int c,
int d,
double zeta,
float coef)
We build two data structures for each slater: int[] slaterInfo[] = {iatom, a, b, c, d} float[] slaterData[] = {zeta, coef} where psi = (coef)(x^a)(y^b)(z^c)(r^d)exp(-zeta*r) Mopac: a == -2 ==> z^2 ==> (coef)(2z^2-x^2-y^2)(r^d)exp(-zeta*r) and: b == -2 ==> (coef)(x^2-y^2)(r^d)exp(-zeta*r) |
protected void |
addSlater(SlaterData sd,
int n)
|
private static double |
fact(double f,
double zeta,
int n)
Sincere thanks to Miroslav Kohout (DGRID) for helping me get this right -- Bob Hanson, 1/5/2010 slater scaling based on zeta, n, l, and x y z exponents. |
protected static double |
getSlaterConstCartesian(int n,
double zeta,
int el,
int ex,
int ey,
int ez)
scales slater using double factorials involving quantum number n, l, and xyz exponents. |
protected static double |
getSlaterConstDSpherical(int n,
double zeta,
int ex,
int ey)
spherical scaling factors specifically for x2-y2 and z2 orbitals see http://openmopac.net/Manual/real_spherical_harmonics.html dz2 sqrt((1/2p)(5/8))(2cos2(q) -sin2(q)) sqrt(5/16p)(3z2-r2)/r2 dxz sqrt((1/2p)(15/4))(cos(q)sin(q))cos(f) sqrt(15/4p)(xz)/r2 dyz sqrt((1/2p)(15/4))(cos(q)sin(q))sin(f) sqrt(15/4p)(yz)/r2 dx2-y2 sqrt((1/2p)(15/16))sin2(q)cos2(f) sqrt(15/16p)(x2-y2)/r2 dxy sqrt((1/2p)(15/16))sin2(q)sin2(f) sqrt(15/4p)(xy)/r2 The fact() method returns sqrt(15/4p) for both z2 and x2-y2. |
protected double |
scaleSlater(int ex,
int ey,
int ez,
int er,
double zeta)
Perform implementation-specific scaling. |
protected void |
setMOs(String units)
|
protected void |
setSlaters(boolean doScale,
boolean doSort)
after the vectors intinfo and floatinfo are completed, we |
protected void |
sortOrbitalCoefficients(int[] pointers)
sorts coefficients by atomic number for speed later |
protected void |
sortOrbitals()
sorts orbitals by energy rather than by symmetry so that we can use "MO HOMO" "MO HOMO - 1" "MO LUMO" |
Methods inherited from class org.jmol.adapter.readers.quantum.BasisFunctionReader |
---|
canonicalizeQuantumSubshellTag, filterMO, fixSlaterTypes, getDFMap, isQuantumBasisSupported, setMO |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected final List slaters
protected SlaterData[] slaterArray
private static final double _1_4pi
private static final double[] fact1
private static final double[] dfact2
Constructor Detail |
---|
SlaterReader()
Method Detail |
---|
protected final void addSlater(int iAtom, int a, int b, int c, int d, double zeta, float coef)
iAtom
- a
- b
- c
- d
- zeta
- coef
- protected void addSlater(SlaterData sd, int n)
protected final void setSlaters(boolean doScale, boolean doSort)
doScale
- doSort
- TODOprotected final void setMOs(String units)
protected void sortOrbitalCoefficients(int[] pointers)
pointers
- protected void sortOrbitals()
protected double scaleSlater(int ex, int ey, int ez, int er, double zeta)
ex
- ey
- ez
- er
- zeta
-
private static double fact(double f, double zeta, int n)
f
- zeta
- n
-
protected static final double getSlaterConstCartesian(int n, double zeta, int el, int ex, int ey, int ez)
n
- zeta
- el
- ex
- ey
- ez
-
protected static final double getSlaterConstDSpherical(int n, double zeta, int ex, int ey)
n
- zeta
- ex
- ey
-
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |