Class GaussiansBasis

java.lang.Object
org.openscience.cdk.math.qm.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(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

    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
    Gets the dimension of the volume, which describes the base.
    double
    Gets the dimension of the volume, which describes the base.
    double
    Gets the dimension of the volume, which describes the base.
    double
    Gets the dimension of the volume, which describes the base.
    double
    Gets the dimension of the volume, which describes the base.
    double
    Gets the dimension of the volume, which describes the base.
    getPosition(int index)
    Gets the position of a base.
    int
    Gets the number of base vectors.
    double
    getValue(int index, double x, double y, double z)
    Calculates the function value an (x,y,z).
    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).

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

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

    • 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