SlabDB

class pylayers.antprop.slab.SlabDB(fileslab='', filemat='', ds={}, dm={'AIR': {'epr': (1+0j), 'mur': (1+0j), 'roughness': 0.0, 'sigma': 0.0}, 'METAL': {'epr': (1+0j), 'mur': (1+0j), 'roughness': 0.0, 'sigma': 10000000}, '_AIR': {'epr': (1+0j), 'mur': (1+0j), 'roughness': 0.0, 'sigma': 0.0}})[source]

Bases: dict

Slab data base

DB : slab dictionnary

Methods Summary

add(name, lmatname, lthick[, color])

add a slab from its properties

addgui(name)

add a slab in the DB

delete(name)

delete an element from the database

edit(name)

edit a Slab in the DB

load([_fileini])

Load a Material from a .ini file

save([_fileini])

save SlabDB in a .ini file

show([name, fGHz])

evaluate and show a given slab

showall()

show all slabs

Methods Documentation

add(name, lmatname, lthick, color='black')[source]

add a slab from its properties

name : string lmatname : list of mat name lthick : list ot float

list of layer thickness in meters

Examples from the paper:

“Reflection and Transmission Properties of Building Materials in D-Band for Modeling Future mm-Wave Communication Systems ” Martin Jacob and Thomas Kurner and Robert Geise and Radoslaw Piesiewicz EUCAP 2010

>>> from pylayers.antprop.slab import *
>>> import numpy as np
>>> import matplotlib.pylab as plt
>>> sl = SlabDB(filemat='matDB.ini',fileslab='slabDB.ini')
>>> sl.mat.add(name='ConcreteJc',cval=3.5,alpha_cmm1=1.9,fGHz=120,typ='THz')
>>> sl.mat.add(name='GlassJc',cval=2.55,alpha_cmm1=2.4,fGHz=120,typ='THz')
>>> sl.add('ConcreteJc',['ConcreteJc'],[0.049])
>>> sl.add('DoubleGlass',['GlassJc','AIR','GlassJc'],[0.0029,0.0102,0.0029])
>>> theta = np.linspace(20,60,100)*np.pi/180
>>> sl['ConcreteJc'].eval(120,theta)
>>> f,a=sl['ConcreteJc'].plotwrt(var='a',typ=['l20'])
>>> fig = plt.figure()
>>> sl['DoubleGlass'].eval(120,theta)
>>> f,a = sl['DoubleGlass'].plotwrt(var='a',typ=['l20'])
>>> freq = np.linspace(110,135,50)
>>> fig = plt.figure()
>>> sl['DoubleGlass'].eval(freq,theta)
>>> sl['DoubleGlass'].pcolor(dB=True)

(Source code)

Exemple from paper “[Kiani2007] Glass Characterization for Designing Frequency Selective Surfaces to Improve Transmission through Energy saving glass windows Kiani 2007” The surface impedance is \(R = 4 \Omega\), the thicknesss is \(d = 100 nm\)

Pilkington Spectrum OnLine applet

Design of Energy Saving Windows with high Transmission at 900MHz and 1800 MHz

\[\sigma = \frac{1}{Rd} = 2.5 10^{6} S/m\]
>>> from pylayers.antprop.slab import *
>>> import numpy as np
>>> import matplotlib.pylab as plt
>>> sl = SlabDB(filemat='matDB.ini',fileslab='slabDB.ini')
>>> sl.mat.add(name='CoatingPilkington',cval=1,sigma=2.5e6,typ='epsr')
>>> sl.mat.add(name='GlassPilkington',cval = 6.9,sigma = 5e-4,typ='epsr')
>>> sl.add('Optitherm382',['CoatingPilkington','GlassPilkington'],[100e-9,0.00382])
>>> fGHz  = np.linspace(0.9,2.2,50)
>>> theta = np.linspace(0,np.pi/2,100)
>>> sl['Optitherm382'].eval(fGHz,theta)
>>> sl['Optitherm382'].pcolor(dB=True)

(Source code)

../_images/pylayers-antprop-slab-SlabDB-2.png
addgui(name)[source]

add a slab in the DB

name

delete(name)[source]

delete an element from the database

name : string

edit(name)[source]

edit a Slab in the DB

name : string

load(_fileini='slabDB.ini')[source]

Load a Material from a .ini file

_fileini : string

save(_fileini='slabDB.ini')[source]

save SlabDB in a .ini file

_fileini : string

show(name='WOOD', fGHz=array([2.4]))[source]

evaluate and show a given slab

name : string fGHz : np.array

showall()[source]

show all slabs