def default_chain2(): chain = Classes.Chain(3, 6) #chain.Nodes_count = 3 i = 0 while i < chain.Nodes_count: chain.Nodes.append(Classes.Node(i + 1)) chain.Nodes[i].To = [] chain.Nodes[i].From = [] i += 1 #chain.Elements_count = 6 chain.Elements.append(0) chain.Elements[0] = Classes.V('V', 1, 0) chain.Elements.append(1) chain.Elements[1] = Classes.R('R', 2000, 1) chain.Elements.append(2) chain.Elements[2] = Classes.R('R', 1000, 2) chain.Elements.append(3) chain.Elements[3] = Classes.C('C', 0.000058, 3) chain.Elements.append(4) chain.Elements[4] = Classes.R('R', 2000, 4) chain.Elements.append(5) chain.Elements[5] = Classes.H('H', 20000, 5) chain.Nodes[0].set_to(chain.Elements[3]) chain.Elements[3].set_from(chain.Nodes[0]) chain.Nodes[0].set_from(chain.Elements[0]) chain.Elements[0].set_to(chain.Nodes[0]) chain.Elements[0].set_from(chain.Nodes[1]) chain.Nodes[0].set_from(chain.Elements[1]) chain.Elements[1].set_to(chain.Nodes[0]) chain.Nodes[0].set_from(chain.Elements[4]) chain.Elements[4].set_to(chain.Nodes[0]) chain.Nodes[0].set_from(chain.Elements[5]) chain.Elements[5].set_to(chain.Nodes[0]) chain.Nodes[1].set_to(chain.Elements[0]) chain.Nodes[1].set_to(chain.Elements[1]) chain.Elements[1].set_from(chain.Nodes[1]) chain.Nodes[1].set_from(chain.Elements[2]) chain.Elements[2].set_to(chain.Nodes[1]) chain.Nodes[2].set_to(chain.Elements[2]) chain.Elements[2].set_from(chain.Nodes[2]) chain.Nodes[2].set_to(chain.Elements[4]) chain.Elements[4].set_from(chain.Nodes[2]) chain.Nodes[2].set_to(chain.Elements[5]) chain.Elements[5].set_from(chain.Nodes[2]) chain.Nodes[2].set_from(chain.Elements[3]) chain.Elements[3].set_to(chain.Nodes[2]) return chain
def copy_chain(chain): n = chain.Nodes_count e = chain.Elements_count newchain = Classes.Chain(n, e) #print(id(newchain)) #print(id(chain)) #newchain.Nodes_count = chain.Nodes_count #print(id(newchain.Nodes_count)) #print(id(chain.Nodes_count)) i = 0 while i < newchain.Nodes_count: newchain.Nodes.append(Classes.Node(i + 1)) newchain.Nodes[i].To = [] newchain.Nodes[i].From = [] i += 1 #newchain.Elements_count = copy.deepcopy(chain.Elements_count) for i in range(0, chain.Elements_count): if chain.Elements[i].Name == 'R': newchain.Elements.append(Classes.R('R', chain.Elements[i].Resistance, i)) if chain.Elements[i].Name == 'V': newchain.Elements.append(Classes.V('V', chain.Elements[i].Voltage, i)) if chain.Elements[i].Name == 'I': newchain.Elements.append(Classes.I('I', chain.Elements[i].Amperage, i)) if chain.Elements[i].Name == 'C': newchain.Elements.append(Classes.C('C', chain.Elements[i].Capacity, i)) if chain.Elements[i].Name == 'L': newchain.Elements.append(Classes.L('L', chain.Elements[i].Inductance, i)) if chain.Elements[i].Name == 'H': newchain.Elements.append(Classes.H('H', chain.Elements[i].Resistance, i)) #print(id(newchain.Elements[i])) #print(id(chain.Elements[i])) for i in range(0, chain.Nodes_count): for j in range(0, len(chain.Nodes[i].From)): f = chain.Nodes[i].From[j].Num newchain.Nodes[i].set_from(newchain.Elements[f]) for j in range(0, len(chain.Nodes[i].To)): t = chain.Nodes[i].To[j].Num newchain.Nodes[i].set_to(newchain.Elements[t]) for i in range(0, newchain.Elements_count): f = chain.Elements[i].From.Key t = chain.Elements[i].To.Key newchain.Elements[i].set_from(newchain.Nodes[f-1]) newchain.Elements[i].set_to(newchain.Nodes[t-1]) #print(newchain.Nodes) return newchain
def Petrov_10var(): chain = Classes.Chain(4, 6) i = 0 while i < chain.Nodes_count: chain.Nodes.append(Classes.Node(i + 1)) chain.Nodes[i].To = [] chain.Nodes[i].From = [] i += 1 chain.Elements.append(Classes.I('I', 1, 0)) chain.Elements.append(Classes.R('R', 5, 1)) chain.Elements.append(Classes.R('R', 1, 2)) chain.Elements.append(Classes.C('C', 2, 3)) chain.Elements.append(Classes.C('C', 1, 4)) chain.Elements.append(Classes.H('H', 1, 5)) chain.Nodes[0].set_to(chain.Elements[0]) chain.Elements[0].set_from(chain.Nodes[0]) chain.Nodes[0].set_from(chain.Elements[1]) chain.Elements[1].set_to(chain.Nodes[0]) chain.Nodes[0].set_from(chain.Elements[3]) chain.Elements[3].set_to(chain.Nodes[0]) chain.Nodes[0].set_from(chain.Elements[5]) chain.Elements[5].set_to(chain.Nodes[0]) chain.Nodes[1].set_from(chain.Elements[0]) chain.Elements[0].set_to(chain.Nodes[1]) chain.Nodes[1].set_to(chain.Elements[1]) chain.Elements[1].set_from(chain.Nodes[1]) chain.Nodes[1].set_to(chain.Elements[2]) chain.Elements[2].set_from(chain.Nodes[1]) chain.Nodes[2].set_from(chain.Elements[2]) chain.Elements[2].set_to(chain.Nodes[2]) chain.Nodes[2].set_to(chain.Elements[3]) chain.Elements[3].set_from(chain.Nodes[2]) chain.Nodes[2].set_to(chain.Elements[4]) chain.Elements[4].set_from(chain.Nodes[2]) chain.Nodes[3].set_from(chain.Elements[4]) chain.Elements[4].set_to(chain.Nodes[3]) chain.Nodes[3].set_to(chain.Elements[5]) chain.Elements[5].set_from(chain.Nodes[3]) return chain
def default_chain_abcd(): chain = Classes.Chain() chain.Nodes_count = 4 i = 0 while i < chain.Nodes_count: chain.Nodes.append(Classes.Node(i + 1)) chain.Nodes[i].To = [] chain.Nodes[i].From = [] i += 1 chain.Elements_count = 6 chain.Elements.append(Classes.V('V', 1)) chain.Elements.append(Classes.R('R', 1000)) chain.Elements.append(Classes.R('R', 2000)) chain.Elements.append(Classes.R('R', 3000)) chain.Elements.append(Classes.C('C', 0.000001)) chain.Nodes[0].set_to(chain.Elements[2]) chain.Elements[2].set_from(chain.Nodes[0]) chain.Nodes[0].set_from(chain.Elements[0]) chain.Elements[0].set_to(chain.Nodes[0]) chain.Nodes[0].set_from(chain.Elements[3]) chain.Elements[3].set_to(chain.Nodes[0]) chain.Nodes[0].set_from(chain.Elements[4]) chain.Elements[4].set_to(chain.Nodes[0]) chain.Nodes[1].set_to(chain.Elements[0]) chain.Elements[0].set_from(chain.Nodes[1]) chain.Nodes[1].set_from(chain.Elements[1]) chain.Elements[1].set_to(chain.Nodes[1]) chain.Nodes[2].set_to(chain.Elements[1]) chain.Elements[1].set_from(chain.Nodes[2]) chain.Nodes[2].set_to(chain.Elements[3]) chain.Elements[3].set_from(chain.Nodes[2]) chain.Nodes[2].set_to(chain.Elements[4]) chain.Elements[4].set_from(chain.Nodes[2]) chain.Nodes[2].set_from(chain.Elements[2]) chain.Elements[2].set_to(chain.Nodes[2]) #print(chain.Nodes[0].From) return chain