Source code for vivarium.processes.division_volume

from __future__ import absolute_import, division, print_function

from vivarium.library.units import units
from vivarium.core.process import Process



[docs]class DivisionVolume(Process): name = 'division_volume' defaults = { 'initial_state': {}, 'division_volume': 2.4 * units.fL, # fL } def __init__(self, initial_parameters=None): if not initial_parameters: initial_parameters = {} self.division = 0 division_volume = initial_parameters.get('division_volume', self.defaults['division_volume']) parameters = { 'division_volume': division_volume} # TODO -- make division at 2X initial_volume? Pass this in from initial_parameters super(DivisionVolume, self).__init__(parameters)
[docs] def ports_schema(self): return { 'global': { 'divide': { '_default': False, '_emit': True, '_updater': 'set', '_divider': 'zero'}, 'volume': { '_default': 1.2 * units.fL}}}
[docs] def next_update(self, timestep, states): volume = states['global']['volume'] if volume >= self.parameters['division_volume']: self.division = True return {'global': {'divide': self.division}} else: return {}