#include <gstring.h>

Public Member Functions | |
| void | String_Method_Optimization () | 
| void | reparam_and_getTangents_with_LST (double **fstring) | 
| void | init (string infilename, string xyzfile) | 
| void | init (string infilename, int runNum, int nprocs) | 
| double | min_rms_structure_distance (double *struct1, double *struct2, int natoms) | 
| void | print_string (int STEPS, double **allcoords, string xyzstring) | 
| void | print_string_clump (int STEPS, double grad, double **allcoords, string xyzstring) | 
| void | write_string_file (int iter) | 
| void | write_SVfile (int iter) | 
| void | write_geom_file (int iter) | 
| void | shift_node (int nnOld, int nnNew) | 
| void | build_fstring (double **fstring) | 
Public Attributes | |
| double ** | allcoords | 
Private Member Functions | |
| void | set_fsm_active (int nnR, int nnP) | 
| void | growth_iters (int max_iter, double &totalgrad, double &gradrms, double endenergy, string strfileg, int &tscontinue, double gaddmax, int osteps, int oesteps, double **dqa, double *dqmaga, double **ictan) | 
| void | opt_iters (int max_iter, double &totalgrad, double &gradrms, double endenergy, string strfileg, int &tscontinue, double gaddmax, int osteps, int oesteps, double **dqa, double *dqmaga, double **ictan, int finder, int climber, int do_tp, int &tp) | 
| int | isomer_init (string isofilename) | 
| void | set_ssm_bonds (ICoord &ic1) | 
| double | get_ssm_dqmag (double bdist) | 
| int | past_ts () | 
| Checks if string is past_ts. Used by SSM.   | |
| int | find_peaks (int type) | 
| Finds peaks, used by opt_iters to know which node to climb.   | |
| int | find_uphill (double cutoff) | 
| void | trim_string () | 
| void | trim_string (int nextmin) | 
| int | add_linear () | 
| int | break_planes_ssm (ICoord ic1) | 
| void | get_eigenv_bofill () | 
| void | get_eigenv_finite (int enode) | 
| calls get_eigenv_finite after constructing tangent   | |
| void | get_eigenv_finite (int enode, double **ictan) | 
| modifies hessian using RP direction   | |
| void | starting_string (double *dq, int nnodes) | 
| Grows the initial nodes for SE and DE. nnodes is 4 for DE and 3 for SE.   | |
| void | starting_string_dm (double *dq) | 
| int | addNode (int n1, int n2, int n3) | 
| int | addCNode (int n1) | 
| Add space node between n1-1 and n1.   | |
| void | add_last_node (int type) | 
| void | com_rotate_move (int iR, int iP, int iN, double ff) | 
| void | scan_r (int eigen) | 
| void | opt_tr () | 
| void | opt_r () | 
| void | opt_steps (double **dqa, double **ictan, int osteps, int oesteps) | 
| int | knnr_vs_opt (int n) | 
| void | ic_reparam_g (double **dqa, double *dqmaga) | 
| reparametrizes the string along the constraint during the growth phase, only used by DE   | |
| void | ic_reparam (double **dqa, double *dqmaga, int type) | 
| reparametrizes the string along the constraint after the growth phase   | |
| void | ic_reparam_h (double **dqa, double *dqmaga, int type) | 
| void | ic_reparam_dm (double **dqa, double *dqmaga, int type) | 
| void | ic_reparam_new (double **dqa, double *dqmaga, int type) | 
| void | tangent_1 (double *ictan) | 
| Calculates the DE internal coordinate tangent vector.   | |
| double | tangent_1b (double *ictan) | 
| bond tangent for SSM   | |
| void | get_tangents_1 (double **dqa, double *dqmaga, double **ictan) | 
| tangents pairwise, returns distance magnitudes also   | |
| void | get_tangents_1e (double **dqa, double *dqmaga, double **ictan) | 
| void | get_tangents_1g (double **dqa, double *dqmaga, double **ictan) | 
| Finds the tangents during the growth phase. Tangents referenced to left or right during growing phase.   | |
| void | get_tangents (double **dqa, double *dqmaga, double **ictan) | 
| void | get_tangents_dm (double **dqa, double *dqmaga, double **ictan) | 
| void | get_distances (double *dqmaga, double **ictan) | 
| void | get_distances_dm (double *dqmaga, double **ictan) | 
| int | close_dist_fix (int type) | 
| int | check_close_dist (int n, double *dist, int *newbonds) | 
| void | add_bonds (int nadd, int *newbonds) | 
| void | add_angles (int nadd, int *newangles) | 
| void | align_rxn () | 
| void | align_string (ICoord ic1, ICoord ic2) | 
| void | rotate_structure (double *xyz0, int *a) | 
| void | print_em (int nmaxp) | 
| void | set_prima (string pstring) | 
| int | read_string (string stringfile, double **coordsn, double *energies) | 
| void | print_string_clump_p (int STEPS, double grad, double **allcoords, string xyzstring) | 
| int | twin_peaks () | 
| int | find_ints () | 
| void | ic_reparam_cut (int min, double **dqa, double *dqmaga, int type) | 
| int | check_for_reaction_g (int type) | 
| int | check_for_reaction (int &wts, int &wint) | 
| void | general_init (string infilename) | 
| void | parameter_init (string infilename) | 
| void | structure_init (string xyzfile) | 
| void | allelse_init () | 
| void | restart_string (string pstring) | 
Private Attributes | |
| int | isRestart | 
| int | killcounter | 
| int | ngrowth | 
| int | growing | 
| int | oi | 
| int | endearly | 
| int | bondfrags | 
| int | isSSM | 
| int | hessSSM | 
| int | isFSM | 
| int | use_exact_climb | 
| int | ptsn | 
| double | newclimbscale | 
| int | nfound | 
| int | nbond | 
| int | nadd | 
| int | nbrk | 
| int | nangle | 
| int | ntors | 
| int * | bond | 
| int * | add | 
| int * | brk | 
| int * | angles | 
| double * | anglet | 
| int * | tors | 
| double * | tort | 
| int | n0 | 
| int | using_break_planes | 
| int | natoms | 
| int | ncpu | 
| int | runNum | 
| int | runend | 
| string | runends | 
| string | infile0 | 
| double ** | coords | 
| ICoord * | icoords | 
| double ** | tangents | 
| double ** | grads | 
| double ** | perp_grads | 
| int | climb | 
| int | find | 
| int | TSnode0 | 
| int | cTSnode | 
| double | lastdispr | 
| double | xdist | 
| int | nnew_bond | 
| int * | new_bond | 
| ICoord | bondsic | 
| ICoord | newic | 
| ICoord | intic | 
| ICoord | int2ic | 
| ICoord | newic_dm | 
| ICoord | intic_dm | 
| ICoord | int2ic_dm | 
| int | ic_reparam_steps | 
| int | pTSnode | 
| double * | pTSnodecoords | 
| int | nsplit | 
| double * | V_profile | 
| double | V0 | 
| int * | active | 
| int | nn | 
| int | nnR | 
| int | nnP | 
| int | nnmax | 
| int | nnmax0 | 
| double | SCALING | 
| int | INTERP_MODE | 
| int | GROWD | 
| string * | anames | 
| int * | anumbers | 
| double * | amasses | 
| string | stringfilename | 
| int | STEP_OPT_ITERS | 
| int | MAX_OPT_ITERS | 
| double | CONV_TOL | 
| double | ADD_NODE_TOL | 
| double | HESS_INIT | 
| int | CHARGE | 
| int | SPIN | 
| double | NODE_SPACING | 
| int | NUM_INTERP | 
| int | NUM_STEPS | 
| double | DQMAG_SSM_MAX | 
| double | DQMAG_SSM_MIN | 
| double | QDISTMAX | 
| double | PEAK4_EDIFF | 
| int | tstype | 
| double | prodelim | 
| int | lastOpt | 
| int | initialOpt | 
| int | gradJobCount | 
| int | gradFailCount | 
| Gradient | grad1 | 
| void GString::add_angles | ( | int | nadd, | |
| int * | newangles | |||
| ) |  [private] | 
        
