NAMD
ScriptTcl.h
Go to the documentation of this file.
1 
7 /*
8  Modifies SimParameters settings during run.
9 */
10 
11 #ifndef SCRIPTTCL_H
12 #define SCRIPTTCL_H
13 
14 #include "converse.h"
15 #include "NamdTypes.h"
16 #include "Broadcasts.h"
17 
18 #ifdef NAMD_TCL
19 #include <tcl.h>
20 #endif
21 
22 class ConfigList;
23 class NamdState;
24 
25 class ScriptTcl {
26 public:
27  ScriptTcl();
28  ~ScriptTcl();
29  void eval(char *script);
30  void load(char *scriptFile);
31 #ifdef NAMD_TCL
32  void run();
33  static int tclsh(int, char **);
34  void tclmain(int, char **);
35 #else
36  void run(char *scriptFile);
37 #endif
38  void measure(Vector *);
39 private:
40  char *scriptFile;
41  ConfigList *config;
42  NamdState *state;
43  void suspend(void);
44  int runWasCalled;
45  int initWasCalled;
46  void barrier();
47  void initcheck();
48  void reinitAtoms(const char *basename=0);
49  SimpleBroadcastObject<int> scriptBarrier;
50  int barrierStep;
51  void runController(int task);
52  void setParameter(const char* param, const char* value);
53  void setParameter(const char* param, int value);
54  friend class DataExchanger;
55  int eval(const char *script, const char **resultPtr);
56 #ifdef NAMD_TCL
57  friend class Controller;
58  friend class GlobalMasterTcl;
59  friend class colvarproxy_namd;
60  Tcl_Interp *interp;
61  static int Tcl_python(ClientData, Tcl_Interp *, int, const char **);
62  static int Tcl_startup(ClientData, Tcl_Interp *, int, const char **);
63  static int Tcl_exit(ClientData, Tcl_Interp *, int, const char **);
64  static int Tcl_abort(ClientData, Tcl_Interp *, int, const char **);
65  static int Tcl_numPes(ClientData, Tcl_Interp *, int, const char **);
66  static int Tcl_numNodes(ClientData, Tcl_Interp *, int, const char **);
67  static int Tcl_numPhysicalNodes(ClientData, Tcl_Interp *, int, const char **);
68  static int Tcl_numReplicas(ClientData, Tcl_Interp *, int, const char **);
69  static int Tcl_myReplica(ClientData, Tcl_Interp *, int, const char **);
70  static int Tcl_replicaEval(ClientData, Tcl_Interp *, int, const char **);
71  static int Tcl_replicaYield(ClientData, Tcl_Interp *, int, const char **);
72  static int Tcl_replicaSendrecv(ClientData, Tcl_Interp *, int, const char **);
73  static int Tcl_replicaSend(ClientData, Tcl_Interp *, int, const char **);
74  static int Tcl_replicaRecv(ClientData, Tcl_Interp *, int, const char **);
75  static int Tcl_replicaBarrier(ClientData, Tcl_Interp *, int, const char **);
76  static int Tcl_replicaAtomSendrecv(ClientData, Tcl_Interp *, int, const char **);
77  static int Tcl_replicaAtomSend(ClientData, Tcl_Interp *, int, const char **);
78  static int Tcl_replicaAtomRecv(ClientData, Tcl_Interp *, int, const char **);
79  static int Tcl_stdout(ClientData, Tcl_Interp *, int, const char **);
80  static int Tcl_print(ClientData, Tcl_Interp *, int, const char **);
81  static int Tcl_config(ClientData, Tcl_Interp *, int, const char **);
82  static int Tcl_isset_config(ClientData, Tcl_Interp *, int, const char **);
83  static int Tcl_istrue_config(ClientData, Tcl_Interp *, int, const char **);
84  static int Tcl_param(ClientData, Tcl_Interp *, int, const char **);
85  static int Tcl_isset_param(ClientData, Tcl_Interp *, int, const char **);
86  static int Tcl_istrue_param(ClientData, Tcl_Interp *, int, const char **);
87  static int Tcl_reinitvels(ClientData, Tcl_Interp *, int, const char **);
88  static int Tcl_rescalevels(ClientData, Tcl_Interp *, int, const char **);
89  static int Tcl_run(ClientData, Tcl_Interp *, int, const char **);
90  static int Tcl_minimize(ClientData, Tcl_Interp *, int, const char **);
91  static int Tcl_move(ClientData, Tcl_Interp *, int, const char **);
92  static int Tcl_moveallby(ClientData, Tcl_Interp *, int, const char **);
93  static int Tcl_output(ClientData, Tcl_Interp *, int, const char **);
94  static int Tcl_measure(ClientData, Tcl_Interp *, int, const char **);
95  static int Tcl_colvarbias(ClientData, Tcl_Interp *, int, const char **);
96  static int Tcl_colvarvalue(ClientData, Tcl_Interp *, int, const char **);
97  static int Tcl_colvars(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
98  static int Tcl_colvarfreq(ClientData, Tcl_Interp *, int, const char **);
99  static int Tcl_checkpoint(ClientData, Tcl_Interp *, int, const char **);
100  static int Tcl_revert(ClientData, Tcl_Interp *, int, const char **);
101  static int Tcl_checkpointReplica(ClientData, Tcl_Interp *, int, const char **);
102  static int Tcl_replicaDcdFile(ClientData, Tcl_Interp *, int, const char **);
103  static int Tcl_callback(ClientData, Tcl_Interp *, int, const char **);
104  static int Tcl_reinitatoms(ClientData, Tcl_Interp *, int, const char **);
105  static int Tcl_coorfile(ClientData, Tcl_Interp *, int, const char **);
106  static int Tcl_dumpbench(ClientData, Tcl_Interp *, int, const char **);
107  static int Tcl_consForceConfig(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
108  static int Tcl_reloadCharges(ClientData, Tcl_Interp *, int, const char **);
109  static int Tcl_reloadGridforceGrid(ClientData, Tcl_Interp *, int, const char **); // BEGIN, END gf
110  static int Tcl_updateGridScale(ClientData, Tcl_Interp *, int, const char **); // BEGIN, END gf
111  static int Tcl_reloadStructure(ClientData, Tcl_Interp *, int, const char **);
112  char *callbackname;
113  void doCallback(const char *labels, const char *data);
114  int doCallback() { return ! ! callbackname; }
115  const char *measure_command;
116  int measure_result;
117 #endif
118 };
119 
120 #endif
121 
void load(char *scriptFile)
Definition: ScriptTcl.C:2304
Communication between colvars and NAMD (implementation of colvarproxy)
Definition: Vector.h:64
void run()
Definition: ScriptTcl.C:2321
void tclmain(int, char **)
Definition: ScriptTcl.C:2287
void eval(char *script)
Definition: ScriptTcl.C:2247
static int tclsh(int, char **)
Definition: ScriptTcl.C:2265
void measure(Vector *)
Definition: ScriptTcl.C:1387