Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/simonp0420/metalsurfaceimpedance.jl
Rapid, accurate calculation of rough metal surface impedance and effective conductivity in the Julia programming language
https://github.com/simonp0420/metalsurfaceimpedance.jl
antennas computational-electromagnetics electromagnetics microwave-engineering
Last synced: 25 days ago
JSON representation
Rapid, accurate calculation of rough metal surface impedance and effective conductivity in the Julia programming language
- Host: GitHub
- URL: https://github.com/simonp0420/metalsurfaceimpedance.jl
- Owner: simonp0420
- License: mit
- Created: 2022-11-18T21:42:19.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-24T11:28:49.000Z (over 1 year ago)
- Last Synced: 2024-10-09T23:24:38.933Z (about 1 month ago)
- Topics: antennas, computational-electromagnetics, electromagnetics, microwave-engineering
- Language: Julia
- Homepage:
- Size: 7.81 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# MetalSurfaceImpedance
| **Tests** | **CodeCov** |
|:--------:|:-------:|
|[![CI](https://github.com/simonp0420/MetalSurfaceImpedance.jl/workflows/CI/badge.svg?branch=main)](https://github.com/simonp0420/MetalSurfaceImpedance.jl/actions) | [![codecov.io](https://codecov.io/github/simonp0420/MetalSurfaceImpedance.jl/coverage.svg?branch=main)](https://codecov.io/github/simonp0420/MetalSurfaceImpedance.jl?branch=main) |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 $e^{j\omega t}$ time variation) is computed using a fast rational function-like approximation of the Gradient model. The approximation is taken from D. N. Grujić, "Simple and Accurate Approximation of Rough Conductor Surface Impedance," IEEE Trans. Microwave Theory Tech., vol. 70, no. 4, pp. 2053-2059, April 2022.## Installation
You can obtain MetalSurfaceImpedance using Julia's Pkg REPL-mode (hitting `]` as the first character of the command prompt):```julia
(@v1.8) pkg> add MetalSurfaceImpedance
```or with `using Pkg; Pkg.add("MetalSurfaceImpedance")`.
## Exported Functions
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`.
### Usage examples
```julia
julia> using MetalSurfaceImpedancejulia> σ₀ = 58e6 # 58 MS/m (pure Copper)
5.8e7julia> Zsurface(10e9, σ₀, 0, :rayleigh) # Smooth copper surface
0.02608950694933611 + 0.02608950694933611imjulia> Zsurface(10e9, σ₀, 1e-6, :rayleigh) # 1 μm RMS roughness copper surface
0.07482375631106834 + 0.3177602251933982imjulia> effective_conductivity(10e9, σ₀, 0.5e-6)
2.276056215432205e7julia> ans/σ₀
0.3924234854193457
```