psi::extrema::internals Class Reference

Abstract internal coordinate derived class. More...

#include <internals.h>

Inheritance diagram for psi::extrema::internals:

psi::extrema::coord_base psi::extrema::coord_base_carts psi::extrema::math_tools psi::extrema::deloc psi::extrema::zmat

List of all members.

Protected Member Functions

 internals ()
 Dummy constructor.
void mem_alloc ()
 Allocates memory.
 ~internals ()
 Destructor. Frees memory.
virtual void compute_B ()=0
 Derived classes must provide a function to compute the B matrix though calls to B_row...() functions.
virtual void cart_to_internal (double **)=0
void back_transform (double *, double *)
 Performs iterative back transformation from internals to cartesians.
double * B_row_bond (double *, int, int)
 Computes a row of B corrresponding to a simple bonding coordinate.
double * B_row_angle (double *, int, int, int)
 Computes a row of B corresponding to a simple bending coordinate.
double * B_row_tors (double *, int, int, int, int)
 Computes row of B matrix corresponding to a simple torsion coordinate.
void print_B ()
 Prints the B matrix.
void compute_G ()
 Computes the G=B.B^t matrix.
void compute_A ()
 Computes the A=u.B^t.G matrix. ---------------------------------------------------------------------------.
virtual void grad_trans ()
 Performs gradient transformation from cartesians to internals.

Protected Attributes

int fnum_coords
int B_dim
double ** full_geom
double * fcoords
double * fcoords_old
double * fgrads
double ** B
double ** B_red
double ** G
double ** A
double ** u


Detailed Description

Abstract internal coordinate derived class.

Member functions and data common to internal coordinate types. Primarily, this class contains the B matrix and related matrices, functions for computing these matrices, and functions which apply these matrices in gradient and coordinate transformations

"full" variables refer to the complete set of coordinates, including any equivalent coordinates. In the iterative back transformation to cartesians, the complete set of coordinates is utilized.


Constructor & Destructor Documentation

psi::extrema::internals::internals (  )  [inline, protected]

Dummy constructor.

This is a dummy constructor which exists to make compilers happy. It does nothing. The actual constructor may depend on data which is not know when a derived class is initialized and may be called later in that class's constructor.


Member Function Documentation

void internals::mem_alloc (  )  [protected]

Allocates memory.

Must be called by top-level class once dimensions determined.

Reimplemented from psi::extrema::coord_base.

void internals::back_transform ( double *  c_new,
double *  c_old 
) [protected]

Performs iterative back transformation from internals to cartesians.

This function requires the full array of coordinate values.

Parameters:
*c_new new internal coordinate array
*c_old old internal coordinate array

double * internals::B_row_bond ( double *  carr,
int  atom1,
int  atom2 
) [protected]

Computes a row of B corrresponding to a simple bonding coordinate.

Parameters:
*carr full cartesian coordinate array
atom1 reference atom 1
atom2 atom bonded to 1

double * internals::B_row_angle ( double *  c_arr,
int  atom1,
int  atom3,
int  atom2 
) [protected]

Computes a row of B corresponding to a simple bending coordinate.

Parameters:
*c_arr full cartesian coordinate array
atom1 reference atom 1
atom3 atom bonded to 1
atom2 atom defining angle 1-3-2

double * internals::B_row_tors ( double *  c_arr,
int  atom1,
int  atom2,
int  atom3,
int  atom4 
) [protected]

Computes row of B matrix corresponding to a simple torsion coordinate.

Parameters:
*c_arr full cartesian array
atom1 reference atom 1
atom2 atom bonded to 1
atom3 atom defining angle 1-2-3
atom4 atom defining torsion 1-2-3-4


Member Data Documentation

full number of coordinates

fnum_coords for zmat, num_coords for deloc

double** psi::extrema::internals::full_geom [protected]

full geometry (including dummy atoms)

double * psi::extrema::internals::fcoords [protected]

full set of internal coordinate values

full set of previous internal coordinate values

double * psi::extrema::internals::fgrads [protected]

full set of internal coordinate gradients

double ** psi::extrema::internals::B [protected]

the B matrix

double ** psi::extrema::internals::B_red [protected]

reduced dimension B matrix (no equivalent coords)

double ** psi::extrema::internals::G [protected]

the G=B.B^t matrix

double ** psi::extrema::internals::A [protected]

the A=u.B^t.G matrix

double ** psi::extrema::internals::u [protected]

the u matrix (triplets of inverse atomic masses)


The documentation for this class was generated from the following files:

Generated on Mon Dec 21 14:14:49 2009 for PSI by  doxygen 1.5.6