IEEE 4 bus

[1]:
import numpy as np
from pydgrid.pydgrid import grid
from pydgrid.plot_bokeh import plot_results
Loading BokehJS ...

With Yy transformer

[2]:
feet2m = 0.3048

data = {
"lines":[
        {"bus_j": "1",  "bus_k": "2",  "code": "4wires", "m": 2000.0*feet2m},
        {"bus_j": "3",  "bus_k": "4",  "code": "4wires", "m": 2500.0*feet2m}
        ],
"buses":[
        {"bus": "1",  "pos_x":             0, "pos_y": 0, "units": "m", "U_kV":12.47},
        {"bus": "2",  "pos_x": 2000.0*feet2m, "pos_y": 0, "units": "m", "U_kV":12.47},
        {"bus": "3",  "pos_x": 2400.0*feet2m, "pos_y": 0, "units": "m", "U_kV":4.16},
        {"bus": "4",  "pos_x": 4500.0*feet2m, "pos_y": 0, "units": "m", "U_kV":4.16},
        ],
"grid_formers":[
        {"bus": "1","bus_nodes": [1, 2, 3],
        "kV": [7.2, 7.2, 7.2],
        "deg": [0, -120.0, 120.0]
        }
        ],
"transformers":[
                {"bus_j": "2",  "bus_k": "3",  "S_n_kVA": 6000.0, "U_j_kV":12.47, "U_k_kV":4.16,
                 "R_cc_pu": 0.01, "X_cc_pu":0.06, "connection": "Yy_3wires",   "conductors_j": 3, "conductors_k": 3},
               ],
"loads":[
        {"bus": "4" , "kVA": 3*1800.0/0.9, "pf": 0.9,"type":"3P"}
        ],
"line_codes":
        {"4wires":{
         "R":[
             [0.4576, 0.1559, 0.1535],
             [0.1559, 0.4666, 0.1580],
             [0.1535, 0.1580, 0.4615]
             ],
         "X":[
             [1.4133, 0.8515, 0.7266],
             [0.8515, 1.4133, 0.7802],
             [0.7266, 0.7802, 1.4133]
             ],
         "unit":"miles"
        },
        "3wires":{
         "R":[
             [0.4013, 0.0953, 0.0953],
             [0.0953, 0.4013, 0.0953],
             [0.0953, 0.0953, 0.4013]
             ],
         "X":[
             [1.4133, 0.8515, 0.7266],
             [0.8515, 1.4133, 0.7802],
             [0.7266, 0.7802, 1.4133]
             ],
         "unit":"miles"
        }
        }
}
[3]:
grid_1 = grid()
grid_1.read(data)  # Load data

grid_1.pf()  # solve power flow
[4]:
fig=plot_results(grid_1)

Results from IEEE

[5]:
V2_ag = 7107*np.exp(1j*np.deg2rad(-0.3))
V2_bg = 7140*np.exp(1j*np.deg2rad(-120.3))
V2_cg = 7121*np.exp(1j*np.deg2rad(119.6))

V3_ag = 2247.6*np.exp(1j*np.deg2rad(-3.7))
V3_bg = 2269*np.exp(1j*np.deg2rad(-123.5))
V3_cg = 2256*np.exp(1j*np.deg2rad(116.4))

V4_ag = 1918*np.exp(1j*np.deg2rad(-9.1))
V4_bg = 2061*np.exp(1j*np.deg2rad(-128.3))
V4_cg = 1981*np.exp(1j*np.deg2rad(110.9))

I12_a = 347.9*np.exp(1j*np.deg2rad(-34.9))
I12_b = 323.7*np.exp(1j*np.deg2rad(-154.2))
I12_c = 336.8*np.exp(1j*np.deg2rad(85.0))

I34_a = 1042.8*np.exp(1j*np.deg2rad(-34.9))
I34_b = 970.2*np.exp(1j*np.deg2rad(-154.2))
I34_c = 1009.6*np.exp(1j*np.deg2rad(85.0))

s_a = V4_ag*np.conj(I34_a)
s_b = V4_bg*np.conj(I34_b)
s_c = V4_cg*np.conj(I34_c)


