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 #ifdef NAMD_TCL
15 #include <tcl.h>
16 #endif
17 
18 class ConfigList;
19 class NamdState;
20 class Vector;
21 
22 class ScriptTcl {
23 public:
24  ScriptTcl();
25  ~ScriptTcl();
26  void eval(char *script);
27  void load(char *scriptFile);
28 #ifdef NAMD_TCL
29  void run();
30  static int tclsh(int, char **);
31  void tclmain(int, char **);
32  Tcl_Interp* get_tcl_interp() {return interp;}
33 #else
34  void run(char *scriptFile);
35 #endif
36  void measure(Vector *);
37 private:
38  char *scriptFile;
39  ConfigList *config;
40  NamdState *state;
41  void suspend(void);
42  int runWasCalled;
43  int initWasCalled;
44  void barrier();
45  void initcheck();
46  void reinitAtoms(const char *basename=0);
47  struct SimpleBroadcastObjectWrapper;
48  SimpleBroadcastObjectWrapper *scriptBarrierWrapper;
49  int barrierStep;
50  void runController(int task);
51  void setParameter(const char* param, const char* value);
52  void setParameter(const char* param, int value);
53  friend class DataExchanger;
54  int eval(const char *script, const char **resultPtr);
55 #ifdef NAMD_TCL
56  friend class Controller;
57  friend class GlobalMasterTcl;
58  friend class colvarproxy_namd;
59  Tcl_Interp *interp;
60  static int Tcl_python(ClientData, Tcl_Interp *, int, const char **);
61  static int Tcl_startup(ClientData, Tcl_Interp *, int, const char **);
62  static int Tcl_exit(ClientData, Tcl_Interp *, int, const char **);
63  static int Tcl_abort(ClientData, Tcl_Interp *, int, const char **);
64  static int Tcl_numPes(ClientData, Tcl_Interp *, int, const char **);
65  static int Tcl_numNodes(ClientData, Tcl_Interp *, int, const char **);
66  static int Tcl_numPhysicalNodes(ClientData, Tcl_Interp *, int, const char **);
67  static int Tcl_numReplicas(ClientData, Tcl_Interp *, int, const char **);
68  static int Tcl_myReplica(ClientData, Tcl_Interp *, int, const char **);
69  static int Tcl_replicaEval(ClientData, Tcl_Interp *, int, const char **);
70  static int Tcl_replicaYield(ClientData, Tcl_Interp *, int, const char **);
71  static int Tcl_replicaSendrecv(ClientData, Tcl_Interp *, int, const char **);
72  static int Tcl_replicaSend(ClientData, Tcl_Interp *, int, const char **);
73  static int Tcl_replicaRecv(ClientData, Tcl_Interp *, int, const char **);
74  static int Tcl_replicaBarrier(ClientData, Tcl_Interp *, int, const char **);
75  static int Tcl_replicaAtomSendrecv(ClientData, Tcl_Interp *, int, const char **);
76  static int Tcl_replicaAtomSend(ClientData, Tcl_Interp *, int, const char **);
77  static int Tcl_replicaAtomRecv(ClientData, Tcl_Interp *, int, const char **);
78  static int Tcl_stdout(ClientData, Tcl_Interp *, int, const char **);
79  static int Tcl_print(ClientData, Tcl_Interp *, int, const char **);
80  static int Tcl_config(ClientData, Tcl_Interp *, int, const char **);
81  static int Tcl_isset_config(ClientData, Tcl_Interp *, int, const char **);
82  static int Tcl_istrue_config(ClientData, Tcl_Interp *, int, const char **);
83  static int Tcl_param(ClientData, Tcl_Interp *, int, const char **);
84  static int Tcl_isset_param(ClientData, Tcl_Interp *, int, const char **);
85  static int Tcl_istrue_param(ClientData, Tcl_Interp *, int, const char **);
86  static int Tcl_reinitvels(ClientData, Tcl_Interp *, int, const char **);
87  static int Tcl_rescalevels(ClientData, Tcl_Interp *, int, const char **);
88  static int Tcl_run(ClientData, Tcl_Interp *, int, const char **);
89  static int Tcl_minimize(ClientData, Tcl_Interp *, int, const char **);
90  static int Tcl_move(ClientData, Tcl_Interp *, int, const char **);
91  static int Tcl_moveallby(ClientData, Tcl_Interp *, int, const char **);
92  static int Tcl_output(ClientData, Tcl_Interp *, int, const char **);
93  static int Tcl_measure(ClientData, Tcl_Interp *, int, const char **);
94  static int Tcl_colvarbias(ClientData, Tcl_Interp *, int, const char **);
95  static int Tcl_colvarvalue(ClientData, Tcl_Interp *, int, const char **);
96  static int Tcl_colvars(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
97  static int Tcl_colvarfreq(ClientData, Tcl_Interp *, int, const char **);
98  static int Tcl_checkpoint(ClientData, Tcl_Interp *, int, const char **);
99  static int Tcl_revert(ClientData, Tcl_Interp *, int, const char **);
100  static int Tcl_checkpointReplica(ClientData, Tcl_Interp *, int, const char **);
101  static int Tcl_replicaDcdFile(ClientData, Tcl_Interp *, int, const char **);
102  static int Tcl_replicaDcdSelectFile(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  static int Tcl_gpuGlobalCreateClient(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj* const objv[]);
113  static int Tcl_gpuGlobalRemoveClient(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj* const objv[]);
114  static int Tcl_gpuGlobalUpdateClient(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj* const objv[]);
115  char *callbackname;
116  void doCallback(const char *labels, const char *data);
117  int doCallback() { return ! ! callbackname; }
118  const char *measure_command;
119  int measure_result;
120 #endif
121 };
122 
123 #endif
124 
Tcl_Interp * get_tcl_interp()
Definition: ScriptTcl.h:32
void load(char *scriptFile)
Definition: ScriptTcl.C:2420
Communication between colvars and NAMD (implementation of colvarproxy)
Definition: Vector.h:72
void run()
Definition: ScriptTcl.C:2437
void tclmain(int, char **)
Definition: ScriptTcl.C:2403
void eval(char *script)
Definition: ScriptTcl.C:2363
static int tclsh(int, char **)
Definition: ScriptTcl.C:2381
void measure(Vector *)
Definition: ScriptTcl.C:1400