def __init__(self, spiketimes, Name, Parent = None, Description = ""): nineml_daetools_bridge.__init__(self, Name, None, Parent, Description) # A dummy variable self.event = daet.daeVariable("event", daet.time_t, self, "") # Add one 'send' event port self.spikeoutput = daet.daeEventPort("spikeoutput", daet.eOutletPort, self, "Spike outlet event port") self.nineml_event_ports.append(self.spikeoutput) # A list of spike event times self.spiketimes = list(spiketimes)
def __init__(self, spiketimes, Name, Parent=None, Description=""): nineml_daetools_bridge.__init__(self, Name, None, Parent, Description) # A dummy variable self.event = daet.daeVariable("event", daet.time_t, self, "") # Add one 'send' event port self.spikeoutput = daet.daeEventPort("spikeoutput", daet.eOutletPort, self, "Spike outlet event port") self.nineml_event_ports.append(self.spikeoutput) # A list of spike event times self.spiketimes = list(spiketimes)
def __init__(self, Name, ninemlComponent, Parent = None, Description = ""): """ Iterates over *Parameters*, *State variables*, *Aliases*, *Analogue ports*, *Event ports*, *Sub-nodes* and *Port connections* and creates corresponding daetools objects. :param Name: string :param ninemlComponent: AL component object :param Parent: daeModel-derived object :param Description: string :raises: RuntimeError """ #start = time() daet.daeModel.__init__(self, Name, Parent, Description) #print(' daeModel.__init__({0}) = {1}'.format(Name, time() - start)) start = time() self.ninemlComponent = ninemlComponent self.nineml_parameters = [] self.nineml_state_variables = [] self.nineml_aliases = [] self.nineml_analog_ports = [] self.nineml_reduce_ports = [] self.nineml_event_ports = [] self.ninemlSubComponents = [] # AL component may be None (useful in certain cases); therefore do not raise an exception if not self.ninemlComponent: return # 1) Create parameters for param in self.ninemlComponent.parameters: self.nineml_parameters.append( daet.daeParameter(param.name, daet.unit(), self, "") ) # 2) Create state-variables (diff. variables) for var in self.ninemlComponent.state_variables: self.nineml_state_variables.append( daet.daeVariable(var.name, dae_nineml_t, self, "") ) # 3) Create alias variables (algebraic) for alias in self.ninemlComponent.aliases: self.nineml_aliases.append( daet.daeVariable(alias.lhs, dae_nineml_t, self, "") ) # 4) Create analog-ports and reduce-ports for analog_port in self.ninemlComponent.analog_ports: if analog_port.mode == 'send': self.nineml_analog_ports.append( ninemlAnalogPort(analog_port.name, daet.eOutletPort, self, "") ) elif analog_port.mode == 'recv': self.nineml_analog_ports.append( ninemlAnalogPort(analog_port.name, daet.eInletPort, self, "") ) elif analog_port.mode == 'reduce': self.nineml_reduce_ports.append( ninemlReduceAnalogPort(analog_port.name, self) ) else: raise RuntimeError("") # 5) Create event-ports for event_port in self.ninemlComponent.event_ports: if event_port.mode == 'send': self.nineml_event_ports.append( daet.daeEventPort(event_port.name, daet.eOutletPort, self, "") ) elif event_port.mode == 'recv': self.nineml_event_ports.append( daet.daeEventPort(event_port.name, daet.eInletPort, self, "") ) else: raise RuntimeError("") # 6) Create sub-nodes for name, subcomponent in list(self.ninemlComponent.subnodes.items()): self.ninemlSubComponents.append( nineml_daetools_bridge(name, subcomponent, self, '') ) # 7) Create port connections for port_connection in self.ninemlComponent.portconnections: #print 'try to connect {0} to {1}'.format(port_connection[0].getstr('.'), port_connection[1].getstr('.')) portFrom = getObjectFromNamespaceAddress(self, port_connection[0], look_for_ports = True, look_for_reduceports = True) portTo = getObjectFromNamespaceAddress(self, port_connection[1], look_for_ports = True, look_for_reduceports = True) #print ' {0} -> {1}\n'.format(type(portFrom), type(portTo)) connectPorts(portFrom, portTo, self)
def __init__(self, Name, ninemlComponent, Parent=None, Description=""): """ Iterates over *Parameters*, *State variables*, *Aliases*, *Analogue ports*, *Event ports*, *Sub-nodes* and *Port connections* and creates corresponding daetools objects. :param Name: string :param ninemlComponent: AL component object :param Parent: daeModel-derived object :param Description: string :raises: RuntimeError """ #start = time() daet.daeModel.__init__(self, Name, Parent, Description) #print(' daeModel.__init__({0}) = {1}'.format(Name, time() - start)) start = time() self.ninemlComponent = ninemlComponent self.nineml_parameters = [] self.nineml_state_variables = [] self.nineml_aliases = [] self.nineml_analog_ports = [] self.nineml_reduce_ports = [] self.nineml_event_ports = [] self.ninemlSubComponents = [] # AL component may be None (useful in certain cases); therefore do not raise an exception if not self.ninemlComponent: return # 1) Create parameters for param in self.ninemlComponent.parameters: self.nineml_parameters.append( daet.daeParameter(param.name, daet.unit(), self, "")) # 2) Create state-variables (diff. variables) for var in self.ninemlComponent.state_variables: self.nineml_state_variables.append( daet.daeVariable(var.name, dae_nineml_t, self, "")) # 3) Create alias variables (algebraic) for alias in self.ninemlComponent.aliases: self.nineml_aliases.append( daet.daeVariable(alias.lhs, dae_nineml_t, self, "")) # 4) Create analog-ports and reduce-ports for analog_port in self.ninemlComponent.analog_ports: if analog_port.mode == 'send': self.nineml_analog_ports.append( ninemlAnalogPort(analog_port.name, daet.eOutletPort, self, "")) elif analog_port.mode == 'recv': self.nineml_analog_ports.append( ninemlAnalogPort(analog_port.name, daet.eInletPort, self, "")) elif analog_port.mode == 'reduce': self.nineml_reduce_ports.append( ninemlReduceAnalogPort(analog_port.name, self)) else: raise RuntimeError("") # 5) Create event-ports for event_port in self.ninemlComponent.event_ports: if event_port.mode == 'send': self.nineml_event_ports.append( daet.daeEventPort(event_port.name, daet.eOutletPort, self, "")) elif event_port.mode == 'recv': self.nineml_event_ports.append( daet.daeEventPort(event_port.name, daet.eInletPort, self, "")) else: raise RuntimeError("") # 6) Create sub-nodes for name, subcomponent in list(self.ninemlComponent.subnodes.items()): self.ninemlSubComponents.append( nineml_daetools_bridge(name, subcomponent, self, '')) # 7) Create port connections for port_connection in self.ninemlComponent.portconnections: #print 'try to connect {0} to {1}'.format(port_connection[0].getstr('.'), port_connection[1].getstr('.')) portFrom = getObjectFromNamespaceAddress(self, port_connection[0], look_for_ports=True, look_for_reduceports=True) portTo = getObjectFromNamespaceAddress(self, port_connection[1], look_for_ports=True, look_for_reduceports=True) #print ' {0} -> {1}\n'.format(type(portFrom), type(portTo)) connectPorts(portFrom, portTo, self)