diff --git a/msgpi/analysis.py b/msgpi/analysis.py index 186a665..c5047c9 100644 --- a/msgpi/analysis.py +++ b/msgpi/analysis.py @@ -3,14 +3,14 @@ import subprocess as sbp import msgpi.logger as mlog -import msgpi.timer as mtime +# import msgpi.timer as mtime import msgpi.presg as psg import msgpi.io.iosc as miosc import msgpi.io.iovabs as miovabs import msgpi.utils as utils -def solve(sg_xml, analysis, ppcmd, solver, timeout=30, scrnout=True, logger=None): +def solve(sg_xml, analysis, ppcmd, solver, timeout=30, scrnout=True, logger=None, timer=None): """Solve Parameters @@ -40,40 +40,51 @@ def solve(sg_xml, analysis, ppcmd, solver, timeout=30, scrnout=True, logger=None # Preprocess logger.info('preprocessing...') - # t.start() + + if timer: + timer.start() sg_in, smdim = psg.preSG( sg_xml, analysis, ppcmd, solver, timeout=timeout, scrnout=scrnout, logger=logger ) - # t.stop() + if timer: + timer.stop() # Solve logger.info('running analysis...') - # t.start() + if timer: + timer.start() run(sg_in, analysis, solver, smdim, scrnout, logger=logger) - # t.stop() + if timer: + timer.stop() # Parse results # print(' - reading results...') logger.info('reading results...') - # t.start() + if timer: + timer.start() if analysis == 'h': if solver == 'vabs': sm = miovabs.readVABSOutHomo(sg_in + '.K') - # t.stop() + if timer: + timer.stop() elif solver == 'swiftcomp': sm = miosc.readSCOutHomo(sg_in + '.k', smdim) - # t.stop() + if timer: + timer.stop() return sm elif analysis == 'd': - # t.stop() + if timer: + timer.stop() pass elif 'f' in analysis: results = miosc.readSCOutFailure(sg_in, analysis) - # t.stop() + if timer: + timer.stop() return results - # t.stop() + if timer: + timer.stop() diff --git a/msgpi/timer.py b/msgpi/timer.py index ddf0e97..195b680 100644 --- a/msgpi/timer.py +++ b/msgpi/timer.py @@ -8,6 +8,7 @@ def __init__(self, name=None, text='Elapsed time {:0.4f} seconds', logger=print) self.name = name self.text = text self.logger = logger + self.records = [] if name: self.timers.setdefault(name, 0) @@ -29,6 +30,7 @@ def stop(self): self.logger(self.text.format(elapsed_time)) if self.name: self.timers[self.name] += elapsed_time + self.records.append(elapsed_time) return elapsed_time