Package org.jmol.quantum
Class NciCalculation
java.lang.Object
org.jmol.quantum.QuantumCalculation
org.jmol.quantum.QuantumPlaneCalculation
org.jmol.quantum.NciCalculation
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate javajs.util.BSprivate static doubleprivate static double[]private static double[]private static double[]private booleanprivate floatprivate doubleprivate doubleprivate doubleprivate static double[]private javajs.util.Eigenprivate float[]private doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate doubleprivate booleanprivate double[][]private booleanprivate booleanprivate intprivate static final doubleprivate booleanprivate float[]private float[]private float[]private doubleprivate double[]private doubleprivate doubleprivate static double(package private) doubleprivate intprivate static final intprivate static final intprivate static final intprivate static final intprivate booleanprivate intprivate float[][]private float[][]private static double[]private static double[]private static double[]Fields inherited from class org.jmol.quantum.QuantumCalculation
atomIndex, bohr_per_angstrom, bsExcluded, countsXYZ, doDebug, firstAtomOffset, integration, nX, nY, nZ, originBohr, points, qmAtoms, rangeBohrOrAngstroms, stepBohr, thisAtom, unitFactor, volume, voxelData, voxelDataTemp, X, X2, xBohr, xMax, xMin, Y, Y2, yBohr, yMax, yMin, Z, Z2, zBohr, zMax, zMin -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcalcPlane(int x, float[] plane) For reduced density only; coloring is done point by point.voidprivate voidgetBsOK()grid-based discrete SCF calculation needs to know which atoms to consider inter and which intramolecularfloatGet that value that represents "no value" so that it can be disregarded in terms of recording and reporting the min/max/mean.private static doublegetParameter(float[] parameters, int i, double def, String name) voidgetPlane(int ix, float[] yzPlane) private doublegetPlaneValue(int vA) We always have four raw planes in hand; we just need to know which three to use in any particular case.private floatgetValue(double rho, boolean isReducedDensity) private voidprotected voidprotected voidprocess()floatprocess(int vA, int vB, float f) Passing the grid points of the two ends of an edge and a fraction to this method returns the value at a triangle point.private doubleprocessAtoms(int ix, int iy, int iz, int index) At each grid point we need to calculate the sum of the atom-based promolecular data.voidsetPlanes(float[][] planes) Raw file data planes are passed to us here from VolumeFileReaderbooleansetupCalculation(VolumeData volumeData, javajs.util.BS bsSelected, javajs.util.BS bsExcluded, javajs.util.BS[] bsMolecules, javajs.util.T3[] atomCoordAngstroms, int firstAtomOffset, boolean isReducedDensity, javajs.util.T3[] points, float[] parameters, int testFlags) Methods inherited from class org.jmol.quantum.QuantumCalculation
getIntegration, initialize, initialize0, initializeOnePointQC, processPoints, processPt, setMinMax, setupCoordinates, setXYZBohr
-
Field Details
-
havePoints
private boolean havePoints -
isReducedDensity
private boolean isReducedDensity -
DEFAULT_RHOPLOT_SCF
private double DEFAULT_RHOPLOT_SCF -
DEFAULT_RHOPLOT_PRO
private double DEFAULT_RHOPLOT_PRO -
DEFAULT_RHOPARAM
private double DEFAULT_RHOPARAM -
rhoMin
private double rhoMin -
rhoPlot
private double rhoPlot -
rhoParam
private double rhoParam -
TYPE_ALL
private static final int TYPE_ALL- See Also:
-
TYPE_INTRA
private static final int TYPE_INTRA- See Also:
-
TYPE_INTER
private static final int TYPE_INTER- See Also:
-
TYPE_LIGAND
private static final int TYPE_LIGAND- See Also:
-
NO_VALUE
private static final double NO_VALUE- See Also:
-
dataScaling
private float dataScaling -
dataIsReducedDensity
private boolean dataIsReducedDensity -
eigen
private javajs.util.Eigen eigen -
rhoMolecules
private double[] rhoMolecules -
type
private int type -
nMolecules
private int nMolecules -
isPromolecular
private boolean isPromolecular -
bsOK
private javajs.util.BS bsOK -
noValuesAtAll
private boolean noValuesAtAll -
useAbsolute
private boolean useAbsolute -
c
private static double c -
rpower
private static double rpower -
hess
private double[][] hess -
grad
private double grad -
gxTemp
private double gxTemp -
gyTemp
private double gyTemp -
gzTemp
private double gzTemp -
gxxTemp
private double gxxTemp -
gyyTemp
private double gyyTemp -
gzzTemp
private double gzzTemp -
gxyTemp
private double gxyTemp -
gyzTemp
private double gyzTemp -
gxzTemp
private double gxzTemp -
eigenValues
private float[] eigenValues -
test1
double test1 -
yzPlanesRaw
private float[][] yzPlanesRaw -
yzCount
private int yzCount -
yzPlanesRho
private float[][] yzPlanesRho -
p0
private float[] p0 -
p1
private float[] p1 -
p2
private float[] p2 -
coef1
private static double[] coef1 -
coef2
private static double[] coef2 -
coef3
private static double[] coef3 -
zeta1
private static double[] zeta1 -
zeta2
private static double[] zeta2 -
zeta3
private static double[] zeta3 -
dMax
private static double[] dMax
-
-
Constructor Details
-
NciCalculation
public NciCalculation()
-
-
Method Details
-
getNoValue
public float getNoValue()Description copied from class:QuantumPlaneCalculationGet that value that represents "no value" so that it can be disregarded in terms of recording and reporting the min/max/mean.- Specified by:
getNoValuein classQuantumPlaneCalculation- Returns:
- NO_VALUE
-
setupCalculation
public boolean setupCalculation(VolumeData volumeData, javajs.util.BS bsSelected, javajs.util.BS bsExcluded, javajs.util.BS[] bsMolecules, javajs.util.T3[] atomCoordAngstroms, int firstAtomOffset, boolean isReducedDensity, javajs.util.T3[] points, float[] parameters, int testFlags) -
getParameter
-
getBsOK
private void getBsOK()grid-based discrete SCF calculation needs to know which atoms to consider inter and which intramolecular -
createCube
public void createCube()- Specified by:
createCubein classQuantumCalculation
-
initializeOnePoint
protected void initializeOnePoint()- Overrides:
initializeOnePointin classQuantumCalculation
-
initializeEigen
private void initializeEigen() -
getPlane
public void getPlane(int ix, float[] yzPlane) - Specified by:
getPlanein classQuantumPlaneCalculation
-
process
protected void process()- Specified by:
processin classQuantumCalculation
-
getValue
private float getValue(double rho, boolean isReducedDensity) -
processAtoms
private double processAtoms(int ix, int iy, int iz, int index) At each grid point we need to calculate the sum of the atom-based promolecular data. We partition this calculation into molecular subsets if necessary, and we check for atoms that are too far away to make a difference before we waste time doing exponentiation. If index >= 0, then this is just a check for intra- vs. inter- molecularity based on promolecular density. This is needed for applying intra- and inter-molecular filters to SCF CUBE data.- Parameters:
ix-iy-iz-index-- Returns:
- rho value or NO_VALUE
-
setPlanes
public void setPlanes(float[][] planes) Raw file data planes are passed to us here from VolumeFileReader- Specified by:
setPlanesin classQuantumPlaneCalculation- Parameters:
planes-
-
calcPlane
public void calcPlane(int x, float[] plane) For reduced density only; coloring is done point by point.- Specified by:
calcPlanein classQuantumPlaneCalculation- Parameters:
x-plane- an OUTPUT plane, to be filled here and used by MarchingCubes
-
process
public float process(int vA, int vB, float f) Passing the grid points of the two ends of an edge and a fraction to this method returns the value at a triangle point. This way we do not need to calculate this for EVERY point on the grid, only the ones that are part of the surface.- Specified by:
processin classQuantumPlaneCalculation- Parameters:
vA-vB-f-- Returns:
- value at point f-way between vA and vB
-
getPlaneValue
private double getPlaneValue(int vA) We always have four raw planes in hand; we just need to know which three to use in any particular case.- Parameters:
vA-- Returns:
- value of sign(lambda2)*rho at this grid point
-