XA Online Documentation, API "What mathematical function do I have"

What mathematical functions do I have

Index

Description

Name XAElim
Parameter(s) (double ***a, int n, int ipvt[])
Returns void [modifies double ***a, int *ipvt]
Global variables none
Calling none
File Gauss.h, gauss.c

XAElim performs a Gaussian elimination with backtracking and pivoting as mentioned in Gerald, Applied Numerical Analysis Release 5, Addison-Wesley. Parameters are a two dimensional square matrix consisting of double values, the number of matrix rows and a vector to store the pivoting information which has to have the same number of rows as the matrix. XAElim modifies the matrix and the vector. Before calling XAElim enough memory for the matrix and the pivoting vector must have been allocated.

Name XASolve
Parameter(s) (double ***a, int n, int ipvt[], double b[])
Returns void [modifies double *b]
Global variables none
Calling none
File Gauss.h, gauss.c

XASolve has to be called as soon as possible after XAElim to calculate the solution vector which is going to be stored in b. Previously, b contained the right hand side vector and was therefore modified. Memory allocation of n rows for b is necessary before XASolve is called.

Name XAMatrixElement
Parameter(s) (atom_ptr curr_atom, char *orbital_string, int m, double beta)
Returns double
Global variables none
Calling
XAData, XANextData, XACurrentN, XACurrentAlpha, XACurrentC, XAFactorial, XANormalizationConstant
File Gauss.h, gauss.c

This functions computes one of the elements of the matrix or the right hand side vector for the Gaussian elimination.

Name XAMatrix
Parameter(s) (atom_ptr curr_atom, int dimension, char symbol, double alpha)
Returns double **
Global variables none
Calling XAMatrixElement
File Gauss.h, gauss.c

XAMatrix calls XAMatrixElement to create a square matrix of dimension rows and columns. This matrix is needed for representing the left hand side for the Gaussian elimination to create a new pseudo orbitals with the orbital type symbol

Name XAVector
Parameter(s) (atom_ptr curr_atom, int dimension, char symbol, double alpha)
Returns double *
Global variables none
Calling XAMatrixElement
File Gauss.h, gauss.c

This function is almost equivalent to XAMatrix except that it computes the right hand side vector for the Gaussian elimination.

Name XAFactorial
Parameter(s) (int n)
Returns double
Global variables none
Calling none
File Integral.h, integral.c

XAFactorial computes the factorial of n and returns a double value in which the result is stored.

Name XANormalizationConstant
Parameter(s) (orbital_value_ptr curr_data)
Returns float
Global variables none
Calling XACurrentN, XACurrentAlpha, XAFactorial
File Integral.h, integral.c

The normalization constant is needed to transform clementi type orbitals into slater type to compute the values for the new pseudo orbital. Internally XA uses slater type orbitals for computation, but results are stored in clementi type to keep consistency with RHF table files.

Name XAPrimitiveBasis
Parameter(s) (orbital_value_ptr curr_data, float r)
Returns float
Global variables none
Calling XACurrentN, XACurrentAlpha, XANormalizationConstant
File Integral.h, integral.c

The primitive basis formula is currently not used in XA. Its definition is as follows

where N is a normalization factor, n is the principal quantum number, alpha is the orbital exponent and l is the azimuthal quantum number.

Name XARadialAtomicOrbital
Parameter(s) (atom_ptr curr_atom, char *orbital_string, float r)
Returns float
Global variables none
Calling XAData, XANextData, XACurrentC, XAPrimitiveBasis
File Integral.h, integral.c

RHF or analytic self-consistent-field atomic wave functions are approximations to conventional HF wave functions in which the radial atomic orbitals R[n][l] are expanded as a finite superposition of primitive radial functions

XARadialAtomicOrbital is currently not used in XA.

Name XASum
Parameter(s) (atom_ptr curr_atom, char *orbital_string, float r)
Returns float
Global variables none
Calling
XAData, XANextData, XACurrentAlpha, XACurrentC, XACurrentN, XANormalizationConstant
File Integral.h, integral.c

For the parameters orbital and r XASum calculates the sum according to the following formula

where P denotes an orbital. The values for the y axis of the graphs are computed by using this function.

Name XAIntegralElement
Parameter(s) (int arg, orbital_value_ptr *curr_data)
Returns float
Global variables none
Calling XACurrentAlpha, XACurrentC, XACurrentN, XANormalizationConstant, XAFactorial
File Integral.h, integral.c

The function XAIntegralElement is normally used in conjunction with XAIntegral. XAIntegral calls this procedure to compute integral parts which are created when orbital functions, which are equivalent to sums as mentioned in XASum, are multiplied. The first parameter gives the number of list elements of the second parameter.

Name XAIntegral
Parameter(s) (atom_ptr curr_atom, int arg, ...)
Returns float
Global variables none
Calling XAData, XANextData, XAIntegralElement
File Integral.h, integral.c

XAIntegral uses a variable parameter list to get a procedure which is able to compute the integral value for more than one orbital. This is often necessary to check atomic file data, or it is used in the design of pseudo orbitals. The ellipsis denotes that arg elements of the form char *orbital_string are expected.

The correctness of atomic data can be shown when the integral of an orbital multiplied with itself is 1.0. According to the definition, the result is 0.0 if it is multiplied with another orbital of the same type.


[return to home page][return to API home page ]
Reinhard Schaffner, © 1995-05-18