Package org.jmol.quantum
Class NciCalculation
- java.lang.Object
-
- org.jmol.quantum.QuantumCalculation
-
- org.jmol.quantum.QuantumPlaneCalculation
-
- org.jmol.quantum.NciCalculation
-
public class NciCalculation extends QuantumPlaneCalculation
-
-
Field Summary
Fields Modifier and Type Field Description private BSbsOKprivate static doublecprivate static double[]coef1private static double[]coef2private static double[]coef3private booleandataIsReducedDensityprivate floatdataScalingprivate doubleDEFAULT_RHOPARAMprivate doubleDEFAULT_RHOPLOT_PROprivate doubleDEFAULT_RHOPLOT_SCFprivate static double[]dMaxprivate javajs.util.Eigeneigenprivate float[]eigenValuesprivate doublegradprivate doublegxTempprivate doublegxxTempprivate doublegxyTempprivate doublegxzTempprivate doublegyTempprivate doublegyyTempprivate doublegyzTempprivate doublegzTempprivate doublegzzTempprivate booleanhavePointsprivate double[][]hessprivate booleanisPromolecularprivate booleanisReducedDensityprivate intnMoleculesprivate static doubleNO_VALUEprivate booleannoValuesAtAllprivate float[]p0private float[]p1private float[]p2private doublerhoMinprivate double[]rhoMoleculesprivate doublerhoParamprivate doublerhoPlotprivate static doublerpower(package private) doubletest1private inttypeprivate static intTYPE_ALLprivate static intTYPE_INTERprivate static intTYPE_INTRAprivate static intTYPE_LIGANDprivate booleanuseAbsoluteprivate intyzCountprivate float[][]yzPlanesRawprivate float[][]yzPlanesRhoprivate static double[]zeta1private static double[]zeta2private static double[]zeta3-
Fields inherited from class org.jmol.quantum.QuantumCalculation
atomIndex, bohr_per_angstrom, bsExcluded, countsXYZ, doDebug, firstAtomOffset, nX, nY, nZ, originBohr, points, qmAtoms, rangeBohrOrAngstroms, stepBohr, thisAtom, unitFactor, vd, volume, voxelData, voxelDataTemp, X, X2, xBohr, xMax, xMin, Y, Y2, yBohr, yMax, yMin, Z, Z2, zBohr, zMax, zMin
-
-
Constructor Summary
Constructors Constructor Description NciCalculation()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcalcPlane(int x, float[] plane)For reduced density only; coloring is done point by point.voidcreateCube()private voidgetBsOK()grid-based discrete SCF calculation needs to know which atoms to consider inter and which intramolecularfloatgetNoValue()Get 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, java.lang.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 voidinitializeEigen()protected voidinitializeOnePoint()protected 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, BS bsSelected, BS bsExcluded, 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
initialize, initialize0, initializeOnePointQC, processPoints, processPt, setMinMax, setupCoordinates, setXYZBohr
-
-
-
-
Field Detail
-
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:
- Constant Field Values
-
TYPE_INTRA
private static final int TYPE_INTRA
- See Also:
- Constant Field Values
-
TYPE_INTER
private static final int TYPE_INTER
- See Also:
- Constant Field Values
-
TYPE_LIGAND
private static final int TYPE_LIGAND
- See Also:
- Constant Field Values
-
NO_VALUE
private static final double NO_VALUE
- See Also:
- Constant Field Values
-
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 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
-
-
Method Detail
-
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, BS bsSelected, BS bsExcluded, BS[] bsMolecules, javajs.util.T3[] atomCoordAngstroms, int firstAtomOffset, boolean isReducedDensity, javajs.util.T3[] points, float[] parameters, int testFlags)
-
getParameter
private static double getParameter(float[] parameters, int i, double def, java.lang.String name)
-
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
-
-