def run_pypsa():
network = pypsa.Network()
#create buses
network.add("Bus", name="bus1", v_nom=220,control="P",v_mag_pu_max=1.2,v_mag_pu_min=0.8,carrier="DC")
network.add("Bus", name="bus2", v_nom=110,control="P",v_mag_pu_max=1.2,v_mag_pu_min=0.8,carrier="DC")
network.add("Bus", name="bus3", v_nom=110,control="P",v_mag_pu_max=1.2,v_mag_pu_min=0.8,carrier="DC")
network.add("Bus", name="bus4", v_nom=110,control="P",v_mag_pu_max=1.2,v_mag_pu_min=0.8,carrier="DC")
#create 220/110 kV transformer
network.add("Transformer", name="MV-LV trafo", bus0="bus1", bus1="bus2",type="100 MVA 220/110 kV")
# add line
network.add("Line", name="LV cable 1",type="149-AL1/24-ST1A 110.0",bus0="bus2", bus1="bus3",length=70)
network.add("Line", name="LV cable 2",type="149-AL1/24-ST1A 110.0",bus0="bus3", bus1="bus4",length=50)
network.add("Line", name="LV cable 3",type="149-AL1/24-ST1A 110.0",bus0="bus4", bus1="bus2",length=40)
#add a load at bus 1
network.add("Load", name="load1",bus="bus2",p_set=60)
network.add("Load", name="load2",bus="bus3",p_set=70)
network.add("Load", name="load3",bus="bus4",p_set=10)
#add external grid
network.add("Generator", name="External Grid", bus="bus1", control="Slack",marginal_cost=10)
network.add("Generator", name="Generator1",bus="bus3",p_nom_min=0,p_nom_max=80,control="P",marginal_cost=10)
network.add("Generator", name="Generator2",bus="bus4",p_nom_min=0,p_nom_max=100,control="P",marginal_cost=10)
network.lopf()