rfnetwork

Linear circuit solver for networks of RF components.

github Github Repository

Installation

rfnetwork requires Python >= 3.9.

pip install rfnetwork

To build from source on Windows or Linux,

If building from source, a C++ compiler must be available on the system. On Windows systems the recommended compiler is the MS C++ Build Tools .

nvcc must be present if compiling the GPU accelerated solver. The CPU solver will still compile if nvcc is not found, but the GPU solver will not be available.

Features

  • Simulate networks of linear components with hierarchical building blocks.

  • Compute noise figure of multi-port networks.

  • Interactive tuning of variable components (i.e. switches, phase shifters, capacitors).

  • Supports internal voltage probes inside a network.

  • GPU accelerated FDTD solver.

Examples

Below is a gallery of examples

Filters

Filters

Noise Figure

Noise Figure

Yagi Antenna

Yagi Antenna

Interactive Tuning

Interactive Tuning

Microstrip Line

Microstrip Line

Vivaldi Antenna

Vivaldi Antenna

Network Probes

Network Probes

Coupled Stripline

Coupled Stripline

Coupled Microstrip Lines

Coupled Microstrip Lines

Dipole Antenna

Dipole Antenna

Combiners

Combiners

Wilkinson Combiner

Wilkinson Combiner

Dual-Polarized Patch Antenna

Dual-Polarized Patch Antenna

Combline Filter

Combline Filter

API Reference

rfnetwork.component

rfnetwork.elements

rfnetwork.network.Network([shunt, passive, ...])

Network of multiple components.

rfnetwork.solver.FDTD_Solver(bounding_box)

FDTD EM Solver for PCB geometries.

rfnetwork.plots.plot(axes, sdata, *paths[, ...])

Plots s-matrix or noise figure data over frequency.

rfnetwork.utils

rfnetwork.core.units.const()

Physical Constants.

rfnetwork.core.units.conv()

Unit conversion functions.