Package org.openscience.cdk.math.qm
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()
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 potentialsdouble
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 impulsedouble
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).
-
-
-
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.
-
getMinX
public double getMinX()
Gets the dimension of the volume, which describes the base.
-
getMaxX
public double getMaxX()
Gets the dimension of the volume, which describes the base.
-
getMinY
public double getMinY()
Gets the dimension of the volume, which describes the base.
-
getMaxY
public double getMaxY()
Gets the dimension of the volume, which describes the base.
-
getMinZ
public double getMinZ()
Gets the dimension of the volume, which describes the base.
-
getMaxZ
public double getMaxZ()
Gets the dimension of the volume, which describes the base.
-
getValue
public double getValue(int index, double x, double y, double z)
Calculates the function value an (x,y,z).
-
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>.
-
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>.
-
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 basej
- Index of the second baserN
- Position the core potentialZ
- Atomic number of the nucleous
-
calcV
public double calcV(int i, int j)
Calculates the core potential. It use a 10 point Simpson formula.
-
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 >.
-
-