Microstrip Line

using CircuitSim

circ = Circuit()

sub = Substrate("Sub1", er=4.5, h=1.6e-3, t=35e-6)
add_component!(circ, sub)

port1 = ACPowerSource("P1", port_num=1, impedance=50.0)
port2 = ACPowerSource("P2", port_num=2, impedance=50.0)
add_component!(circ, port1)
add_component!(circ, port2)

MS = MicrostripLine("MS1", substrate=sub, w=1e-3, l=10e-3)
add_component!(circ, MS)

gnd = Ground("GND")
add_component!(circ, gnd)

@connect circ port1.nplus MS.n1
@connect circ MS.n2 port2.nplus
@connect circ port1.nminus gnd
@connect circ port2.nminus gnd

sparam = SParameterAnalysis(start=1e9, stop=10e9, points=100,
    sweep_type="linear",
    z0=50.0
)

result = simulate_qucsator(circ, sparam)
SParameterResult([1.0e9, 1.090909090909091e9, 1.1818181818181818e9, 1.2727272727272727e9, 1.3636363636363635e9, 1.4545454545454545e9, 1.5454545454545455e9, 1.6363636363636365e9, 1.7272727272727273e9, 1.818181818181818e9  …  9.181818181818182e9, 9.272727272727272e9, 9.363636363636364e9, 9.454545454545454e9, 9.545454545454544e9, 9.636363636363636e9, 9.727272727272728e9, 9.818181818181818e9, 9.909090909090908e9, 1.0e10], 2, Dict{Tuple{Int64, Int64}, Vector{ComplexF64}}((1, 2) => [0.8927174085361094 - 0.39494837213064315im, 0.8742417708710039 - 0.4259165750109903im, 0.8546553473573181 - 0.4557660238034027im, 0.8340492285226102 - 0.4844602725690857im, 0.8125142764582741 - 0.511971930969188im, 0.7901401453331245 - 0.5382822561979642im, 0.7670144053973773 - 0.5633806435752036im, 0.7432217775847814 - 0.5872640369597769im, 0.7188434820787374 - 0.6099362796869109im, 0.6939567008081492 - 0.6314074256299093im  …  -0.872550183761905 + 0.36430386106184176im, -0.8535909909186257 + 0.3971582828865828im, -0.8332872659017249 + 0.428739327574528im, -0.811755864619066 + 0.4589876986425306im, -0.7891153932094874 + 0.48785744510689566im, -0.7654845052203075 + 0.5153156361114982im, -0.7409803313204603 + 0.5413418106269415im, -0.7157170693546727 + 0.5659272380796893im, -0.6898047538631767 + 0.589074028044713im, -0.6633482158388081 + 0.6107941274588661im], (1, 1) => [0.08117939214720632 + 0.17857456777820763im, 0.09487189268768681 + 0.1899026515784656im, 0.10925228877291425 + 0.2001226880925385im, 0.12422358602488098 + 0.20920052646426995im, 0.1396886019971872 + 0.2171113857241945im, 0.15555093907701864 + 0.22383946702088267im, 0.17171585456756455 + 0.22937746701307485im, 0.18809102066977135 + 0.233726013531318im, 0.20458717093501852 + 0.23689304421033552im, 0.2211186332318966 + 0.23889314773095544im  …  0.0905257075308022 + 0.17263174681715018im, 0.10513007831272886 + 0.18585766144452864im, 0.12065346434919706 + 0.19784252506784106im, 0.1369744859815219 + 0.20852812248311672im, 0.15396944859732195 + 0.21786976309831438im, 0.1715140325105707 + 0.225835984662847im, 0.18948484963397622 + 0.2324080340428014im, 0.20776083918344146 + 0.23757916112926572im, 0.2262244833484823 + 0.24135376425844043im, 0.24476283223056072 + 0.24374642586395057im], (2, 2) => [0.08117939214720632 + 0.17857456777820763im, 0.09487189268768681 + 0.1899026515784656im, 0.10925228877291425 + 0.2001226880925385im, 0.12422358602488098 + 0.20920052646426995im, 0.1396886019971872 + 0.2171113857241945im, 0.15555093907701864 + 0.22383946702088267im, 0.17171585456756455 + 0.22937746701307485im, 0.18809102066977135 + 0.233726013531318im, 0.20458717093501852 + 0.23689304421033552im, 0.2211186332318966 + 0.23889314773095544im  …  0.0905257075308022 + 0.17263174681715018im, 0.10513007831272886 + 0.18585766144452864im, 0.12065346434919706 + 0.19784252506784106im, 0.1369744859815219 + 0.20852812248311672im, 0.15396944859732195 + 0.21786976309831438im, 0.1715140325105707 + 0.225835984662847im, 0.18948484963397622 + 0.2324080340428014im, 0.20776083918344146 + 0.23757916112926572im, 0.2262244833484823 + 0.24135376425844043im, 0.24476283223056072 + 0.24374642586395057im], (2, 1) => [0.8927174085361094 - 0.39494837213064315im, 0.8742417708710039 - 0.4259165750109903im, 0.8546553473573181 - 0.4557660238034027im, 0.8340492285226102 - 0.4844602725690857im, 0.8125142764582741 - 0.511971930969188im, 0.7901401453331245 - 0.5382822561979642im, 0.7670144053973773 - 0.5633806435752036im, 0.7432217775847814 - 0.5872640369597769im, 0.7188434820787374 - 0.6099362796869109im, 0.6939567008081492 - 0.6314074256299093im  …  -0.872550183761905 + 0.36430386106184176im, -0.8535909909186257 + 0.3971582828865828im, -0.8332872659017249 + 0.428739327574528im, -0.811755864619066 + 0.4589876986425306im, -0.7891153932094874 + 0.48785744510689566im, -0.7654845052203075 + 0.5153156361114982im, -0.7409803313204603 + 0.5413418106269415im, -0.7157170693546727 + 0.5659272380796893im, -0.6898047538631767 + 0.589074028044713im, -0.6633482158388081 + 0.6107941274588661im]), 50.0, nothing, nothing, nothing, nothing)