| void GString::add_bonds | ( | int | nadd, | |
| int * | newbonds | |||
| ) |  [private] | 
        
| void GString::add_last_node | ( | int | type | ) |  [private] | 
        
| int GString::add_linear | ( | ) |  [private] | 
        
| int GString::addCNode | ( | int | n1 | ) |  [private] | 
        
Add space node between n1-1 and n1.
| int GString::addNode | ( | int | n1, | |
| int | n2, | |||
| int | n3 | |||
| ) |  [private] | 
        
Adds a node between n1 and n3. In SE, n2 is nnmax-1 arbitrarily because the added node is not "between" any node.
| void GString::align_rxn | ( | ) |  [private] | 
        
| void GString::allelse_init | ( | ) |  [private] | 
        
| int GString::break_planes_ssm | ( | ICoord | ic1 | ) |  [private] | 
        
| void GString::build_fstring | ( | double ** | fstring | ) | 
| int GString::check_close_dist | ( | int | n, | |
| double * | dist, | |||
| int * | newbonds | |||
| ) |  [private] | 
        
| int GString::check_for_reaction | ( | int & | wts, | |
| int & | wint | |||
| ) |  [private] | 
        
| int GString::check_for_reaction_g | ( | int | type | ) |  [private] | 
        
| int GString::close_dist_fix | ( | int | type | ) |  [private] | 
        
