3
* $Date: 2007-01-04 18:46:10 +0100 (Thu, 04 Jan 2007) $
6
* Copyright (C) 2001-2007 The Chemistry Development Kit (CDK) project
8
* Contact: cdk-devel@lists.sf.net
10
* This program is free software; you can redistribute it and/or
11
* modify it under the terms of the GNU Lesser General Public License
12
* as published by the Free Software Foundation; either version 2.1
13
* of the License, or (at your option) any later version.
14
* All we ask is that proper credit is given for our work, which includes
15
* - but is not limited to - adding the above copyright notice to the beginning
16
* of your source code files, and to any copyright notice that you may distribute
17
* with programs based on this work.
19
* This program is distributed in the hope that it will be useful,
20
* but WITHOUT ANY WARRANTY; without even the implied warranty of
21
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
* GNU Lesser General Public License for more details.
24
* You should have received a copy of the GNU Lesser General Public License
25
* along with this program; if not, write to the Free Software
26
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
29
package org.openscience.cdk.math.qm;
31
import org.openscience.cdk.math.Matrix;
32
import org.openscience.cdk.math.Vector;
35
* A basis set must implement this class.
37
* @author Stephan Michels <stephan@vern.chem.tu-berlin.de>
38
* @cdk.created 2001-07-02
40
public interface IBasis {
42
* Gets the number of base vectors
47
* Gets the dimension of the volume, which describes the base.
49
public double getMinX();
52
* Gets the dimension of the volume, which describes the base.
54
public double getMaxX();
57
* Gets the dimension of the volume, which describes the base.
59
public double getMinY();
62
* Gets the dimension of the volume, which describes the base.
64
public double getMaxY();
67
* Gets the dimension of the volume, which describes the base.
69
public double getMinZ();
72
* Gets the dimension of the volume, which describes the base.
74
public double getMaxZ();
77
* Calculates the function value an (x,y,z).
78
* @param index The number of the base
80
public double getValue(int index, double x, double y, double z);
83
* Calculates the function values.
84
* @param index The number of the base
86
public Vector getValues(int index, Matrix x);
89
* Calculate the overlap integral S = <phi_i|phi_j>.
91
* @param i Index of the first base
92
* @param j Index of the second base
94
public double calcS(int i, int j);
97
* Calculates the impulse J = -<d/dr chi_i | d/dr chi_j>.
99
* @param i Index of the first base
100
* @param j Index of the second base
102
public double calcJ(int i, int j);
105
* Calculates the potential V = <chi_i | 1/r | chi_j>.
107
* @param i Index of the first base
108
* @param j Index of the second base
110
public double calcV(int i, int j);
113
* Calculates a two eletron fout center integral
114
* I = <chi_i chi_j | 1/r12 | chi_k chi_l >.
116
* @param i Index of the first base
117
* @param j Index of the second base
118
* @param k Index of the third base
119
* @param l Index of the fourth base
121
public double calcI(int i, int j, int k, int l);