This notebook will explain the process to obtain the dielectric permittivity of a single wire. We consider the system of long continuous wires and will demonstrate that its effective permittivity depends on the wire surface impedance. Previously was have demonstrated that the response of such an array is similar to that of a low-density plasma of very heavy charged particles, which is a consequence of confining the electrons within thin wires. As a result, the effective permittivity for waves with the electric field polarization along the wires has a characteristic plasma dispersion behavior $\epsilon_{eff} = \epsilon − (\omega_p/\omega)^2$ but with strongly reduced plasma frequency $\omega_p$,
where L is the cell parameter (the average distance between the wires). The value of the plasma frequency would be in the GHz range for the radius a of few microns and the cell parameter L of few millimeters.
Within this approach, the plasma frequency and the effective permittivity of continuous wire arrays are independent of the internal conductive and magnetic properties of the wires. $\epsilon_{eff}$ of such composites with nonmagnetic wires was deduced by solving the Maxwell equations within and outside the wires and employing a homogenization procedure,
where $p = \pi a^2/L^2$ is the wire volume concentration, $\epsilon_c = 4\pi i \sigma/\omega$ is the dielectric permittivity of the conductor, $\sigma$ is the wire conductivity (~$10^{16} [s^{-1}]$), $k_c^2 = 4\pi i \omega\sigma / c^2$ is the wave number in the wire, and $J_{0,1}$ are the Bessel functions.
Reference:
Experimental demonstration of tunable scattering spectra at microwave frequencies in composite media containing CoFeCrSiB glass-coated amorphous ferromagnetic wires and comparison with theory (D. P. Makhnovskiy, L. V. Panina, C. Garcia, A. P. Zhukov, and J. Gonzalez)
DOI: 10.1103/PhysRevB.74.064205
The input data have the following like form:
<img src="efectivo.png",width=500,height=500>
with that we are able to compute the wire (conductor) permittivity,
In [1]:
######################### IMPORTING LIBRARIES ########################
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import fsolve
from mpmath import *
from sympy import *
from scipy import special as sp
from numba import vectorize
from matplotlib import pyplot
%matplotlib inline
######################### DEFINING VALUES #############################
eff = np.array([95.-6.j, 115.-30.j, 90.-110.j, -15.-120.j, -30.-50.j, -15.-25.j, -5.-18.j, -12.j, 5.-10.j, 10.-10.j, 8.-8.j, 8.-5.j, 8.-2.j, 8.-2.j],
dtype=complex) #effective permittivity
print len(eff)
eff_r = 0.984*np.real(eff)
eff_i = 2.1667*np.imag(eff)
e = 16 #matrix permittivity
f = np.linspace(1e9, 14e9, len(eff))
w = f*2.*np.pi #angular frequency
a = 5e-6 #wire radius
c = 3e8 #light speed
p = 0.01/100. #wire volume concentration
L = np.sqrt(np.pi*a**2/p) #mid distance between wires
lc= 0.01 #wire lenght
largo=0.38 #composite lenght
ancho=0.34 #composite width
prof=0.3/1000. #composite depth
volm=largo*ancho*prof #composite volume
volc=np.pi*a**2*lc #wire volume
volct=volm*p #all wires volume
n=volct/volc #number of wires
nh=n*1e-4/(largo*ancho) #number of wires/composite superficial area
print "Mid distance between wires =",L, '[m2]'
print "Wire volume =", volc, '[m3]'
print "All wires sum volume =", volct, '[m3]'
print "Composite volume =", volm, '[m3]'
print "Number of wires =", n, '[-]'
print "Number of wires in 1[cm2] of composite =", nh
######################### SOLVER ######################################
x = symbols('x')
ec = np.ones(len(eff_r), dtype=complex)
for i in range(len(eff_r)):
err_r=10.
err_i=10.
cont=0
while True:
if err_r>1e-3 or err_i>1e-3:
ecp = ec[i]
J1 = sp.jv(1,(complex(ec[i])**0.5)*w[i]*a/c)
J0 = sp.jv(0,(complex(ec[i])**0.5)*w[i]*a/c)
F1 = J1/((complex(ec[i])**0.5)*w[i]*a*J0/c)
sol = solve(e - (np.pi*a**2/L**2)*(2*x*F1)/((((x**0.5)*w[i]*a/c)**2*F1*np.log(L/a))-1)
- complex(eff_r[i], eff_i[i]) , x)
ec[i] = 0.5*sol[0]+0.5*ecp
err_r = abs(np.real(ecp)-np.real(ec[i]))
err_i = abs(np.imag(ecp)-np.imag(ec[i]))
cont+=1
if cont%100==0:
print 'lleva', cont, 'iteraciones'
# print 'y un valor de permitividad:', ec[i]
elif err_r<1e-3 and err_i<1e-3:
# print 'Number of iterations=', cont
# print sol
break
ec[i] = complex(sol[0])
In [5]:
pyplot.figure(figsize=(12,4))
pyplot.subplot(121)
pyplot.title('Effective Permittivity')
pyplot.plot(f/1e9,eff_r, 'k-', linewidth=2,
label='Real');
pyplot.plot(f/1e9,-eff_i,'k--', linewidth=2,
label='Imaginary');
pyplot.xlabel('frequency [GHz]')
pyplot.ylabel('permittivity [-]')
pyplot.legend(loc='best', fontsize=15)
pyplot.grid()
pyplot.subplot(122)
len(np.imag(ec))
pyplot.title('Wire permittivity')
pyplot.plot(f/1e9,np.real(ec), 'k-', linewidth=2,
label='Real');
pyplot.plot(f/1e9,-np.imag(ec),'k--', linewidth=2,
label='Imaginary');
pyplot.xlabel('frequency [GHz]')
pyplot.ylabel('permittivity [-]')
pyplot.legend(loc='best', fontsize=15)
pyplot.grid()
plt.tight_layout()
print ec
In [ ]: