ScriptTcl.C File Reference

#include "InfoStream.h"
#include "BackEnd.h"
#include "ScriptTcl.h"
#include "Broadcasts.h"
#include "ConfigList.h"
#include "Node.h"
#include "PDB.h"
#include "WorkDistrib.h"
#include "NamdState.h"
#include "Output.h"
#include "Controller.h"
#include "SimParameters.h"
#include "Thread.h"
#include "ProcessorPrivate.h"
#include "PatchMgr.h"
#include "PatchMap.h"
#include "Measure.h"
#include "colvarmodule.h"
#include "colvarscript.h"
#include "DumpBench.h"
#include <errno.h>
#include <stdio.h>
#include <ctype.h>
#include <strings.h>
#include "qd.h"
#include <tcl.h>
#include "TclCommands.h"
#include "DataExchanger.h"
#include "Debug.h"
#include "molfile_plugin.h"
#include "libmolfile_plugin.h"
#include "ComputeConsForceMsgs.h"

Go to the source code of this file.

Defines

#define MIN_DEBUG_LEVEL   4
#define CHECK_REPLICA(REP)
#define DEG2RAD   3.14159625359/180.0
#define UNITCELLSLOP   0.0001

Functions

static int register_cb (void *v, vmdplugin_t *p)
static int atoBool (const char *s)
static int replica_hash (const char *key)
void read_binary_coors (char *fname, PDB *pdbobj)
static int get_lattice_from_ts (Lattice *lattice, const molfile_timestep_t *ts)
void newhandle_msg (void *v, const char *msg)
void newhandle_msg_ex (void *v, const char *msg, int prepend, int newline)
int psfgen_static_init (Tcl_Interp *)
int eabf_static_init (Tcl_Interp *)

Variables

static molfile_plugin_t * dcdplugin
static int numatoms
static void * filehandle
static float * coords
static Vectorvcoords


Define Documentation

#define CHECK_REPLICA ( REP   ) 

Value:

do {\
  if ( (REP) < 0 ) { \
    Tcl_SetResult(interp,"negative replica index",TCL_VOLATILE); \
    return TCL_ERROR; \
  } \
  if ( (REP) >= CmiNumPartitions() ) { \
    Tcl_SetResult(interp,"non-existent replica index",TCL_VOLATILE); \
    return TCL_ERROR; \
  } \
} while ( 0 )

Definition at line 447 of file ScriptTcl.C.

#define DEG2RAD   3.14159625359/180.0

Definition at line 1622 of file ScriptTcl.C.

Referenced by get_lattice_from_ts().

#define MIN_DEBUG_LEVEL   4

Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 by The Board of Trustees of the University of Illinois. All rights reserved.

Definition at line 49 of file ScriptTcl.C.

#define UNITCELLSLOP   0.0001

Definition at line 1623 of file ScriptTcl.C.


Function Documentation

static int atoBool ( const char *  s  )  [static]

Definition at line 842 of file ScriptTcl.C.

00843 {
00844    if (!strcasecmp(s, "on")) return 1;
00845    if (!strcasecmp(s, "off")) return 0;
00846    if (!strcasecmp(s, "true")) return 1;
00847    if (!strcasecmp(s, "false")) return 0;
00848    if (!strcasecmp(s, "yes")) return 1;
00849    if (!strcasecmp(s, "no")) return 0;
00850    if (!strcasecmp(s, "1")) return 1;
00851    if (!strcasecmp(s, "0")) return 0;
00852    return -1;
00853 }

int eabf_static_init ( Tcl_Interp *   ) 

Definition at line 179 of file eabfTcl.C.

References Eabf_Init().

Referenced by ScriptTcl::ScriptTcl(), and ScriptTcl::tclsh().

00179                                          {
00180   Tcl_StaticPackage(0,"Eabf",Eabf_Init,0);
00181   return Tcl_Eval(interp,"package ifneeded Eabf 1.0.0 {load {} Eabf}");
00182 }

static int get_lattice_from_ts ( Lattice lattice,
const molfile_timestep_t *  ts 
) [static]

Definition at line 1625 of file ScriptTcl.C.

References A, B, DEG2RAD, Lattice::set(), Vector::x, Vector::y, and Vector::z.

