1"""Simple bouncing molecules in 3-D system. This file is translated from
2port.txt file.
3"""
4
5__author__ = "Dilawar Singh"
6__email__ = "dilawars@ncbs.res.in"
7__date__ = "2020-06-30"
8
9
10import smoldyn
11
12sim = smoldyn.Simulation(low=[0, 0, 0], high=[100, 100, 100])
13
14# Set it after Simulation object is created.
15sim.seed = 0
16
17spRed = sim.addSpecies("red", color="red", difc=3, display_size=3)
18spRed.addToSolution(20, highpos=[10, 50, 50])
19# sim.addMolecules(spRed, 20, highpos=[10,50,50])
20
21spGreen = sim.addSpecies("green", color="green", difc=1, display_size=3)
22# spGreen.addToSolution(10)
23sim.addMolecules(spGreen, 20, highpos=[10,50,50])
24
25# Add Surfaces
26r1 = smoldyn.Rectangle(corner=[100, 0, 0], dimensions=[100, 100], axis="-x")
27r2 = smoldyn.Rectangle(corner=[0, 0, 0], dimensions=[100, 100], axis="+y")
28r3 = smoldyn.Rectangle(corner=[0, 100, 0], dimensions=[100, 100], axis="-y")
29r4 = smoldyn.Rectangle(corner=[0, 0, 0], dimensions=[100, 100], axis="+z")
30r5 = smoldyn.Rectangle(corner=[0, 0, 100], dimensions=[100, 100], axis="-z")
31
32s1 = sim.addSurface("walls", panels=[r1, r2, r3, r4, r5])
33# s1.both.setStyle(drawmode='edge')
34s1.setStyle("both", drawmode="edge")
35s1.setAction('both', [spRed, spGreen], "reflect")
36
37# portsurf
38rr = smoldyn.Rectangle(corner=[0, 0, 0], dimensions=[100, 100], axis="+x")
39portSurf = sim.addSurface("portsurf", panels=[rr])
40portSurf.setStyle('front', drawmode="face", color="gray")
41portSurf.setStyle('back', drawmode="face", color=[0.2, 0, 0, 1])
42portSurf.setAction('front', [spRed, spGreen], "port")
43portSurf.setAction('back', [spRed, spGreen], "reflect")
44
45# Ports
46testport = sim.addPort(name="testport", surface=portSurf, panel="front")
47sim.setGraphics("opengl", 20)
48sim.run(dt=0.01, stop=100)
49