Class GaussiansBasis

  • All Implemented Interfaces:
    IBasis
    Direct Known Subclasses:
    SimpleBasisSet

    public class GaussiansBasis
    extends Object
    implements IBasis
    This class contains the information to use gauss function as a base for calculation of quantum mechanics. The function is defined as:
     f(x,y,z) = (x-rx)^nx * (y-ry)^ny * (z-rz)^nz * exp(-alpha*(r-ri)^2)
     

    S = <phi_i|phi_j>
    J = <d/dr phi_i | d/dr phi_j>
    V = <phi_i | 1/r | phi_j>

    Author:
    Stephan Michels <stephan@vern.chem.tu-berlin.de>
    Source code:
    main
    Belongs to CDK module:
    qm
    Keywords:
    Gaussian basis set
    Created on:
    2001-06-14
    • Constructor Summary

      Constructors 
      Constructor Description
      GaussiansBasis()  
      GaussiansBasis​(int[] nx, int[] ny, int[] nz, double[] alpha, Vector[] r, IAtom[] atoms)
      Set up basis with gauss funktions f(x,y,z) = (x-rx)^nx * (y-ry)^ny * (z-rz)^nz * exp(-alpha*(r-ri)^2).
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      double calcD​(double normi, double normj, double alphai, double alphaj, Vector ri, Vector rj)  
      double calcG​(int n, double t, double alphai, double alphaj, double xi, double xj, double xN)
      Transfer equation for the calculation of core potentials
      double calcG​(int n, int m, double u, double alphai, double alphaj, double alphak, double alphal, double xi, double xj, double xk, double xl)
      Transfer equation for a four center integral.
      double calcI​(int i, int j, int k, int l)
      Calculates a two eletron fout center integral I = <chi_i chi_j | 1/r12 | chi_k chi_l >.
      double calcI​(int ni, int nj, int nk, int nl, double u, double alphai, double alphaj, double alphak, double alphal, double xi, double xj, double xk, double xl)
      Transfer equation for a four center integral.
      double calcJ​(int i, int j)
      Calculates the impulse J = -<d/dr chi_i | d/dr chi_j>.
      double calcJ​(int ni, int nj, double alphai, double alphaj, double xi, double xj)
      Transfer equation the the calculation of the impulse
      double calcS​(int i, int j)
      Calculate the overlap integral S = <phi_i|phi_j>.
      double calcV​(int i, int j)
      Calculates the core potential.
      double calcV​(int i, int j, Vector rN, double Z)
      Calculates the core potential.
      double getMaxX()
      Gets the dimension of the volume, which describes the base.
      double getMaxY()
      Gets the dimension of the volume, which describes the base.
      double getMaxZ()
      Gets the dimension of the volume, which describes the base.
      double getMinX()
      Gets the dimension of the volume, which describes the base.
      double getMinY()
      Gets the dimension of the volume, which describes the base.
      double getMinZ()
      Gets the dimension of the volume, which describes the base.
      Vector getPosition​(int index)
      Gets the position of a base.
      int getSize()
      Gets the number of base vectors.
      double getValue​(int index, double x, double y, double z)
      Calculates the function value an (x,y,z).
      Vector getValues​(int index, Matrix m)
      Calculates the function values.
      protected void setBasis​(int[] nx, int[] ny, int[] nz, double[] alpha, Vector[] r, IAtom[] atoms)
      Set up basis with gauss funktions f(x,y,z) = (x-rx)^nx * (y-ry)^ny * (z-rz)^nz * exp(-alpha*(r-ri)^2).
    • Constructor Detail

      • GaussiansBasis

        public GaussiansBasis()
      • GaussiansBasis

        public GaussiansBasis​(int[] nx,
                              int[] ny,
                              int[] nz,
                              double[] alpha,
                              Vector[] r,
                              IAtom[] atoms)
        Set up basis with gauss funktions f(x,y,z) = (x-rx)^nx * (y-ry)^ny * (z-rz)^nz * exp(-alpha*(r-ri)^2).
        Parameters:
        atoms - The atom will need to calculate the core potential
    • Method Detail

      • setBasis

        protected void setBasis​(int[] nx,
                                int[] ny,
                                int[] nz,
                                double[] alpha,
                                Vector[] r,
                                IAtom[] atoms)
        Set up basis with gauss funktions f(x,y,z) = (x-rx)^nx * (y-ry)^ny * (z-rz)^nz * exp(-alpha*(r-ri)^2).
        Parameters:
        atoms - The atom will need to calculate the core potential
      • getSize

        public int getSize()
        Gets the number of base vectors.
        Specified by:
        getSize in interface IBasis
      • getMinX

        public double getMinX()
        Gets the dimension of the volume, which describes the base.
        Specified by:
        getMinX in interface IBasis
      • getMaxX

        public double getMaxX()
        Gets the dimension of the volume, which describes the base.
        Specified by:
        getMaxX in interface IBasis
      • getMinY

        public double getMinY()
        Gets the dimension of the volume, which describes the base.
        Specified by:
        getMinY in interface IBasis
      • getMaxY

        public double getMaxY()
        Gets the dimension of the volume, which describes the base.
        Specified by:
        getMaxY in interface IBasis
      • getMinZ

        public double getMinZ()
        Gets the dimension of the volume, which describes the base.
        Specified by:
        getMinZ in interface IBasis
      • getMaxZ

        public double getMaxZ()
        Gets the dimension of the volume, which describes the base.
        Specified by:
        getMaxZ in interface IBasis
      • getValue

        public double getValue​(int index,
                               double x,
                               double y,
                               double z)
        Calculates the function value an (x,y,z).
        Specified by:
        getValue in interface IBasis
        Parameters:
        index - The number of the base
      • getValues

        public Vector getValues​(int index,
                                Matrix m)
        Calculates the function values.
        Specified by:
        getValues in interface IBasis
        Parameters:
        index - The number of the base
      • getPosition

        public Vector getPosition​(int index)
        Gets the position of a base.
      • calcD

        public double calcD​(double normi,
                            double normj,
                            double alphai,
                            double alphaj,
                            Vector ri,
                            Vector rj)
      • calcS

        public double calcS​(int i,
                            int j)
        Description copied from interface: IBasis
        Calculate the overlap integral S = <phi_i|phi_j>.
        Specified by:
        calcS in interface IBasis
        Parameters:
        i - Index of the first base
        j - Index of the second base
      • calcJ

        public double calcJ​(int ni,
                            int nj,
                            double alphai,
                            double alphaj,
                            double xi,
                            double xj)
        Transfer equation the the calculation of the impulse
      • calcJ

        public double calcJ​(int i,
                            int j)
        Description copied from interface: IBasis
        Calculates the impulse J = -<d/dr chi_i | d/dr chi_j>.
        Specified by:
        calcJ in interface IBasis
        Parameters:
        i - Index of the first base
        j - Index of the second base
      • calcG

        public double calcG​(int n,
                            double t,
                            double alphai,
                            double alphaj,
                            double xi,
                            double xj,
                            double xN)
        Transfer equation for the calculation of core potentials
      • calcV

        public double calcV​(int i,
                            int j,
                            Vector rN,
                            double Z)
        Calculates the core potential. It use a 10 point Simpson formula.
        Parameters:
        i - Index of the first base
        j - Index of the second base
        rN - Position the core potential
        Z - Atomic number of the nucleous
      • calcV

        public double calcV​(int i,
                            int j)
        Calculates the core potential. It use a 10 point Simpson formula.
        Specified by:
        calcV in interface IBasis
        Parameters:
        i - Index of the first base
        j - Index of the second base
      • calcG

        public double calcG​(int n,
                            int m,
                            double u,
                            double alphai,
                            double alphaj,
                            double alphak,
                            double alphal,
                            double xi,
                            double xj,
                            double xk,
                            double xl)
        Transfer equation for a four center integral.
      • calcI

        public double calcI​(int ni,
                            int nj,
                            int nk,
                            int nl,
                            double u,
                            double alphai,
                            double alphaj,
                            double alphak,
                            double alphal,
                            double xi,
                            double xj,
                            double xk,
                            double xl)
        Transfer equation for a four center integral.
      • calcI

        public double calcI​(int i,
                            int j,
                            int k,
                            int l)
        Description copied from interface: IBasis
        Calculates a two eletron fout center integral I = <chi_i chi_j | 1/r12 | chi_k chi_l >.
        Specified by:
        calcI in interface IBasis
        Parameters:
        i - Index of the first base
        j - Index of the second base
        k - Index of the third base
        l - Index of the fourth base