예제 #1
0
파일: operator.py 프로젝트: ntouran/armi
    def __init__(self, cs):
        """
        Constructor for operator.

        Parameters
        ----------
        cs : CaseSettings object
            Global settings that define the run.

        Raises
        ------
        OSError
            If unable to create the FAST_PATH directory.
        """
        self.r = None
        self.cs = cs
        runLog.LOG.startLog(self.cs.caseTitle)
        self.timer = codeTiming.getMasterTimer()
        self.interfaces = []
        self.restartData = []
        self.loadedRestartData = []
        self._cycleNames = None
        self._stepLengths = None
        self._cycleLengths = None
        self._burnSteps = None
        self._maxBurnSteps = None
        self._powerFractions = None
        self._availabilityFactors = None

        # Create the welcome headers for the case (case, input, machine, and some basic reactor information)
        reportingUtils.writeWelcomeHeaders(self, cs)

        self._initFastPath()
예제 #2
0
파일: operator.py 프로젝트: guruprad/armi
    def __init__(self, cs):
        """
        Constructor for operator.

        Parameters
        ----------
        cs : CaseSettings object
            Global settings that define the run.

        Raises
        ------
        OSError
            If unable to create the FAST_PATH directory.
        """
        self.r = None
        self.cs = cs
        self.timer = codeTiming.getMasterTimer()
        self.interfaces = []
        self.restartData = []
        self.loadedRestartData = []
        self.cycleLengths = self._getCycleLengths()
        self.availabilityFactors = self._getAvailabilityFactors()
        self.powerFractions = self._getPowerFractions()
        self._checkReactorCycleAttrs()

        # Create the welcome headers for the case (case, input, machine, and some basic reactor information)
        reportingUtils.writeWelcomeHeaders(self, cs)
예제 #3
0
    def test_messy_starts_and_stops(self):
        master = codeTiming.getMasterTimer()

        larger_time_start = master.time()
        time.sleep(0.01)
        timer = master.getTimer("sometimerthatihaventmadeyet")
        time.sleep(0.01)
        lesser_time_start = master.time()

        timer.start()  # 1st time pair
        timer.start()  # 2nd time pair
        timer.start()  # 3rd time pair
        timer.stop()
        self.assertTrue(timer.isActive)

        timer.stop()
        timer.stop()
        self.assertFalse(timer.isActive)

        timer.stop()
        timer.stop()
        timer.start()  # 4th time pair
        self.assertTrue(timer.isActive)

        lesser_time_end = master.time()
        time.sleep(0.01)
        timer.stop()
        self.assertEqual(len(timer.times), 4)
        time.sleep(0.01)
        larger_time_end = master.time()

        # even with all the starts and stops the total time needs to be between these two values.
        self.assertGreater(timer.time, lesser_time_end - lesser_time_start)
        self.assertLess(timer.time, larger_time_end - larger_time_start)
예제 #4
0
    def test_property_access(self):
        # test property access is okay
        master = codeTiming.getMasterTimer()
        timer = master.startTimer("sometimer")

        _ = timer.times
        _ = timer.time
        _ = timer.name
        _ = timer.isActive
예제 #5
0
    def test_master(self):
        master = codeTiming.getMasterTimer()
        _ = master.time

        master.startAll()
        actives = master.getActiveTimers()
        self.assertEqual(list(master.timers.values()), actives)

        master.stopAll()
        actives = master.getActiveTimers()
        self.assertEqual([], actives)

        with self.assertRaises(RuntimeError):
            codeTiming.MasterTimer()
예제 #6
0
    def test_alternate_usages(self):
        master = codeTiming.getMasterTimer()
        timer = master.startTimer("bananananana")
        timer.stop()
        timer.start()
        timer.start()
        timer.stop()
        timer.stop()
        timer.stop()
        timer.start()

        timer2 = master.endTimer("wazzlewazllewazzzle")
        timer2.start()
        timer2.start()

        with timer2:
            with timer:
                pass
예제 #7
0
    def __init__(self, cs):
        """
        Constructor for operator.

        Parameters
        ----------
        cs : CaseSettings object
            Global settings that define the run.

        Raises
        ------
        OSError
            If unable to create the FAST_PATH directory.
        """
        self.r = None
        self.cs = cs
        self.timer = codeTiming.getMasterTimer()
        self.interfaces = []
        self.restartData = []
        self.loadedRestartData = []
        self.cycleLengths = self._getCycleLengths()
        self.availabilityFactors = self._getAvailabilityFactors()
        self.powerFractions = self._getPowerFractions()
        self._checkReactorCycleAttrs()