GString Class Reference

#include <gstring.h>

Collaboration diagram for GString:
Collaboration graph
[legend]

List of all members.

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
ICoordicoords
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

Member Function Documentation

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::align_string ( ICoord  ic1,
ICoord  ic2 
) [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  ) 

Member Data Documentation

int* GString::active [private]
int* GString::add [private]
double GString::ADD_NODE_TOL [private]
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]
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]
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]
string GString::infile0 [private]
int GString::initialOpt [private]
int GString::INTERP_MODE [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]
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]
double GString::V0 [private]
double* GString::V_profile [private]
double GString::xdist [private]

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Defines

Generated on 18 Dec 2016 by  doxygen 1.6.1