NAMD
Classes | Typedefs | Functions
wkfutils.h File Reference

Go to the source code of this file.

Classes

struct  wkfmsgtimer
 

Typedefs

typedef voidwkf_timerhandle
 

Functions

wkf_timerhandle wkf_timer_create (void)
 
void wkf_timer_destroy (wkf_timerhandle)
 
void wkf_timer_start (wkf_timerhandle)
 
void wkf_timer_stop (wkf_timerhandle)
 
double wkf_timer_time (wkf_timerhandle)
 
double wkf_timer_timenow (wkf_timerhandle)
 
double wkf_timer_start_time (wkf_timerhandle)
 
double wkf_timer_stop_time (wkf_timerhandle)
 
wkfmsgtimerwkf_msg_timer_create (double updatetime)
 
int wkf_msg_timer_timeout (wkfmsgtimer *time)
 
void wkf_msg_timer_destroy (wkfmsgtimer *mt)
 

Typedef Documentation

a timer handle

Definition at line 49 of file wkfutils.h.

Function Documentation

wkfmsgtimer* wkf_msg_timer_create ( double  updatetime)

initialize periodic status message timer

initialize status message timer

Definition at line 178 of file wkfutils.c.

References wkfmsgtimer::timer, wkfmsgtimer::updatetime, wkf_timer_create(), and wkf_timer_start().

178  {
179  wkfmsgtimer *mt;
180  mt = (wkfmsgtimer *) malloc(sizeof(wkfmsgtimer));
181  if (mt != NULL) {
182  mt->timer = wkf_timer_create();
183  mt->updatetime = updatetime;
184  wkf_timer_start(mt->timer);
185  }
186  return mt;
187 }
wkf_timerhandle wkf_timer_create(void)
Definition: wkfutils.c:161
wkf_timerhandle timer
Definition: wkfutils.h:60
double updatetime
Definition: wkfutils.h:61
void wkf_timer_start(wkf_timerhandle v)
Definition: wkfutils.c:124
void wkf_msg_timer_destroy ( wkfmsgtimer mt)

destroy message timer

Definition at line 204 of file wkfutils.c.

References wkfmsgtimer::timer, and wkf_timer_destroy().

204  {
206  free(mt);
207 }
void wkf_timer_destroy(wkf_timerhandle v)
Definition: wkfutils.c:168
wkf_timerhandle timer
Definition: wkfutils.h:60
int wkf_msg_timer_timeout ( wkfmsgtimer mt)

return true if it's time to print a status update message

Definition at line 190 of file wkfutils.c.

References wkfmsgtimer::timer, wkfmsgtimer::updatetime, wkf_timer_start(), and wkf_timer_timenow().

190  {
191  double elapsed = wkf_timer_timenow(mt->timer);
192  if (elapsed > mt->updatetime) {
193  /* reset the clock and return true that our timer expired */
194  wkf_timer_start(mt->timer);
195  return 1;
196  } else if (elapsed < 0) {
197  /* time went backwards, best reset our clock! */
198  wkf_timer_start(mt->timer);
199  }
200  return 0;
201 }
wkf_timerhandle timer
Definition: wkfutils.h:60
double updatetime
Definition: wkfutils.h:61
void wkf_timer_start(wkf_timerhandle v)
Definition: wkfutils.c:124
double wkf_timer_timenow(wkf_timerhandle v)
Definition: wkfutils.c:172
wkf_timerhandle wkf_timer_create ( void  )

create a timer (clears timer)

Definition at line 161 of file wkfutils.c.

Referenced by NL_msm_create(), and wkf_msg_timer_create().

161  {
162  wkf_timer * t;
163  t = (wkf_timer *) malloc(sizeof(wkf_timer));
164  memset(t, 0, sizeof(wkf_timer));
165  return t;
166 }
void wkf_timer_destroy ( wkf_timerhandle  )

create a timer (clears timer)

Definition at line 168 of file wkfutils.c.

Referenced by NL_msm_destroy(), and wkf_msg_timer_destroy().

168  {
169  free(v);
170 }
void wkf_timer_start ( wkf_timerhandle  )

start a timer (clears timer)

Definition at line 124 of file wkfutils.c.

References wkf_timer::tz.

Referenced by NL_msm_compute_force(), NL_msm_compute_force_sprec(), NL_msm_compute_long_range(), NL_msm_compute_long_range_sprec(), wkf_msg_timer_create(), and wkf_msg_timer_timeout().

124  {
125  wkf_timer * t = (wkf_timer *) v;
126  gettimeofday(&t->starttime, &t->tz);
127 }
struct timezone tz
Definition: wkfutils.c:121
double wkf_timer_start_time ( wkf_timerhandle  )

report wall starting time

Definition at line 142 of file wkfutils.c.

142  {
143  wkf_timer * t = (wkf_timer *) v;
144  double ttime;
145  ttime = ((double) t->starttime.tv_sec) +
146  ((double) t->starttime.tv_usec) / 1000000.0;
147  return ttime;
148 }
void wkf_timer_stop ( wkf_timerhandle  )

stop a timer

Definition at line 129 of file wkfutils.c.

References wkf_timer::endtime, and wkf_timer::tz.

Referenced by NL_msm_compute_force(), NL_msm_compute_force_sprec(), NL_msm_compute_long_range(), NL_msm_compute_long_range_sprec(), and wkf_timer_timenow().

129  {
130  wkf_timer * t = (wkf_timer *) v;
131  gettimeofday(&t->endtime, &t->tz);
132 }
struct timeval starttime endtime
Definition: wkfutils.c:120
struct timezone tz
Definition: wkfutils.c:121
double wkf_timer_stop_time ( wkf_timerhandle  )

report wall stopping time

Definition at line 150 of file wkfutils.c.

References wkf_timer::endtime.

150  {
151  wkf_timer * t = (wkf_timer *) v;
152  double ttime;
153  ttime = ((double) t->endtime.tv_sec) +
154  ((double) t->endtime.tv_usec) / 1000000.0;
155  return ttime;
156 }
struct timeval starttime endtime
Definition: wkfutils.c:120
double wkf_timer_time ( wkf_timerhandle  )

report elapsed time in seconds

Definition at line 134 of file wkfutils.c.

References wkf_timer::endtime.

Referenced by NL_msm_compute_force(), NL_msm_compute_force_sprec(), NL_msm_compute_long_range(), NL_msm_compute_long_range_sprec(), and wkf_timer_timenow().

134  {
135  wkf_timer * t = (wkf_timer *) v;
136  double ttime;
137  ttime = ((double) (t->endtime.tv_sec - t->starttime.tv_sec)) +
138  ((double) (t->endtime.tv_usec - t->starttime.tv_usec)) / 1000000.0;
139  return ttime;
140 }
struct timeval starttime endtime
Definition: wkfutils.c:120
double wkf_timer_timenow ( wkf_timerhandle  )

report elapsed time in seconds

Definition at line 172 of file wkfutils.c.

References wkf_timer_stop(), and wkf_timer_time().

Referenced by wkf_msg_timer_timeout().

172  {
173  wkf_timer_stop(v);
174  return wkf_timer_time(v);
175 }
double wkf_timer_time(wkf_timerhandle v)
Definition: wkfutils.c:134
void wkf_timer_stop(wkf_timerhandle v)
Definition: wkfutils.c:129