Tests | CodeCov |
---|---|
A small Julia package to calculate the surface impedance of rough metallic surfaces, useful in microwave
engineering and computational electromagnetics. The complex surface impedance (assuming
You can obtain MetalSurfaceImpedance using Julia's Pkg REPL-mode (hitting ]
as the first character of the command prompt):
(@v1.8) pkg> add MetalSurfaceImpedance
or with using Pkg; Pkg.add("MetalSurfaceImpedance")
.
The package exports two functions: Zsurface
and effective_conductivity
:
Zsurface(f, σ₀, Rq, disttype=:normal)
Returns the complex surface impedance [Ω/□] for a rough (or smooth) metallic surface that is many skin depths thick. The input arguments are:
f
: The frequency [Hz].σ₀
: The DC bulk conductivity of the metal [S/m].Rq
: The RMS surface roughness [m].disttype
: The type of probability distribution used to model the roughness. Choices are:normal
(the default, used for the "oxide" side of printed conductors) and:rayleigh
(used for the "foil" side of printed conductors).
effective_conductivity(f, σ₀, Rq, disttype=:normal)
Returns the effective conductivity [S/m] due to surface roughness. Input arguments are the same as those of Zsurface
.
julia> using MetalSurfaceImpedance
julia> σ₀ = 58e6 # 58 MS/m (pure Copper)
5.8e7
julia> Zsurface(10e9, σ₀, 0, :rayleigh) # Smooth copper surface
0.02608950694933611 + 0.02608950694933611im
julia> Zsurface(10e9, σ₀, 1e-6, :rayleigh) # 1 μm RMS roughness copper surface
0.07482375631106834 + 0.3177602251933982im
julia> effective_conductivity(10e9, σ₀, 0.5e-6)
2.276056215432205e7
julia> ans/σ₀
0.3924234854193457