Results comparative

[6]:
error_v4_a = (abs(V4_ag)-grid_1.buses[3]['v_an'])/abs(V4_ag)*100
error_v4_b = (abs(V4_bg)-grid_1.buses[3]['v_bn'])/abs(V4_bg)*100
error_v4_c = (abs(V4_cg)-grid_1.buses[3]['v_cn'])/abs(V4_cg)*100

print('|V4_a|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_ag), grid_1.buses[3]['v_an'], error_v4_a))
print('|V4_b|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_bg), grid_1.buses[3]['v_bn'], error_v4_b))
print('|V4_c|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_cg), grid_1.buses[3]['v_cn'], error_v4_c))

|V4_a|: reference = 1918.00 V, pydgrid = 1914.31 V, error = 0.19 %
|V4_b|: reference = 2061.00 V, pydgrid = 2071.14 V, error = -0.49 %
|V4_c|: reference = 1981.00 V, pydgrid = 1974.56 V, error = 0.33 %
[7]:
error_p_a = (s_a.real - (-grid_1.buses[3]['p_a']))/s_a.real*100
error_p_b = (s_b.real - (-grid_1.buses[3]['p_b']))/s_a.real*100
error_p_c = (s_c.real - (-grid_1.buses[3]['p_c']))/s_c.real*100

print('P_a: reference = {:0.2f} kW, pydgrid = {:0.2f} kW, error = {:0.2f} %'.format(s_a.real/1000, -grid_1.buses[3]['p_a']/1000,error_p_a))
print('P_b: reference = {:0.2f} kW, pydgrid = {:0.2f} kW, error = {:0.2f} %'.format(s_b.real/1000, -grid_1.buses[3]['p_b']/1000,error_p_b))
print('P_c: reference = {:0.2f} kW, pydgrid = {:0.2f} kW, error = {:0.2f} %'.format(s_c.real/1000, -grid_1.buses[3]['p_c']/1000,error_p_c))

P_a: reference = 1800.72 kW, pydgrid = 1800.00 kW, error = 0.04 %
P_b: reference = 1798.74 kW, pydgrid = 1800.00 kW, error = -0.07 %
P_c: reference = 1799.13 kW, pydgrid = 1800.00 kW, error = -0.05 %
[8]:
error_q_a = (s_a.imag - (-grid_1.buses[3]['q_a']))/s_a.real*100
error_q_b = (s_b.imag - (-grid_1.buses[3]['q_b']))/s_a.real*100
error_q_c = (s_c.imag - (-grid_1.buses[3]['q_c']))/s_c.real*100

print('Q_a: reference = {:0.2f} kvar, pydgrid = {:0.2f} kvar, error = {:0.2f} %'.format(s_a.imag/1000, -grid_1.buses[3]['q_a']/1000,error_q_a))
print('Q_b: reference = {:0.2f} kvar, pydgrid = {:0.2f} kvar, error = {:0.2f} %'.format(s_b.imag/1000, -grid_1.buses[3]['q_b']/1000,error_q_b))
print('Q_c: reference = {:0.2f} kvar, pydgrid = {:0.2f} kvar, error = {:0.2f} %'.format(s_c.imag/1000, -grid_1.buses[3]['q_c']/1000,error_q_c))

Q_a: reference = 870.50 kvar, pydgrid = 871.78 kvar, error = -0.07 %
Q_b: reference = 873.42 kvar, pydgrid = 871.78 kvar, error = 0.09 %
Q_c: reference = 873.61 kvar, pydgrid = 871.78 kvar, error = 0.10 %
[9]:
V2_ag = 12340*np.exp(1j*np.deg2rad(29.7))
V2_bg = 12349*np.exp(1j*np.deg2rad(-90.4))
V2_cg = 12318*np.exp(1j*np.deg2rad(149.6))

V3_ag = 2249*np.exp(1j*np.deg2rad(-33.7))
V3_bg = 2263*np.exp(1j*np.deg2rad(-153.4))
V3_cg = 2259*np.exp(1j*np.deg2rad(86.4))

V4_ag = 1920*np.exp(1j*np.deg2rad(-39.1))
V4_bg = 2054*np.exp(1j*np.deg2rad(-158.3))
V4_cg = 1986*np.exp(1j*np.deg2rad(80.9))

I12_a = 335.0*np.exp(1j*np.deg2rad(-35.7))
I12_b = 331.8*np.exp(1j*np.deg2rad(-154.0))
I12_c = 341.6*np.exp(1j*np.deg2rad(85.6))

I34_a = 1041.9*np.exp(1j*np.deg2rad(-64.9))
I34_b = 973.7*np.exp(1j*np.deg2rad(175.9))
I34_c = 1007.0*np.exp(1j*np.deg2rad(55.0))

s_a = V4_ag*np.conj(I34_a)
s_b = V4_bg*np.conj(I34_b)
s_c = V4_cg*np.conj(I34_c)
[10]:
feet2m = 0.3048

data = {
"lines":[
        {"bus_j": "1",  "bus_k": "2",  "code": "4wires3", "m": 2000.0*feet2m},
        {"bus_j": "3",  "bus_k": "4",  "code": "4wires", "m": 2500.0*feet2m}
        ],
"buses":[
        {"bus": "1",  "pos_x":             0, "pos_y": 0, "units": "m", "U_kV":12.47},
        {"bus": "2",  "pos_x": 2000.0*feet2m, "pos_y": 0, "units": "m", "U_kV":12.47},
        {"bus": "3",  "pos_x": 2400.0*feet2m, "pos_y": 0, "units": "m", "U_kV":4.16},
        {"bus": "4",  "pos_x": 4500.0*feet2m, "pos_y": 0, "units": "m", "U_kV":4.16},
        ],
"grid_formers":[
        {"bus": "1","bus_nodes": [1, 2, 3],
        "kV": [7.2, 7.2, 7.2],
        "deg": [0, -120.0, 120.0]
        }
        ],
"transformers":[
                {"bus_j": "2",  "bus_k": "3",  "S_n_kVA": 6000.0, "U_j_kV":12.47, "U_k_kV":4.16,
                 "R_cc_pu": 0.01, "X_cc_pu":0.06, "connection": "Dyn11",   "conductors_j": 3, "conductors_k": 4},
               ],
"loads":[
        {"bus": "4" , "kW":  [s_a.real/1000,s_b.real/1000,s_c.real/1000],
                    "kvar":  [s_a.imag/1000,s_b.imag/1000,s_c.imag/1000],"type":"3P+N"}
        ],
        "shunts":[
                 {"bus": "3" , "R": 1.0e-8, "X": 0.0, "bus_nodes": [4,0]},
                 {"bus": "4" , "R": 1.0e-8, "X": 0.0, "bus_nodes": [4,0]}
                 ],
    "line_codes":
        {"4wires":{
      'R':[[0.40129546, 0.09529546, 0.09529546, 0.09529546],
           [0.09529546, 0.40129546, 0.09529546, 0.09529546],
           [0.09529546, 0.09529546, 0.40129546, 0.09529546],
           [0.09529546, 0.09529546, 0.09529546, 0.68729546]],
      'X':[[1.41320199, 0.85145659, 0.72652115, 0.75237199],
           [0.85145659, 1.41320199, 0.78013375, 0.78644288],
           [0.72652115, 0.78013375, 1.41320199, 0.76734916],
           [0.75237199, 0.78644288, 0.76734916, 1.5464097 ]],
         "unit":"miles"
        },
        "3wires":{
         "R":[[0.45753751, 0.15593636, 0.15347119],
              [0.15593636, 0.4666138 , 0.15799251],
              [0.15347119, 0.15799251, 0.46145871]],
         "X":[[1.07802078, 0.50165398, 0.38491254],
       [0.50165398, 1.04815115, 0.42362819],
       [0.38491254, 0.42362819, 1.06504486]
             ],
         "unit":"miles"
        },
    "4wires3":{
         "R":[
             [0.4576, 0.1559, 0.1535],
             [0.1559, 0.4666, 0.1580],
             [0.1535, 0.1580, 0.4615]
             ],
         "X":[
             [1.4133, 0.8515, 0.7266],
             [0.8515, 1.4133, 0.7802],
             [0.7266, 0.7802, 1.4133]
             ],
         "unit":"miles"
        },
        }
}
[11]:
grid_1 = grid()
grid_1.read(data)  # Load data

grid_1.pf()  # solve power flow
[12]:
fig=plot_results(grid_1)
[13]:
error_v4_a = (abs(V4_ag)-abs(grid_1.res['4'].v_ag))/abs(V4_ag)*100
error_v4_b = (abs(V4_bg)-abs(grid_1.res['4'].v_bg))/abs(V4_bg)*100
error_v4_c = (abs(V4_cg)-abs(grid_1.res['4'].v_cg))/abs(V4_cg)*100

print('|V4_a|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_ag),abs(grid_1.res['4'].v_ag), error_v4_a))
print('|V4_b|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_bg),abs(grid_1.res['4'].v_bg), error_v4_b))
print('|V4_c|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_cg),abs(grid_1.res['4'].v_cg), error_v4_c))

|V4_a|: reference = 1920.00 V, pydgrid = 1919.71 V, error = 0.01 %
|V4_b|: reference = 2054.00 V, pydgrid = 2054.97 V, error = -0.05 %
|V4_c|: reference = 1986.00 V, pydgrid = 1985.58 V, error = 0.02 %
[14]:
V2_ag = 12350*np.exp(1j*np.deg2rad(29.6 ))
V2_bg = 12314*np.exp(1j*np.deg2rad(-90.4))
V2_cg = 12333*np.exp(1j*np.deg2rad(149.8))

V3_ag = 2290*np.exp(1j*np.deg2rad(-32.4 ))
V3_bg = 2261*np.exp(1j*np.deg2rad(-153.8))
V3_cg = 2214*np.exp(1j*np.deg2rad(85.2))

V4_ag = 2157*np.exp(1j*np.deg2rad(-34.2))
V4_bg = 1936*np.exp(1j*np.deg2rad(-157.0))
V4_cg = 1849*np.exp(1j*np.deg2rad(73.4))

I12_a = 285.7*np.exp(1j*np.deg2rad(-27.6))
I12_b = 402.7*np.exp(1j*np.deg2rad(-149.6))
I12_c = 349.1*np.exp(1j*np.deg2rad(74.4))

I34_a = 695.5*np.exp(1j*np.deg2rad(-66.0))
I34_b = 1033*np.exp(1j*np.deg2rad(177.1))
I34_c = 1352*np.exp(1j*np.deg2rad(55.2 ))

s_a = V4_ag*np.conj(I34_a)
s_b = V4_bg*np.conj(I34_b)
s_c = V4_cg*np.conj(I34_c)
[15]:
feet2m = 0.3048

data = {
"lines":[
        {"bus_j": "1",  "bus_k": "2",  "code": "4wires3", "m": 2000.0*feet2m},
        {"bus_j": "3",  "bus_k": "4",  "code": "4wires", "m": 2500.0*feet2m}
        ],
"buses":[
        {"bus": "1",  "pos_x":             0, "pos_y": 0, "units": "m", "U_kV":12.47},
        {"bus": "2",  "pos_x": 2000.0*feet2m, "pos_y": 0, "units": "m", "U_kV":12.47},
        {"bus": "3",  "pos_x": 2400.0*feet2m, "pos_y": 0, "units": "m", "U_kV":4.16},
        {"bus": "4",  "pos_x": 4500.0*feet2m, "pos_y": 0, "units": "m", "U_kV":4.16},
        ],
"grid_formers":[
        {"bus": "1","bus_nodes": [1, 2, 3],
        "kV": [7.2, 7.2, 7.2],
        "deg": [0, -120.0, 120.0]
        }
        ],
"transformers":[
                {"bus_j": "2",  "bus_k": "3",  "S_n_kVA": 6000.0, "U_j_kV":12.47, "U_k_kV":4.16,
                 "R_cc_pu": 0.01, "X_cc_pu":0.06, "connection": "Dyn11",   "conductors_j": 3, "conductors_k": 4},
               ],
"loads":[
        {"bus": "4" , "kW":  [s_a.real/1000,s_b.real/1000,s_c.real/1000],
                    "kvar":  [s_a.imag/1000,s_b.imag/1000,s_c.imag/1000],"type":"3P+N"}
        ],
        "shunts":[
                 {"bus": "3" , "R": 1.0e-8, "X": 0.0, "bus_nodes": [4,0]},
                 {"bus": "4" , "R": 1.0e-8, "X": 0.0, "bus_nodes": [4,0]}
                 ],
    "line_codes":
        {"4wires":{
      'R':[[0.40129546, 0.09529546, 0.09529546, 0.09529546],
           [0.09529546, 0.40129546, 0.09529546, 0.09529546],
           [0.09529546, 0.09529546, 0.40129546, 0.09529546],
           [0.09529546, 0.09529546, 0.09529546, 0.68729546]],
      'X':[[1.41320199, 0.85145659, 0.72652115, 0.75237199],
           [0.85145659, 1.41320199, 0.78013375, 0.78644288],
           [0.72652115, 0.78013375, 1.41320199, 0.76734916],
           [0.75237199, 0.78644288, 0.76734916, 1.5464097 ]],
         "unit":"miles"
        },
        "3wires":{
         "R":[[0.45753751, 0.15593636, 0.15347119],
              [0.15593636, 0.4666138 , 0.15799251],
              [0.15347119, 0.15799251, 0.46145871]],
         "X":[[1.07802078, 0.50165398, 0.38491254],
       [0.50165398, 1.04815115, 0.42362819],
       [0.38491254, 0.42362819, 1.06504486]
             ],
         "unit":"miles"
        },
    "4wires3":{
         "R":[
             [0.4576, 0.1559, 0.1535],
             [0.1559, 0.4666, 0.1580],
             [0.1535, 0.1580, 0.4615]
             ],
         "X":[
             [1.4133, 0.8515, 0.7266],
             [0.8515, 1.4133, 0.7802],
             [0.7266, 0.7802, 1.4133]
             ],
         "unit":"miles"
        },
        }
}
[16]:
grid_1 = grid()
grid_1.read(data)  # Load data

grid_1.pf()  # solve power flow
Maximum number of iterations reached: 20
[17]:
fig=plot_results(grid_1)
[18]:
error_v4_a = (abs(V4_ag)-abs(grid_1.res['4'].v_ag))/abs(V4_ag)*100
error_v4_b = (abs(V4_bg)-abs(grid_1.res['4'].v_bg))/abs(V4_bg)*100
error_v4_c = (abs(V4_cg)-abs(grid_1.res['4'].v_cg))/abs(V4_cg)*100

print('|V4_a|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_ag),abs(grid_1.res['4'].v_ag), error_v4_a))
print('|V4_b|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_bg),abs(grid_1.res['4'].v_bg), error_v4_b))
print('|V4_c|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_cg),abs(grid_1.res['4'].v_cg), error_v4_c))

|V4_a|: reference = 2157.00 V, pydgrid = 2157.08 V, error = -0.00 %
|V4_b|: reference = 1936.00 V, pydgrid = 1935.80 V, error = 0.01 %
|V4_c|: reference = 1849.00 V, pydgrid = 1849.64 V, error = -0.03 %
[ ]:

[19]:
feet2m = 0.3048
mile2m = 1609.34
mile2km = mile2m/1000
inch2m = 0.0253999368683

data = {
"lines":[
        {"bus_j": "1",  "bus_k": "2",  "code": "4wires3", "m": 2000.0*feet2m},
        {"bus_j": "3",  "bus_k": "4",  "code": "4wires", "m": 2500.0*feet2m}
        ],
"buses":[
        {"bus": "1",  "pos_x":             0, "pos_y": 0, "units": "m", "U_kV":12.47},
        {"bus": "2",  "pos_x": 2000.0*feet2m, "pos_y": 0, "units": "m", "U_kV":12.47},
        {"bus": "3",  "pos_x": 2400.0*feet2m, "pos_y": 0, "units": "m", "U_kV":4.16},
        {"bus": "4",  "pos_x": 4500.0*feet2m, "pos_y": 0, "units": "m", "U_kV":4.16},
        ],
"grid_formers":[
        {"bus": "1","bus_nodes": [1, 2, 3],
        "kV": [7.2, 7.2, 7.2],
        "deg": [0, -120.0, 120.0]
        }
        ],
"transformers":[
                {"bus_j": "2",  "bus_k": "3",  "S_n_kVA": 6000.0, "U_j_kV":12.47, "U_k_kV":4.16,
                 "R_cc_pu": 0.01, "X_cc_pu":0.06, "connection": "Dyn11",   "conductors_j": 3, "conductors_k": 4},
               ],
"loads":[
        {"bus": "4" , "kW":  [s_a.real/1000,s_b.real/1000,s_c.real/1000],
                    "kvar":  [s_a.imag/1000,s_b.imag/1000,s_c.imag/1000],"type":"3P+N"}
        ],
        "shunts":[
                 {"bus": "3" , "R": 1.0e-8, "X": 0.0, "bus_nodes": [4,0]},
                 {"bus": "4" , "R": 1.0e-8, "X": 0.0, "bus_nodes": [4,0]}
                 ],
    "line_codes":
        {"4wires":{
                    'GMR':[0.0244*feet2m,0.0244*feet2m,0.0244*feet2m,0.00814*feet2m], # m
                    'diam_c':[1.05/100]*4,    # m
                    'R_cond':[0.306/mile2m, 0.306/mile2m,0.306/mile2m,0.592/mile2m],    # Ohm/m
                    'pos_x':[-4*feet2m, -1.5*feet2m, 3.0*feet2m, 0.0*feet2m],
                    'pos_y':[28*feet2m, 28*feet2m, 28*feet2m, 24*feet2m],
                    'freq':60.0
        },
        "3wires":{
         "R":[[0.45753751, 0.15593636, 0.15347119],
              [0.15593636, 0.4666138 , 0.15799251],
              [0.15347119, 0.15799251, 0.46145871]],
         "X":[[1.07802078, 0.50165398, 0.38491254],
       [0.50165398, 1.04815115, 0.42362819],
       [0.38491254, 0.42362819, 1.06504486]
             ],
         "unit":"miles"
        },
    "4wires3":{
         "R":[
             [0.4576, 0.1559, 0.1535],
             [0.1559, 0.4666, 0.1580],
             [0.1535, 0.1580, 0.4615]
             ],
         "X":[
             [1.4133, 0.8515, 0.7266],
             [0.8515, 1.4133, 0.7802],
             [0.7266, 0.7802, 1.4133]
             ],
         "unit":"miles"
        },
        }
}
[20]:
grid_1 = grid()
grid_1.read(data)  # Load data

grid_1.pf()  # solve power flow
Maximum number of iterations reached: 20
[21]:
fig=plot_results(grid_1)
[22]:
error_v4_a = (abs(V4_ag)-abs(grid_1.res['4'].v_ag))/abs(V4_ag)*100
error_v4_b = (abs(V4_bg)-abs(grid_1.res['4'].v_bg))/abs(V4_bg)*100
error_v4_c = (abs(V4_cg)-abs(grid_1.res['4'].v_cg))/abs(V4_cg)*100

print('|V4_a|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_ag),abs(grid_1.res['4'].v_ag), error_v4_a))
print('|V4_b|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_bg),abs(grid_1.res['4'].v_bg), error_v4_b))
print('|V4_c|: reference = {:0.2f} V, pydgrid = {:0.2f} V, error = {:0.2f} %'.format(abs(V4_cg),abs(grid_1.res['4'].v_cg), error_v4_c))

|V4_a|: reference = 2157.00 V, pydgrid = 2157.08 V, error = -0.00 %
|V4_b|: reference = 1936.00 V, pydgrid = 1935.80 V, error = 0.01 %
|V4_c|: reference = 1849.00 V, pydgrid = 1849.64 V, error = -0.03 %
[ ]: