Model Comparison to Qucs-S#
This notebook compares the S-parameter models from qpdk (using sax) against reference results from Qucs-S simulations. Each test suite validates a different component model.
The comparisons include:
Polar plots showing S-parameters in the complex plane
Magnitude and phase plots versus frequency
Visual validation of model accuracy against reference data
Discover Test Suites#
Dynamically discover all test suite classes that compare qpdk models to Qucs-S results. We find all classes that:
Are subclasses of
BaseCompareToQucs
Are not the base class itself
Are concrete classes (not abstract)
# Discover all available test suites
test_suites = discover_test_suites()
print(f"Found {len(test_suites)} test suite(s):")
for suite in test_suites:
print(f"\t· {suite.__name__}")
Found 4 test suite(s):
· TestCPWCompareToQucs
· TestCapacitorCompareToQucs
· TestCouplerStraightCompareToQucs
· TestInductorCompareToQucs
Model Comparison#
Compare the S-parameter models against Qucs-S reference data.
# Find and plot all test suites
for suite in test_suites:
test_instance = suite()
display(Markdown(f"### {test_instance.component_name}"))
display(Markdown(f"**Test Suite:** `{suite.__name__}`"))
display(
Markdown(
f"**Parameter:** {test_instance.parameter_name} = {test_instance.parameter_value / test_instance.parameter_unit:.2f} × 10^{int(np.log10(test_instance.parameter_unit))}"
)
)
display(Markdown(f"**CSV:** `{test_instance.csv_filename}`"))
test_instance.plot_comparison()
Coplanar waveguide
Test Suite: TestCPWCompareToQucs
Parameter: length = 10000000000.00 × 10^-6
CSV: cpw_w10_s_6_l10mm.csv
Capacitor
Test Suite: TestCapacitorCompareToQucs
Parameter: capacitance = 60.00 × 10^-15
CSV: capacitor_qucs.csv
Coupler Straight
Test Suite: TestCouplerStraightCompareToQucs
Parameter: length = 10000000.00 × 10^-6
CSV: coupler_straight_qucs.csv
Inductor
Test Suite: TestInductorCompareToQucs
Parameter: inductance = 10.00 × 10^-9
CSV: inductor_qucs.csv
Summary#
The plots above show comparisons between qpdk models (dashed lines) and Qucs-S reference simulations (solid lines) for various passive components:
Left plot: Polar representation showing S-parameters in the complex plane
Right plot: Magnitude (in dB) and phase (in radians) versus frequency
Good agreement between the models validates the accuracy of the qpdk implementations for use in circuit simulations and design optimization.