psi::extrema::coord_base Class Reference

First level of abstract coordinate classes. More...

#include <coord_base.h>

Inheritance diagram for psi::extrema::coord_base:

psi::extrema::coord_base_carts psi::extrema::math_tools psi::extrema::internals psi::extrema::deloc psi::extrema::zmat

List of all members.

Protected Member Functions

 coord_base ()
 Coord_base constructor.
 ~coord_base ()
 Destructor. Memory is freed and io is stopped.
void mem_alloc ()
 Allocates memory.
void parse_input ()
 Parses input for info common to all coordinate types.
void print_Hi ()
 prints inverse of hessian matrix.
void print_H ()
 prints hessian matrix.
virtual void read_opt ()
 Reads from opt.dat().
virtual void write_opt ()
 Writes to opt.dat().
void update_Hi ()
 Updates inverse hessian.
void grad_test ()
 Tests for convergence of cartesian gradients.
virtual void initial_Hi ()=0
 Derived classes must provide a inverse Hessian guess function.
void H_test ()
 Computes hessian and its eigenvalues.

Protected Attributes

int iteration
int num_coords
int grad_max
int print_lvl
int do_deriv
int do_opt
int angle_abort
double * coords
double * grads
double * atomic_nums
double ** Hi
double * coords_old
double * grads_old
double ** Hi_old
double * coord_write
const char * update
char ** felement


Detailed Description

First level of abstract coordinate classes.

The coord_base class contains data and functions common to all coordinate types. All coordinate types derive from this class. Member data includes generic coordinates and gradients, cartesians and cartesian gradients, a generic Hessian, information form previous iterations ("old" variables), and basic user suppied parameters. Generic functions for coordinate data manipulations are members of this class.

"generic" variables hold values and no information regarding coordinates to which they correspond. Classes deriving from this class determine the actual coordinate type and are responsible for proper handling of these variables.


Constructor & Destructor Documentation

coord_base::coord_base (  )  [protected]

Coord_base constructor.

Parses input


Member Function Documentation

void coord_base::mem_alloc (  )  [protected]

Allocates memory.

Must be called once number of optimized coordinates is determined.

Reimplemented in psi::extrema::internals.

void coord_base::read_opt (  )  [protected, virtual]

Reads from opt.dat().

Reads previous coordinates, gradients, and hessian inverse from opt.dat.

void coord_base::write_opt (  )  [protected, virtual]

Writes to opt.dat().

Writes coordinates, gradients, and hessian inverse to opt.dat.

void coord_base::update_Hi (  )  [protected]

Updates inverse hessian.

Interface for math_tools update functions.


Member Data Documentation

current iteration

number of coordinates which are actually optimized

max allowable gradient is 10^-(grad_max)

print level

are we doing derivatives

are we doing optimization

die if bad angle

double* psi::extrema::coord_base::coords [protected]

generic coordinate array

double * psi::extrema::coord_base::grads [protected]

generic gradient array

atomic numbers

double ** psi::extrema::coord_base::Hi [protected]

generic inverse hessian matrix

generic coordinates from previous iteration

generic gradients from previous iteration

double ** psi::extrema::coord_base::Hi_old [protected]

generic hessian inverse

holds coordinate values prior to optimization step until opt.dat is written

const char* psi::extrema::coord_base::update [protected]

Note:
"generic" variables hold values and no information regarding coordinates to which they correspond. Classes deriving from this class determine the actual coordinate type and are responsible for proper handling of these variables the hessian inverse update method

the full list of element names (including dummy atoms)


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