org.openscience.cdk.math.qm

## 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:
master
Belongs to CDK module:
qm
Keywords:
Gaussian basis set
Created on:
2001-06-14
• ### Constructor Summary

Constructors
Constructor and 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

Methods
Modifier and Type Method and 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).
• ### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
• ### 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