0001
0002 lambda=stM.lambda;
0003 indLambda=find(lambda==lambda0,1);
0004 if isempty(indLambda)
0005 disp(['PweVolProperties: lambda0=' num2str(lambda0) ...
0006 ' cannot be found. Using lambda=' num2str(lambda(1)) ' instead']);
0007 indLambda=1;
0008 end
0009
0010
0011 if nargin < 7
0012 theta=linspace(0,pi,nNbTheta);
0013 stPinTaun=PwePinTaun(stM.nNmax,transpose(theta));
0014 end
0015
0016
0017 nNbMap=0;
0018 if (nNbRout~=0)
0019
0020
0021 epsilonM0=stM.epsilonM(min(length(stM.epsilonM),indLambda));
0022 disp ' ';
0023 disp 'PweVolProperties: computing outside map...';
0024 rVec=transpose(linspace(stM.a,rMax,nNbRout));
0025 stMieCcdn1L0.cn1=stM.cn1(indLambda,:);
0026 stMieCcdn1L0.dn1=stM.dn1(indLambda,:);
0027 nNbMap=nNbMap+1;
0028 CstEmap{1,nNbMap}=PweEmap(lambda0,epsilonM0,stMieCcdn1L0,rVec,nNbTheta,'Outside',stPinTaun);
0029 clear stMieCcdn1L0;
0030 end
0031
0032
0033 if ~isfield(stM,'nK')
0034 if (nNbRin~=0)
0035
0036 epsilonIn0=stM.epsilonIn(min(length(stM.epsilonIn),indLambda));
0037 disp ' ';
0038 disp 'PweVolProperties: computing single sphere inside map...';
0039 rVec=transpose(linspace(0,stM.a,nNbRin));
0040 stMieCabn1L0.an1=stM.alphan1(indLambda,:);
0041 stMieCabn1L0.bn1=stM.betan1(indLambda,:);
0042 nNbMap=nNbMap+1;
0043 CstEmap{1,nNbMap}=PweEmap(lambda0,epsilonIn0,stMieCabn1L0,rVec,nNbTheta,'Inside',stPinTaun);
0044 end
0045 else
0046 disp ' ';
0047 disp 'PweVolProperties: computing multilayer sphere inside map...';
0048 nK=stM.nK;
0049 for kk=(nK-1):-1:0
0050
0051 if nNbRin{kk+1}~=0
0052
0053 epsilonL0=stM.Cepsilon{kk+1}(min(length(stM.Cepsilon{kk+1}),indLambda));
0054 if kk==0
0055 sRegion='Inside';
0056
0057 rVec=transpose(linspace(0,stM.Ca{1},nNbRin{1}));
0058 else
0059 sRegion='General';
0060
0061 rVec=transpose(linspace(stM.Ca{kk},stM.Ca{kk+1},nNbRin{kk+1}));
0062
0063 stMieCabcdn1L0.cn1=stM.Cgammakn1{kk+1}(indLambda,:);
0064 stMieCabcdn1L0.dn1=stM.Cdeltakn1{kk+1}(indLambda,:);
0065 end
0066 stMieCabcdn1L0.an1=stM.Calphakn1{kk+1}(indLambda,:);
0067 stMieCabcdn1L0.bn1=stM.Cbetakn1{kk+1}(indLambda,:);
0068 nNbMap=nNbMap+1;
0069
0070 CstEmap{1,nNbMap}=PweEmap(lambda0,epsilonL0,stMieCabcdn1L0,rVec,nNbTheta,sRegion,stPinTaun);
0071 end
0072 end
0073 end