PlnSinglePlaneDecayRateEFs
PURPOSE 
Computes the total and radiative decay rate enhancement factors for a dipole emitting close to a single planar interface.
SYNOPSIS 
function stAllM=PlnSinglePlaneDecayRateEFs(epsilonM,lambda,epsilon,d,nNbStep)
DESCRIPTION 
EXAMPLE OF OUTPUT 
CROSS-REFERENCE INFORMATION 
This function calls:
This function is called by:
SOURCE CODE 
0001
0002 disp (['PlnSinglePlaneDecayRateEFs: computing decay rate EFs (d=' num2str(d) 'nm)...']);
0003
0004 nNbLambda=length(lambda);
0005
0006 zerolambda=0*lambda;
0007
0008 epsilon2Vec=zerolambda+epsilon;
0009 epsilon1Vec=zerolambda+epsilonM;
0010
0011 stAllM.MTotPerp=zerolambda;
0012 stAllM.MTotPara=zerolambda;
0013 stAllM.MRadPerp=zerolambda;
0014 stAllM.MRadPara=zerolambda;
0015
0016 k0=2*pi./lambda;
0017 k1=k0.*sqrt(epsilon1Vec);
0018 k2=k0.*sqrt(epsilon2Vec);
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 sStep1=1/nNbStep;
0029 sVec01=0:sStep1:(1-sStep1+0.5*sStep1);
0030 indStep=1:nNbStep;
0031
0032
0033
0034
0035
0036 for ll=1:nNbLambda
0037 sMid=max(2, abs(k2(ll))./abs(k1(ll)));
0038 sStep2=(sMid-1)*sStep1;
0039
0040 sVec1mid=(1+sStep2):sStep2:(sMid+0.5*sStep2);
0041
0042 sMax=max(50+sMid, 10/(k1(ll)*d));
0043 sStep3=(sMax-sMid)*sStep1;
0044
0045 sVecMidMax=(sMid+sStep3):sStep3:(sMax+0.5*sStep3);
0046 sVec=[sVec01 sVec1mid, sVecMidMax];
0047
0048
0049 AuxInt3=sVec ./sqrt(1-sVec.^2);
0050 AuxInt1=sVec.^2 .* AuxInt3;
0051 AuxInt2= exp(2*i*d * (k1(ll) * sqrt(1-sVec.^2)));
0052
0053 k1z=sqrt( (k1(ll)^2) * (1-sVec.^2) );
0054 k2z=sqrt( (k2(ll)^2) - k1(ll)^2 * sVec.^2);
0055
0056 rP=(epsilon2Vec(ll)*k1z-epsilon1Vec(ll)*k2z)./ ...
0057 (epsilon2Vec(ll)*k1z+epsilon1Vec(ll)*k2z);
0058
0059 rS=(k1z-k2z)./(k1z+k2z);
0060
0061 PerpIntVec=real( AuxInt1 .* rP .* AuxInt2 );
0062 PerpInt1=3/2*sStep1*sum(PerpIntVec(indStep));
0063 PerpInt2=3/2*sStep2*sum(PerpIntVec(indStep+nNbStep));
0064 PerpInt3=3/2*sStep3*sum(PerpIntVec(indStep+2*nNbStep));
0065 stAllM.MTotPerp(ll)=1.0+PerpInt1+PerpInt2+PerpInt3;
0066
0067 ParaIntVec=real( AuxInt3 .* (rS-(1-sVec.^2).*rP) .* AuxInt2 );
0068
0069 ParaInt1=3/4*sStep1*sum(ParaIntVec(indStep));
0070 ParaInt2=3/4*sStep2*sum(ParaIntVec(indStep+nNbStep));
0071 ParaInt3=3/4*sStep3*sum(ParaIntVec(indStep+2*nNbStep));
0072
0073 stAllM.MTotPara(ll)=1.0+ParaInt1+ParaInt2+ParaInt3;
0074
0075 PerpIntRadVec=AuxInt1(indStep).*abs(rP(indStep)).^2;
0076 PerpIntRad1=3/4*sStep1*sum(PerpIntRadVec);
0077
0078 stAllM.MRadPerp(ll)=0.5+PerpIntRad1+PerpInt1;
0079
0080 ParaIntRadVec=sVec01.*(sqrt(1-sVec01.^2)) .* ...
0081 abs(rP(indStep)).^2+ AuxInt3(indStep).*abs(rS(indStep)).^2;
0082 ParaIntRad1=3/8*sStep1*sum(ParaIntRadVec);
0083
0084 stAllM.MRadPara(ll)=0.5+ParaIntRad1+ParaInt1;
0085
0086
0087 end
0088
0089
0090
0091
0092 betaP=(epsilon2Vec-epsilon1Vec)./(epsilon2Vec+epsilon1Vec);
0093
0094 tmp=3/16 ./ (k1*d).^3 .* imag(betaP);
0095
0096 stAllM.MTotPerpESA=1+2*tmp;
0097 stAllM.MTotParaESA=1+tmp;
0098
0099 disp 'PlnSinglePlaneDecayRateEFs: done.'
0100
This web page is part of the SPlaC package © 2008. Contact: Eric Le Ru
Generated on Wed 03-Dec-2008 11:10:14 by m2html © 2003 (adapted)