#include <internals.h>

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 |
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.
| 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.
| 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.
| *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.
| *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.
| *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.
| *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 |
int psi::extrema::internals::fnum_coords [protected] |
full number of coordinates
int psi::extrema::internals::B_dim [protected] |
double** psi::extrema::internals::full_geom [protected] |
full geometry (including dummy atoms)
double * psi::extrema::internals::fcoords [protected] |
full set of internal coordinate values
double * psi::extrema::internals::fcoords_old [protected] |
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)
1.5.6