| void GString::com_rotate_move | ( | int | iR, | |
| int | iP, | |||
| int | iN, | |||
| double | ff | |||
| ) |  [private] | 
        
| int GString::find_ints | ( | ) |  [private] | 
        
| int GString::find_peaks | ( | int | type | ) |  [private] | 
        
Finds peaks, used by opt_iters to know which node to climb.
| int GString::find_uphill | ( | double | cutoff | ) |  [private] | 
        
| void GString::general_init | ( | string | infilename | ) |  [private] | 
        
| void GString::get_distances | ( | double * | dqmaga, | |
| double ** | ictan | |||
| ) |  [private] | 
        
| void GString::get_distances_dm | ( | double * | dqmaga, | |
| double ** | ictan | |||
| ) |  [private] | 
        
| void GString::get_eigenv_bofill | ( | ) |  [private] | 
        
| void GString::get_eigenv_finite | ( | int | enode, | |
| double ** | ictan | |||
| ) |  [private] | 
        
modifies hessian using RP direction
| void GString::get_eigenv_finite | ( | int | enode | ) |  [private] | 
        
calls get_eigenv_finite after constructing tangent
| double GString::get_ssm_dqmag | ( | double | bdist | ) |  [private] | 
        
| void GString::get_tangents | ( | double ** | dqa, | |
| double * | dqmaga, | |||
| double ** | ictan | |||
| ) |  [private] | 
        
| void GString::get_tangents_1 | ( | double ** | dqa, | |
| double * | dqmaga, | |||
| double ** | ictan | |||
| ) |  [private] | 
        
tangents pairwise, returns distance magnitudes also
| void GString::get_tangents_1e | ( | double ** | dqa, | |
| double * | dqmaga, | |||
| double ** | ictan | |||
| ) |  [private] | 
        
| void GString::get_tangents_1g | ( | double ** | dqa, | |
| double * | dqmaga, | |||
| double ** | ictan | |||
| ) |  [private] | 
        
Finds the tangents during the growth phase. Tangents referenced to left or right during growing phase.
| void GString::get_tangents_dm | ( | double ** | dqa, | |
| double * | dqmaga, | |||
| double ** | ictan | |||
| ) |  [private] | 
        
| void GString::growth_iters | ( | int | max_iter, | |
| double & | totalgrad, | |||
| double & | gradrms, | |||
| double | endenergy, | |||
| string | strfileg, | |||
| int & | tscontinue, | |||
| double | gaddmax, | |||
| int | osteps, | |||
| int | oesteps, | |||
| double ** | dqa, | |||
| double * | dqmaga, | |||
| double ** | ictan | |||
| ) |  [private] | 
        
Optimization and add node driver for SE and DE during growth phase. max_iter is the max number of iterations for the entire calculation (growth and optimiazation)
| void GString::ic_reparam | ( | double ** | dqa, | |
| double * | dqmaga, | |||
| int | type | |||
| ) |  [private] | 
        
reparametrizes the string along the constraint after the growth phase
rtype==0 using average
| void GString::ic_reparam_cut | ( | int | min, | |
| double ** | dqa, | |||
| double * | dqmaga, | |||
| int | type | |||
| ) |  [private] | 
        
| void GString::ic_reparam_dm | ( | double ** | dqa, | |
| double * | dqmaga, | |||
| int | type | |||
| ) |  [private] | 
        
| void GString::ic_reparam_g | ( | double ** | dqa, | |
| double * | dqmaga | |||
| ) |  [private] | 
        
reparametrizes the string along the constraint during the growth phase, only used by DE
| void GString::ic_reparam_h | ( | double ** | dqa, | |
| double * | dqmaga, | |||
| int | type | |||
| ) |  [private] | 
        
