25inline constexpr double kEta0 = 376.730313668;
double current_for_width(Coord width, double delta_t_c, Coord copper, bool external)
double prop_delay_ps_per_mm(double eps_eff)
Propagation delay in ps/mm for an effective permittivity: sqrt(eps_eff) / c.
double ipc2141_stripline(Coord w, Coord b, Coord t, double er)
b = plane spacing, strip centred
Coord width_for_current(double amps, double delta_t_c, Coord copper, bool external)
IPC-2221B §6.2 (from the IPC-D-275 charts): I = k * dT^0.44 * A^0.725, A cross-section in mil^2,...
double k_ratio(double k)
Complete elliptic integral ratio K(k) / K(k'), k' = sqrt(1 - k^2), by the arithmetic-geometric mean (...
Solved solve_monotone(const std::function< double(Coord)> &z_of, double target, Coord lo, Coord hi, bool decreasing)
Bisection on integer nm for a function that decreases (decreasing = true, e.g.
Pair coupled_microstrip(Coord w, Coord s, Coord h, Coord t, double er)
Edge-coupled microstrip: two strips of width w, edge-to-edge gap s.
Line gcpw(Coord w, Coord g, Coord h, Coord t, double er)
Grounded (conductor-backed) coplanar waveguide: strip w, gap g to the coplanar ground on both sides,...
const char * structure_name(Structure s)
double ipc2141_microstrip(Coord w, Coord h, Coord t, double er)
IPC-2141A's simple forms (the industry rule of thumb, ±5-10 %), used only as an independent cross-che...
constexpr double kC0MmPerPs
speed of light, mm/ps
Pair coupled_stripline(Coord w, Coord s, Coord h1, Coord h2, Coord t, double er)
Edge-coupled stripline (broadside layout not modelled).
Line microstrip(Coord w, Coord h, Coord t, double er)
Microstrip: strip of width w and thickness t on a dielectric of height h (strip bottom to plane),...
constexpr double kEta0
free-space wave impedance, ohm
double formula_error_pct(Structure s, bool differential, bool asymmetric)
Formula error stated in the report, percent (doc 15 §5.3 point 3; dev/assumptions-m13....
Line stripline(Coord w, Coord h1, Coord h2, Coord t, double er)
Stripline between two planes: h1 dielectric from the upper plane to the strip, h2 from the strip to t...
std::int64_t Coord
Engine coordinate: signed 64-bit nanometres.
double eps_eff
effective relative permittivity (sets the propagation delay)
double z0
< single-ended line
double z_even
< symmetric edge-coupled pair
std::string why
set when !ok: target below/above what [lo, hi] can reach
double z
impedance at value
Coord value
the solved width or gap, nm