Skip to content

Geometry and Materials

Geometry should stay explicit in public examples. The current curated surface uses a small set of shapes and named materials that map cleanly to the supported reference lane.

ShapeSignatureTypical use
BoxBox(corner_lo, corner_hi)substrates, ground planes, patch metal, dielectric blocks
SphereSphere(center, radius)resonators, scatterers, simple inclusions
CylinderCylinder(center, radius, height, axis="z")vias, posts, cylindrical inclusions
PolylineWirepolyline-defined wire geometrywire-like studies and routed conductors
ViaVia(center=..., drill_radius=..., pad_radius=..., layers=..., material="pec")PCB-style interconnects
CurvedPatchCurvedPatch(center, length, width, radius, axis="x")curved-conductor studies
from rfx import DebyePole, LorentzPole
sim.add_material("fr4", eps_r=4.3, sigma=0.02)
sim.add_material("copper", sigma=5.8e7)
sim.add_material(
"custom_dielectric",
eps_r=6.0,
debye_poles=[DebyePole(delta_eps=12.0, tau=9.4e-12)],
)
ArgumentMeaningNotes
eps_rrelative permittivitydefault is 1.0
sigmaconductivityuseful for lossy dielectrics or metals
mu_rrelative permeabilitydefault is 1.0
debye_polesdispersive Debye termscurrent public guides should use the actual DebyePole(delta_eps, tau) signature
lorentz_polesdispersive Lorentz termscurrent code exposes LorentzPole(omega_0, delta, kappa)
chi3third-order nonlinearityadvanced / research-oriented

Authoring gap to watch: legacy guide text still shows an older LorentzPole parameterization. The actual API signature is LorentzPole(omega_0, delta, kappa).

Geometry and materials are part of the claims-bearing reference lane only when they are paired with a supported boundary / source / observable combination. If a structure depends on a shadow lane, the public docs should say so explicitly.