~ubuntu-branches/ubuntu/maverick/cdk/maverick

« back to all changes in this revision

Viewing changes to src/org/openscience/cdk/math/qm/IBasis.java

  • Committer: Bazaar Package Importer
  • Author(s): Paul Cager
  • Date: 2008-04-09 21:17:53 UTC
  • Revision ID: james.westby@ubuntu.com-20080409211753-46lmjw5z8mx5pd8d
Tags: upstream-1.0.2
ImportĀ upstreamĀ versionĀ 1.0.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $RCSfile$
 
2
 * $Author: egonw $
 
3
 * $Date: 2007-01-04 18:46:10 +0100 (Thu, 04 Jan 2007) $
 
4
 * $Revision: 7636 $
 
5
 * 
 
6
 * Copyright (C) 2001-2007  The Chemistry Development Kit (CDK) project
 
7
 * 
 
8
 * Contact: cdk-devel@lists.sf.net
 
9
 * 
 
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.
 
18
 * 
 
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.
 
23
 * 
 
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.
 
27
 *  
 
28
 */
 
29
package org.openscience.cdk.math.qm;
 
30
 
 
31
import org.openscience.cdk.math.Matrix;
 
32
import org.openscience.cdk.math.Vector;
 
33
 
 
34
/**
 
35
 * A basis set must implement this class.
 
36
 * 
 
37
 * @author  Stephan Michels <stephan@vern.chem.tu-berlin.de>
 
38
 * @cdk.created 2001-07-02
 
39
 */ 
 
40
public interface IBasis {
 
41
  /**
 
42
   * Gets the number of base vectors
 
43
   */
 
44
  public int getSize();
 
45
 
 
46
  /**
 
47
   * Gets the dimension of the volume, which describes the base.
 
48
   */
 
49
  public double getMinX();
 
50
 
 
51
  /**
 
52
   * Gets the dimension of the volume, which describes the base.
 
53
   */
 
54
  public double getMaxX();
 
55
 
 
56
  /**
 
57
   * Gets the dimension of the volume, which describes the base.
 
58
   */
 
59
  public double getMinY();
 
60
 
 
61
  /**
 
62
   * Gets the dimension of the volume, which describes the base.
 
63
   */
 
64
  public double getMaxY();
 
65
 
 
66
  /**
 
67
   * Gets the dimension of the volume, which describes the base.
 
68
   */
 
69
  public double getMinZ();
 
70
 
 
71
  /**
 
72
   * Gets the dimension of the volume, which describes the base.
 
73
   */
 
74
  public double getMaxZ();
 
75
 
 
76
  /**
 
77
   * Calculates the function value an (x,y,z).
 
78
   * @param index The number of the base 
 
79
   */
 
80
  public double getValue(int index, double x, double y, double z);
 
81
 
 
82
  /**
 
83
   * Calculates the function values.
 
84
   * @param index The number of the base 
 
85
   */
 
86
  public Vector getValues(int index, Matrix x);
 
87
 
 
88
  /**
 
89
   * Calculate the overlap integral S = &lt;phi_i|phi_j>.
 
90
   *
 
91
   * @param i Index of the first base
 
92
   * @param j Index of the second base
 
93
   */
 
94
  public double calcS(int i, int j);
 
95
 
 
96
  /**
 
97
   * Calculates the impulse J = -&lt;d/dr chi_i | d/dr chi_j>.
 
98
   *
 
99
   * @param i Index of the first base
 
100
   * @param j Index of the second base
 
101
   */
 
102
  public double calcJ(int i, int j);
 
103
 
 
104
  /**
 
105
   * Calculates the potential V = &lt;chi_i | 1/r | chi_j>.
 
106
   *
 
107
   * @param i Index of the first base
 
108
   * @param j Index of the second base
 
109
   */
 
110
  public double calcV(int i, int j);
 
111
 
 
112
  /**
 
113
   * Calculates a two eletron fout center integral
 
114
   * I = &ltchi_i chi_j | 1/r12 | chi_k chi_l >.
 
115
   *
 
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
 
120
   */
 
121
  public double calcI(int i, int j, int k, int l);
 
122
}