| void GString::ic_reparam_new | ( | double ** | dqa, | |
| double * | dqmaga, | |||
| int | type | |||
| ) |  [private] | 
        
| void GString::init | ( | string | infilename, | |
| int | run, | |||
| int | nprocs | |||
| ) | 
initializes starting variables related to the string.xyz file, ISOMERS file, nprocs, etc.
| void GString::init | ( | string | infilename, | |
| string | xyzfile | |||
| ) | 
| int GString::isomer_init | ( | string | isofilename | ) |  [private] | 
        
| int GString::knnr_vs_opt | ( | int | n | ) |  [private] | 
        
| double GString::min_rms_structure_distance | ( | double * | struct1, | |
| double * | struct2, | |||
| int | natoms | |||
| ) | 
| void GString::opt_iters | ( | int | max_iter, | |
| double & | totalgrad, | |||
| double & | gradrms, | |||
| double | endenergy, | |||
| string | strfileg, | |||
| int & | tscontinue, | |||
| double | gaddmax, | |||
| int | osteps, | |||
| int | oesteps, | |||
| double ** | dqa, | |||
| double * | dqmaga, | |||
| double ** | ictan, | |||
| int | finder, | |||
| int | climber, | |||
| int | do_tp, | |||
| int & | tp | |||
| ) |  [private] | 
        
Optimization driver for DE and SE during the optimization phase. climber=1 uses climbing image, finder=1 finds the exact TS
| void GString::opt_r | ( | ) |  [private] | 
        
| void GString::opt_steps | ( | double ** | dqa, | |
| double ** | ictan, | |||
| int | osteps, | |||
| int | oesteps | |||
| ) |  [private] | 
        
Optimizes each active node. osteps is the number of optimization steps for the nodes oesteps is the number of eigenvector following steps for the TS
| void GString::opt_tr | ( | ) |  [private] | 
        
| void GString::parameter_init | ( | string | infilename | ) |  [private] | 
        
| int GString::past_ts | ( | ) |  [private] | 
        
Checks if string is past_ts. Used by SSM.
| void GString::print_em | ( | int | nmaxp | ) |  [private] | 
        
| void GString::print_string | ( | int | STEPS, | |
| double ** | allcoords, | |||
| string | xyzstring | |||
| ) | 
| void GString::print_string_clump | ( | int | STEPS, | |
| double | grad, | |||
| double ** | allcoords, | |||
| string | xyzstring | |||
| ) | 
| void GString::print_string_clump_p | ( | int | STEPS, | |
| double | grad, | |||
| double ** | allcoords, | |||
| string | xyzstring | |||
| ) |  [private] | 
        
| int GString::read_string | ( | string | stringfile, | |
| double ** | coordsn, | |||
| double * | energies | |||
| ) |  [private] | 
        
| void GString::reparam_and_getTangents_with_LST | ( | double ** | fstring | ) | 
| void GString::restart_string | ( | string | pstring | ) |  [private] | 
        
| void GString::rotate_structure | ( | double * | xyz0, | |
| int * | a | |||
| ) |  [private] | 
        
| void GString::scan_r | ( | int | eigen | ) |  [private] | 
        
| void GString::set_fsm_active | ( | int | nnR, | |
| int | nnP | |||
| ) |  [private] | 
        
| void GString::set_prima | ( | string | pstring | ) |  [private] | 
        
| void GString::set_ssm_bonds | ( | ICoord & | ic1 | ) |  [private] | 
        
| void GString::shift_node | ( | int | nnOld, | |
| int | nnNew | |||
| ) | 
| void GString::starting_string | ( | double * | dq, | |
| int | nnodes | |||
| ) |  [private] | 
        
Grows the initial nodes for SE and DE. nnodes is 4 for DE and 3 for SE.
| void GString::starting_string_dm | ( | double * | dq | ) |  [private] | 
        
| void GString::String_Method_Optimization | ( | ) | 
The main driver for DE and SE methods, growth and optimization. Can only be called after coordinates have been set.
| void GString::structure_init | ( | string | xyzfile | ) |  [private] | 
        
Reads xyz file defined from commnand line
| void GString::tangent_1 | ( | double * | ictan | ) |  [private] | 
        
Calculates the DE internal coordinate tangent vector.
| double GString::tangent_1b | ( | double * | ictan | ) |  [private] | 
        
bond tangent for SSM
| void GString::trim_string | ( | int | nextmin | ) |  [private] | 
        
