#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] |