Class NciCalculation

    • 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
      • 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 Detail

      • NciCalculation

        public NciCalculation()
    • Method Detail

      • getNoValue

        public float getNoValue()
        Description copied from class: QuantumPlaneCalculation
        Get that value that represents "no value" so that it can be disregarded in terms of recording and reporting the min/max/mean.
        Specified by:
        getNoValue in class QuantumPlaneCalculation
        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

        private static double getParameter​(float[] parameters,
                                           int i,
                                           double def,
                                           String name)
      • getBsOK

        private void getBsOK()
        grid-based discrete SCF calculation needs to know which atoms to consider inter and which intramolecular
      • initializeEigen

        private void initializeEigen()
      • 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:
        setPlanes in class QuantumPlaneCalculation
        Parameters:
        planes -
      • calcPlane

        public void calcPlane​(int x,
                              float[] plane)
        For reduced density only; coloring is done point by point.
        Specified by:
        calcPlane in class QuantumPlaneCalculation
        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:
        process in class QuantumPlaneCalculation
        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