Substrate

class pmrf.materials.Substrate(h: Any = 0.0016, dielectric: Any = <factory>, conductor: Any = <factory>, t: Any = None, *, name: str | None = None, metadata: Any = None)

Bases: Module

A dielectric sheet of a given height, with the conductor printed on it.

Substrates can be used as a shared base that is injected into other models. For example, when combined with AbstractBuilder, one substrate can be shared between two lines within the same model.

>>> import pmrf as prf
>>> from pmrf.materials import Substrate
>>> from pmrf.models import AbstractBuilder, MicrostripLine
>>> class Board(AbstractBuilder):
...     substrate: Substrate
...     w1: prf.Param
...     w2: prf.Param
...     def build(self):
...         return (MicrostripLine(w=self.w1, substrate=self.substrate, length=0.1)
...              ** MicrostripLine(w=self.w2, substrate=self.substrate, length=0.2))
>>> board = Board(substrate=Substrate(h=1.6e-3, dielectric=4.3), w1=1e-3, w2=2e-3)
>>> [name for name in board.named_params() if name.endswith("ep_r")]
['substrate.dielectric.ep_r']
Parameters:
  • h (Param, default=1.6e-3) – Height of the dielectric sheet in meters.

  • dielectric (AbstractDielectric, default=ConstantDielectric(ep_r=4.3)) – The sheet material. A scalar permittivity or an (ep_r, tand) tuple is coerced into a ConstantDielectric.

  • conductor (AbstractConductor, default=BulkConductor()) – The metallization. A scalar conductivity in S/m is coerced into a BulkConductor.

  • t (Param | None, default=None) – Thickness of the metallization in meters, or None when it is unspecified. Unspecified is not the same input as zero: it asserts skin effect in operation at every frequency, so the conductor loss gets no dc resistance floor. A positive value gets the floor \(R_{dc}=1/(\sigma W t)\), and refines the geometry in those quasi-static formulations that are thickness-aware.

conductor: AbstractConductor

The metallization

dielectric: AbstractDielectric

The sheet material

h: Param = 0.0016

Height of the dielectric sheet

t: Param | None = None

Thickness of the metallization