Calculate mm-wave transmittance and reflectance of materials
Project description
armmwave
Code that calculates transmittace and reflectance of materials at millimeter wavelengths.
This software was developed to aid in development of anti-reflection coatings
for millimeter-wave optics---specifically, for optics used in Cosmic Microwave
Background (CMB) experiments. CMB experiments have begun to adopt
high-refractive index materials for their lenses. While there are many perks to
this optical design, there are also a few drawbacks. One of these is reflection.
High-refractive index materials---such as aluminum oxide and silicon, both of
which are used in CMB experiments---reflect a significant fraction of the light
that fall on them. To reduce that fraction we create anti-reflection coatings to
cover the lenses.
One way to make a coating that operates over a wide range of frequencies
(wavelengths) is to stack layers of different dielectric materials. Working out
the transmittance and reflectance of a multilayer dielectric structure is a
problem that can be handled using the characteristic matrix method. Enter
armmwave
.
Please note: This code is under active development. While it has been verified against experimental spectroscopic data (~25 to 500 GHz; examples will be uploaded soon), make sure you understand the intricacies of your specific data or model.
Examples
armmwave
provides a means to set up and evaluate models of multilayer
dielectric media. To do this, create one or more Layer
's (with associated
refractive index and thickness---and an optional loss term), create a Source
layer and Terminator
layer (which are required for bookkeeping), and a
Model
. By default, reflectance and transmittance is calculated between 500 MHz
and 500 GHz, but you can change this if you want. Here's an example model of a
sheet of ceramic material (in this case aluminum oxide) in a vacuum:
import armmwave.layer as awl
import armmwave.model as awm
# First create a list of layers (dielectrics) in the order
# they should be evaluated
layers = [awl.Source(),
awl.Layer(rind=3.1, thick=2e-3), # thickness in meters
awl.Terminator()]
# Now create the model framework, feed it the layers, and run!
model = awm.Model()
model.set_up(layers)
results = model.run()
model.run()
returns a dictionary with three keys: frequency
,
transmittance
, and reflectance
.
Contribution guidelines
This code is under active development. If you have an idea for a feature or use case, please open an issue ticket. Let's talk! If you have an idea and you've already written the code---that's great! Create a pull request and we can go from there.
Bugs
Let's face it: there are probably bugs. If you find one, please open an issue ticket. Include a description of the issue and, if possible, a minimal working example. I appreciate your patience (and your help).
TODO
- Figure out how to make TravisCI make wheels for me
- Better docs
- Examples
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file armmwave-0.1.0.tar.gz
.
File metadata
- Download URL: armmwave-0.1.0.tar.gz
- Upload date:
- Size: 17.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ba143e04dd3f51193711fc15e162d924428553792494052328b60c762cef973 |
|
MD5 | 3671cf6ef5764023b18cbfbfe8bbb5d3 |
|
BLAKE2b-256 | f3faa0feeb24ba4618d6024e7f7ed5dc9f8d519fc2184b3fbffefd610c3c931d |
File details
Details for the file armmwave-0.1.0-py3.7.egg
.
File metadata
- Download URL: armmwave-0.1.0-py3.7.egg
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4380bc6448c81bfc88f6b87139a34fe43c5fe15577eb259a1428f43cdc8adb7 |
|
MD5 | 2f49e5ece56be7edcc14fd23372dca05 |
|
BLAKE2b-256 | c30135b70e853a6725656591c0268203f3a7fa263f2b27f567f80cb5d9f71a55 |