Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

ScriptTcl Class Reference

#include <ScriptTcl.h>

List of all members.

Public Member Functions

 ScriptTcl ()
 ~ScriptTcl ()
void load (char *scriptFile)
void run (char *scriptFile)
void measure (Vector *)

Friends

class Controller
class GlobalMasterTcl


Constructor & Destructor Documentation

ScriptTcl::ScriptTcl  ) 
 

Definition at line 772 of file ScriptTcl.C.

References DebugM, register_cb(), scriptBarrierTag, and tcl_vector_math_init().

00772                      : scriptBarrier(scriptBarrierTag) {
00773   DebugM(3,"Constructing ScriptTcl\n");
00774 #ifdef NAMD_TCL
00775   interp = 0;
00776   callbackname = 0;
00777 #endif
00778   state = new NamdState;
00779   barrierStep = 0;
00780 
00781   molfile_dcdplugin_init();
00782   molfile_dcdplugin_register(NULL, register_cb);
00783 
00784   runWasCalled = 0;
00785 
00786 #ifdef NAMD_TCL
00787   config = new ConfigList;
00788 
00789   // Create interpreter
00790   interp = Tcl_CreateInterp();
00791   tcl_vector_math_init(interp);
00792   Tcl_CreateCommand(interp, "exit", Tcl_exit,
00793     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00794   Tcl_CreateCommand(interp, "abort", Tcl_abort,
00795     (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
00796   Tcl_CreateCommand(interp, "print", Tcl_print,
00797     (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL);
00798   Tcl_CreateCommand(interp, "unknown", Tcl_config,
00799     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00800   Tcl_CreateCommand(interp, "param", Tcl_config,
00801     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00802   Tcl_CreateCommand(interp, "run", Tcl_run,
00803     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00804   Tcl_CreateCommand(interp, "minimize", Tcl_minimize,
00805     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00806   Tcl_CreateCommand(interp, "move", Tcl_move,
00807     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00808   Tcl_CreateCommand(interp, "moveallby", Tcl_moveallby,
00809     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00810   Tcl_CreateCommand(interp, "output", Tcl_output,
00811     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00812   Tcl_CreateCommand(interp, "measure", Tcl_measure,
00813     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00814   Tcl_CreateCommand(interp, "checkpoint", Tcl_checkpoint,
00815     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00816   Tcl_CreateCommand(interp, "revert", Tcl_revert,
00817     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00818   Tcl_CreateCommand(interp, "reinitvels", Tcl_reinitvels,
00819     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00820   Tcl_CreateCommand(interp, "rescalevels", Tcl_rescalevels,
00821     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00822   Tcl_CreateCommand(interp, "reinitatoms", Tcl_reinitatoms,
00823     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00824   Tcl_CreateCommand(interp, "callback", Tcl_callback,
00825     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00826   Tcl_CreateCommand(interp, "coorfile", Tcl_coorfile,
00827     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00828   Tcl_CreateCommand(interp, "dumpbench", Tcl_dumpbench,
00829     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00830   Tcl_CreateObjCommand(interp, "consForceConfig", Tcl_consForceConfig, 
00831     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00832   Tcl_CreateCommand(interp, "reloadCharges", Tcl_reloadCharges,
00833     (ClientData) this, (Tcl_CmdDeleteProc *) NULL);
00834 #endif
00835 
00836 }

ScriptTcl::~ScriptTcl  ) 
 

Definition at line 882 of file ScriptTcl.C.

References DebugM.

00882                       {
00883   DebugM(3,"Destructing ScriptTcl\n");
00884 #ifdef NAMD_TCL
00885   if ( interp ) Tcl_DeleteInterp(interp);
00886   delete [] callbackname;
00887 #endif
00888 
00889   molfile_dcdplugin_fini();
00890 }


Member Function Documentation

void ScriptTcl::load char *  scriptFile  ) 
 

Definition at line 838 of file ScriptTcl.C.

References NAMD_bug(), and NAMD_die().

Referenced by after_backend_init().

00838                                      {
00839 
00840 #ifdef NAMD_TCL
00841   int code = Tcl_EvalFile(interp,scriptFile);
00842   const char *result = Tcl_GetStringResult(interp);
00843   if (*result != 0) CkPrintf("TCL: %s\n",result);
00844   if (code != TCL_OK) {
00845     const char *errorInfo = Tcl_GetVar(interp,"errorInfo",0);
00846     NAMD_die(errorInfo);
00847   }
00848 #else
00849   NAMD_bug("ScriptTcl::load called without Tcl.");
00850 #endif
00851 
00852 }

void ScriptTcl::measure Vector  ) 
 

Definition at line 447 of file ScriptTcl.C.

References Node::coords, Measure::createCommands(), Measure::deleteCommands(), and Node::Object().

Referenced by Output::coordinate().

00447                                  {
00448   Measure::createCommands(interp);
00449   Node::Object()->coords = c;
00450   measure_result = Tcl_Eval(interp,measure_command);
00451   Node::Object()->coords = 0;
00452   Measure::deleteCommands(interp);
00453 }

void ScriptTcl::run char *  scriptFile  ) 
 

Definition at line 854 of file ScriptTcl.C.

References SimParameters::minimizeCGOn, NAMD_die(), Node::Object(), SCRIPT_END, SCRIPT_MINIMIZE, SCRIPT_RUN, Node::simParameters, and simParams.

Referenced by after_backend_init().

00854                                     {
00855 
00856 #ifdef NAMD_TCL
00857   int code = Tcl_EvalFile(interp,scriptFile);
00858   const char *result = Tcl_GetStringResult(interp);
00859   if (*result != 0) CkPrintf("TCL: %s\n",result);
00860   if (code != TCL_OK) {
00861     const char *errorInfo = Tcl_GetVar(interp,"errorInfo",0);
00862     NAMD_die(errorInfo);
00863   }
00864 
00865 #else
00866   if ( NULL == scriptFile || NULL == (config = new ConfigList(scriptFile)) ) {
00867     NAMD_die("Simulation config file is empty.");
00868   }
00869 #endif
00870 
00871   if (runWasCalled == 0) {
00872     initcheck();
00873     SimParameters *simParams = Node::Object()->simParameters;
00874     if ( simParams->minimizeCGOn ) runController(SCRIPT_MINIMIZE);
00875     else runController(SCRIPT_RUN);
00876   }
00877 
00878   runController(SCRIPT_END);
00879 
00880 }


Friends And Related Function Documentation

friend class Controller [friend]
 

Definition at line 48 of file ScriptTcl.h.

friend class GlobalMasterTcl [friend]
 

Definition at line 49 of file ScriptTcl.h.


The documentation for this class was generated from the following files:
Generated on Mon Nov 23 05:00:09 2009 for NAMD by  doxygen 1.3.9.1