27.12.2012 Views

Wave Propagation in Linear Media | re-examined

Wave Propagation in Linear Media | re-examined

Wave Propagation in Linear Media | re-examined

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

RectRefPos[a_,b_,c_,d_,w_,k_][xi_] :=<br />

RefCoeff[xi] * RectShapePos[w,xi] * OutOsc[a,b,c,d,xi];<br />

RectRefNeg[a_,b_,c_,d_,w_,k_][xi_] :=<br />

RefCoeff[xi] * RectShapeNeg[w,xi] * OutOsc[a,b,c,d,xi];<br />

RectRefEvan[a_,b_,c_,d_,w_,k_][xi_] :=<br />

RectRefPos[a,b,c,d,w,k][xi] *<br />

(-1 + Exp[I 2 (Pi k/Sqrt[w] xi - Pi k)]);<br />

RectIncPos[a_,b_,c_,d_,w_,k_][xi_] :=<br />

RectShapePos[w,xi] * OutOsc[a,b,c,d,xi];<br />

RectIncNeg[a_,b_,c_,d_,w_,k_][xi_] :=<br />

RectShapeNeg[w,xi] * OutOsc[a,b,c,d,xi];<br />

RectIncEvan[a_,b_,c_,d_,w_,k_][xi_] :=<br />

RectIncPos[a,b,c,d,w,k][xi] *<br />

(-1 + Exp[I 2 (Pi k/Sqrt[w] xi - Pi k)]);<br />

(*-- Exponential Shape <strong>in</strong>side the tunnel --*)<br />

GaussConst[w_,k_,n_] := k Sqrt[2 Pi / (w n Sqrt[2 Pi])];<br />

GaussShapePos[w_,k_,n_,xi_] := Exp[-(Pi k (xi/Sqrt[w] - 1)/n)^2];<br />

GaussShapeNeg[w_,k_,n_,xi_] := Exp[-(Pi k (-xi/Sqrt[w] - 1)/n)^2];<br />

GaussTransPos[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

TunCoeff[xi] * GaussShapePos[w,k,n,xi] * TunOsc[a,b,c,d,xi];<br />

GaussTransNeg[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

TunCoeff[xi] * GaussShapeNeg[w,k,n,xi] * TunOsc[a,b,c,d,xi];<br />

GaussGradTransPos[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

TunCoeff[xi] * GaussShapePos[w,k,n,xi] * TunOsc[a,b,c,d,xi] *<br />

I Sqrt[xi^2 - 1];<br />

GaussGradTransNeg[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

TunCoeff[xi] * GaussShapeNeg[w,k,n,xi] * TunOsc[a,b,c,d,xi] *<br />

(-I Sqrt[xi^2 - 1]);<br />

GaussEvan[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

GaussTransPos[a,b,c,d,w,k,n][xi];<br />

GaussGradEvan[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

GaussGradTransPos[a,b,c,d,w,k,n][xi];<br />

(*-- Exponential Shape outside the tunnel --*)<br />

GaussRefPos[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

RefCoeff[xi] * GaussShapePos[w,k,n,xi] * OutOsc[a,b,c,d,xi];<br />

GaussRefNeg[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

RefCoeff[xi] * GaussShapeNeg[w,k,n,xi] * OutOsc[a,b,c,d,xi];<br />

GaussRefEvan[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

GaussRefPos[a,b,c,d,w,k,n][xi];<br />

GaussIncPos[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

GaussShapePos[w,k,n,xi] * OutOsc[a,b,c,d,xi];<br />

GaussIncNeg[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

GaussShapeNeg[w,k,n,xi] * OutOsc[a,b,c,d,xi];<br />

GaussIncEvan[a_,b_,c_,d_,w_,k_,n_][xi_] :=<br />

GaussIncPos[a,b,c,d,w,k,n][xi];<br />

(*-- Templates for wave computations depend<strong>in</strong>g on the shape --*)<br />

TriaTransTemp[fpos_, fneg_, x_, t_, w_, k_, opts___Rule] :=<br />

Module[{a,b,c,d,o11,o12,o21,o22,o31,o32,<br />

wp = Work<strong>in</strong>gP<strong>re</strong>cision/.{opts}/.Options[OscInt]},<br />

a = -t;<br />

b = N[Pi k/Sqrt[w],wp+2];<br />

c = x;<br />

d = N[-Pi k,wp+2];<br />

o11 = QuadOffset[a, c,0];<br />

o12 = QuadOffset[a,-c,0];<br />

o21 = QuadOffset[a, b+c,d];<br />

o22 = QuadOffset[a,-b-c,d];<br />

o31 = QuadOffset[a, 2 b + c,2 d];<br />

o32 = QuadOffset[a,-2 b - c,2 d];<br />

(-(OscInt[fpos[a, 0, c,0,w,k],<br />

QuadZero[a, c,0,o11],1,FunctionType->ZeroList,opts] +<br />

224<br />

A Mathematica packages

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!