| void GString::trim_string | ( | ) |  [private] | 
        
| int GString::twin_peaks | ( | ) |  [private] | 
        
| void GString::write_geom_file | ( | int | iter | ) | 
| void GString::write_string_file | ( | int | iter | ) | 
| void GString::write_SVfile | ( | int | iter | ) | 
int* GString::active [private] | 
        
int* GString::add [private] | 
        
double GString::ADD_NODE_TOL [private] | 
        
| double** GString::allcoords | 
double* GString::amasses [private] | 
        
string* GString::anames [private] | 
        
int* GString::angles [private] | 
        
double* GString::anglet [private] | 
        
int* GString::anumbers [private] | 
        
int* GString::bond [private] | 
        
int GString::bondfrags [private] | 
        
ICoord GString::bondsic [private] | 
        
int* GString::brk [private] | 
        
int GString::CHARGE [private] | 
        
int GString::climb [private] | 
        
double GString::CONV_TOL [private] | 
        
double** GString::coords [private] | 
        
int GString::cTSnode [private] | 
        
double GString::DQMAG_SSM_MAX [private] | 
        
double GString::DQMAG_SSM_MIN [private] | 
        
int GString::endearly [private] | 
        
int GString::find [private] | 
        
Gradient GString::grad1 [private] | 
        
int GString::gradFailCount [private] | 
        
int GString::gradJobCount [private] | 
        
double** GString::grads [private] | 
        
int GString::GROWD [private] | 
        
int GString::growing [private] | 
        
double GString::HESS_INIT [private] | 
        
int GString::hessSSM [private] | 
        
int GString::ic_reparam_steps [private] | 
        
ICoord* GString::icoords [private] | 
        
string GString::infile0 [private] | 
        
int GString::initialOpt [private] | 
        
ICoord GString::int2ic [private] | 
        
ICoord GString::int2ic_dm [private] | 
        
int GString::INTERP_MODE [private] | 
        
ICoord GString::intic [private] | 
        
ICoord GString::intic_dm [private] | 
        
int GString::isFSM [private] | 
        
int GString::isRestart [private] | 
        
int GString::isSSM [private] | 
        
int GString::killcounter [private] | 
        
double GString::lastdispr [private] | 
        
int GString::lastOpt [private] | 
        
int GString::MAX_OPT_ITERS [private] | 
        
int GString::n0 [private] | 
        
int GString::nadd [private] | 
        
int GString::nangle [private] | 
        
int GString::natoms [private] | 
        
int GString::nbond [private] | 
        
int GString::nbrk [private] | 
        
int GString::ncpu [private] | 
        
int* GString::new_bond [private] | 
        
double GString::newclimbscale [private] | 
        
ICoord GString::newic [private] | 
        
ICoord GString::newic_dm [private] | 
        
int GString::nfound [private] | 
        
int GString::ngrowth [private] | 
        
int GString::nn [private] | 
        
int GString::nnew_bond [private] | 
        
int GString::nnmax [private] | 
        
int GString::nnmax0 [private] | 
        
int GString::nnP [private] | 
        
int GString::nnR [private] | 
        
double GString::NODE_SPACING [private] | 
        
int GString::nsplit [private] | 
        
int GString::ntors [private] | 
        
int GString::NUM_INTERP [private] | 
        
int GString::NUM_STEPS [private] | 
        
int GString::oi [private] | 
        
double GString::PEAK4_EDIFF [private] | 
        
double** GString::perp_grads [private] | 
        
double GString::prodelim [private] | 
        
int GString::ptsn [private] | 
        
int GString::pTSnode [private] | 
        
double* GString::pTSnodecoords [private] | 
        
double GString::QDISTMAX [private] | 
        
int GString::runend [private] | 
        
string GString::runends [private] | 
        
int GString::runNum [private] | 
        
double GString::SCALING [private] | 
        
int GString::SPIN [private] | 
        
int GString::STEP_OPT_ITERS [private] | 
        
string GString::stringfilename [private] | 
        
double** GString::tangents [private] | 
        
int* GString::tors [private] | 
        
double* GString::tort [private] | 
        
int GString::TSnode0 [private] | 
        
int GString::tstype [private] | 
        
int GString::use_exact_climb [private] | 
        
int GString::using_break_planes [private] | 
        
double GString::V0 [private] | 
        
double* GString::V_profile [private] | 
        
double GString::xdist [private] | 
        
 1.6.1