示例#1
0
    def __init__(self,
                 position,
                 cube_length,
                 light_time_function,
                 temperature_time_function,
                 timedelta,
                 initial_time,
                 end_time,
                 initial_terpene,
                 sources=(),
                 sinks=()):

        assert isinstance(position, Coord)

        self.cubelength = cube_length
        self.light_time_function = light_time_function
        self.temperature_time_function = temperature_time_function
        self.position = position

        self.terpene_concentration = initial_terpene
        # scaling to convert ppbv to molecules per cube meter (m3)
        #
        self.nair = 101325 * 6.022e23 / (8.314 * (25 + 273.15))
        self.fnair = self.nair * 1e-6 * 1e-9  # * 1e-11 # adapted to get rid of large numbers for molecules!

        # Molecular weight of a monoterpene
        #
        self.mtWeight = 136

        self.inboxes = {}

        for n in self.position.surroundingCoords():
            self.inboxes[n] = Inbox.LocalInbox()

        self.sources_list = list(sources)
        self.sink_list = list(sinks)

        self.time = initial_time
        self.timedelta = timedelta
        self.end_time = end_time

        self.channels = []  # (inbox, outbox)

        self.neighbors = {}
        self.stateConsumer = None