/
ComplexI_abg.py
59 lines (48 loc) · 1.32 KB
/
ComplexI_abg.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
import BondGraphTools as bgt
import modularBondGraph as mbg
import sympy as sp
def model():
""" Acausal bond graph ComplexI_abg.py
Created by svgBondGraph at Thu Dec 17 09:32:54 2020 from ComplexI_abg.svg
Usage:
import ComplexI_abg; model = ComplexI_abg.model()
"""
model = bgt.new(name="ComplexI")
## Junction 0:BGT0
BGT0 = bgt.new('0')
model.add(BGT0)
## Junction 0:BGT1
BGT1 = bgt.new('0')
model.add(BGT1)
## Component C:E1
E1 = sp.symbols('E1')
E1 = bgt.new('C',name='E1',value={'C':E1})
model.add(E1)
## Component C:E2
E2 = sp.symbols('E2')
E2 = bgt.new('C',name='E2',value={'C':E2})
model.add(E2)
## Subsystem ProtonPump:pp
import ProtonPump_abg
pp = ProtonPump_abg.model()
pp.name = 'pp'
model.add(pp)
bgt.expose(pp / 'E1','E1')
bgt.expose(pp / 'E2','E2')
mbg.renameSub(pp,portList=['E1', 'E2'])
## Subsystem Redox:rr
import Redox_abg
rr = Redox_abg.model()
rr.name = 'rr'
model.add(rr)
bgt.expose(rr / 'E1','E1')
bgt.expose(rr / 'E2','E2')
mbg.renameSub(rr,portList=['E1', 'E2'])
## Bonds
bgt.connect(BGT0,E2)
bgt.connect(BGT0,(rr,'E2'))
bgt.connect((pp,'E2'),BGT0)
bgt.connect((rr,'E1'),BGT1)
bgt.connect(BGT1,(pp,'E1'))
bgt.connect(BGT1,E1)
return model