0001
0002 nK=length(Cx);
0003 nNbLambda=length(Cx{1});
0004
0005 disp(['Calculating susceptibilities for ' int2str(nK) ' spherical layers'])
0006
0007
0008 CstRBz=cell(1,nK);
0009 CstRBx=cell(1,nK);
0010 for kk=1:nK
0011 zk=Cs{kk}.*Cx{kk};
0012 xk=Cx{kk};
0013
0014
0015 CstRBz{kk}=GenRBall(nNmax,zk);
0016
0017
0018 CstRBx{kk}=GenRBall(nNmax,xk);
0019 end
0020
0021 CstMulSuscep=cell(1,nK);
0022
0023
0024 for kk=1:nK
0025 if kk==1
0026 Gamkm1=zeros(nNbLambda,nNmax);
0027 Delkm1=Gamkm1;
0028 else
0029
0030 Gamkm1=CstMulSuscep{kk-1}.Gamma;
0031 Delkm1=CstMulSuscep{kk-1}.Delta;
0032 end
0033
0034 smat=repmat(Cs{kk},1,nNmax);
0035
0036
0037 PP1 = GenCheckSum2Mat(CstRBz{kk}.psi, Gamkm1.*CstRBz{kk}.xi,'PP1_1','MulSuscepGDAB');
0038 PP2 = GenCheckSum2Mat(CstRBz{kk}.Dpsi, Gamkm1.*CstRBz{kk}.Dxi,'PP2_1','MulSuscepGDAB');
0039
0040 Dnk=GenCheckSum2Mat(smat .* CstRBx{kk}.xi .* PP2, - PP1 .* CstRBx{kk}.Dxi,'Dnk_1','MulSuscepGDAB');
0041
0042 CstMulSuscep{kk}.Gamma= GenCheckSum2Mat(PP1 .* CstRBx{kk}.Dpsi, ...
0043 - smat .* CstRBx{kk}.psi .* PP2, ...
0044 'Gamma','MulSuscepGDAB') ./ Dnk;
0045
0046 CstMulSuscep{kk}.A= -i*smat./ Dnk;
0047
0048
0049 PP1 = GenCheckSum2Mat(CstRBz{kk}.psi, Delkm1.*CstRBz{kk}.xi,'PP1_2','MulSuscepGDAB');
0050 PP2 = GenCheckSum2Mat(CstRBz{kk}.Dpsi, Delkm1.*CstRBz{kk}.Dxi,'PP2_2','MulSuscepGDAB');
0051
0052 Dnk=GenCheckSum2Mat(smat .* CstRBx{kk}.Dxi .* PP1, - PP2 .* CstRBx{kk}.xi,'Dnk_2','MulSuscepGDAB');
0053
0054 CstMulSuscep{kk}.Delta= GenCheckSum2Mat(PP2 .* CstRBx{kk}.psi, ...
0055 - smat .* CstRBx{kk}.Dpsi .* PP1, ...
0056 'Delta','MulSuscepGDAB') ./ Dnk;
0057
0058 CstMulSuscep{kk}.B= i*smat./ Dnk;
0059
0060 end