01626 {
01627   // Check if valid unit cell data is contained in the timestep.  We don't
01628   // have any formalized way of doing this yet; for now, just check that
01629   // the length of the vector is greater than 1.
01630   if (ts->A <= 1 || ts->B <= 1 || ts->C <= 1) return 0;
01631 
01632   // convert from degrees to radians
01633   // Try to get exact results when the angles are exactly 90.
01634   double epsalpha = DEG2RAD*(ts->alpha-90.0);
01635   double epsbeta  = DEG2RAD*(ts->beta-90.0);
01636   double epsgamma = DEG2RAD*(ts->gamma-90.0);
01637   double cosAB = -sin(epsgamma);
01638   double sinAB = cos(epsgamma);
01639   double cosAC = -sin(epsbeta);
01640   double cosBC = -sin(epsalpha);
01641 
01642   // A will lie along the positive x axis.
01643   // B will lie in the x-y plane
01644   // The origin will be (0,0,0).
01645   Vector A(0), B(0), vecC(0);
01646   A.x = ts->A;
01647   B.x = ts->B*cosAB;
01648   B.y = ts->B*sinAB;
01649   //if (fabs(B.x) < UNITCELLSLOP) B.x = 0;
01650   //if (fabs(B.y) < UNITCELLSLOP) B.y = 0;
01651   vecC.x = ts->C * cosAC;
01652   vecC.y = (ts->B*ts->C*cosBC - B.x*vecC.x)/B.y;
01653   vecC.z = sqrt(ts->C*ts->C - vecC.x*vecC.x - vecC.y*vecC.y);
01654   //if (fabs(vecC.x) < UNITCELLSLOP) vecC.x = 0;
01655   //if (fabs(vecC.y) < UNITCELLSLOP) vecC.y = 0;
01656   //if (fabs(vecC.z) < UNITCELLSLOP) vecC.z = 0;
01657   lattice->set(A, B, vecC, Vector(0));
01658   return 1;
01659 }

void newhandle_msg ( void *  v,
const char *  msg 
)

Definition at line 1949 of file ScriptTcl.C.

01949                                                         {
01950   CkPrintf("psfgen) %s\n",msg);
01951 }

void newhandle_msg_ex ( void *  v,
const char *  msg,
int  prepend,
int  newline 
)

Definition at line 1953 of file ScriptTcl.C.

01953                                                                                      {
01954   CkPrintf("%s%s%s", (prepend ? "psfgen) " : ""), msg, (newline ? "\n" : ""));
01955 }

int psfgen_static_init ( Tcl_Interp *   ) 

Referenced by ScriptTcl::ScriptTcl(), and ScriptTcl::tclsh().

void read_binary_coors ( char *  fname,
PDB pdbobj 
)

Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000 by The Board of Trustees of the University of Illinois. All rights reserved.

Definition at line 34 of file NamdOneTools.C.

References PDB::num_atoms(), read_binary_file(), and PDB::set_all_positions().

Referenced by NamdState::loadStructure().

00034                                                  {
00035   Vector *newcoords;    //  Array of vectors to hold coordinates from file
00036 
00037   //  Allocate an array to hold the new coordinates
00038   newcoords = new Vector[pdbobj->num_atoms()];
00039 
00040   //  Read the coordinate from the file
00041   read_binary_file(fname,newcoords,pdbobj->num_atoms());
00042 
00043   //  Set the coordinates in the PDB object to the new coordinates
00044   pdbobj->set_all_positions(newcoords);
00045 
00046   //  Clean up
00047   delete [] newcoords;
00048 
00049 } // END OF FUNCTION read_binary_coors()

static int register_cb ( void *  v,
vmdplugin_t *  p 
) [static]

Definition at line 56 of file ScriptTcl.C.

References dcdplugin.

00056                                                 {
00057         dcdplugin = (molfile_plugin_t *)p;
00058         return 0;
00059 }

static int replica_hash ( const char *  key  )  [static]

Definition at line 1450 of file ScriptTcl.C.

01450                                          {
01451   unsigned int hash = 0;
01452 
01453   while (*key) {
01454     hash *= 73;
01455     hash += *key++;
01456   }
01457 
01458   return hash % CmiNumPartitions();
01459 }


Variable Documentation

float* coords [static]

Definition at line 66 of file ScriptTcl.C.

Referenced by IMDOutput::gather_coordinates(), GlobalMasterIMD::send_fcoords(), and Tcl_loadCoords().

molfile_plugin_t* dcdplugin [static]

Definition at line 55 of file ScriptTcl.C.

Referenced by register_cb().

void* filehandle [static]

Definition at line 65 of file ScriptTcl.C.

int numatoms [static]

Definition at line 64 of file ScriptTcl.C.

Referenced by NamdState::loadStructure(), and spatial_hashing().

Vector* vcoords [static]

Definition at line 67 of file ScriptTcl.C.


Generated on Sat Aug 18 01:17:17 2018 for NAMD by  doxygen 1.4.7