%% get arbitrarily anisotropic conductivity
%
% \overset{~}{\sigma} ={\left(\begin{array}{ccc}
% \sigma_{xx}  & \sigma_{xy}  & \sigma_{xz} \\
% \sigma_{yx}  & \sigma_{yy}  & \sigma_{yz} \\
% \sigma_{zx}  & \sigma_{zy}  & \sigma_{zz}
% \end{array}\right)}=R_z {\left(-\alpha_S^{\sigma } \right)}R_x {\left(-\alpha_D^{\sigma } \right)}R_z {\left(-\alpha_L^{\sigma } \right)}\times {\left(\begin{array}{ccc}
% \sigma_x  & \  & \ \\
% \  & \sigma_y  & \ \\
% \  & \  & \sigma_z
% \end{array}\right)}R_z {\left(\alpha_L^{\sigma } \right)}R_x {\left(\alpha_D^{\sigma } \right)}R_z {\left(\alpha_S^{\sigma } \right)}
% \;\;\;=\left\lbrack \begin{array}{ccc}
% \sigma_1  & \sigma_4  & \sigma_5 \\
% \sigma_7  & \sigma_2  & \sigma_6 \\
% \sigma_8  & \sigma_9  & \sigma_3
% \end{array}\right\rbrack =\left\lbrack {\textrm{sig}}_1 ,\ldotp \ldotp \ldotp \ldotp {\textrm{sig}}_9 \right\rbrack
%
% 李予国.著，电阻率各向异性介质地球电磁场自适应有限元法，2022，p4
% Magnetotelluric impedances and parametric sensitivities for 1-D anisotropic layered media - ScienceDirect

function  sig = get_sig_ani(sigx,sigy,sigz,aS,aD,aL)


sigxx = sigx.*(cosd(aS).*cosd(aL) - cosd(aD).*sind(aS).*sind(aL)).^2 + sigy.*(cosd(aS).*sind(aL) + ...
    cosd(aD).*cosd(aL).*sind(aS)).^2 + sigz.*sind(aS).^2.*sind(aD).^2;

sigxy = sigx.*(cosd(aL).*sind(aS) + cosd(aS).*cosd(aD).*sind(aL)).*(cosd(aS).*cosd(aL) - ...
    cosd(aD).*sind(aS).*sind(aL)) + sigy.*(cosd(aS).*sind(aL) + cosd(aD).*cosd(aL).*sind(aS)).*(sind(aS).*sind(aL) - ...
    cosd(aS).*cosd(aD).*cosd(aL)) - sigz.*cosd(aS).*sind(aS).*sind(aD).^2;

sigxz = sigz.*cosd(aD).*sind(aS).*sind(aD) - sigy.*cosd(aL).*sind(aD).*(cosd(aS).*sind(aL) + ...
    cosd(aD).*cosd(aL).*sind(aS)) + sigx.*sind(aD).*sind(aL).*(cosd(aS).*cosd(aL) - cosd(aD).*sind(aS).*sind(aL));

sigyx = sigx.*(cosd(aL).*sind(aS) + cosd(aS).*cosd(aD).*sind(aL)).*(cosd(aS).*cosd(aL) - ...
    cosd(aD).*sind(aS).*sind(aL)) + sigy.*(cosd(aS).*sind(aL) + cosd(aD).*cosd(aL).*sind(aS)).*(sind(aS).*sind(aL) - ...
    cosd(aS).*cosd(aD).*cosd(aL)) - sigz.*cosd(aS).*sind(aS).*sind(aD).^2;

sigyy = sigx.*(cosd(aL).*sind(aS) + cosd(aS).*cosd(aD).*sind(aL)).^2 + sigy.*(sind(aS).*sind(aL) - ...
    cosd(aS).*cosd(aD).*cosd(aL)).^2 + sigz.*cosd(aS).^2.*sind(aD).^2;

sigyz = sigx.*sind(aD).*sind(aL).*(cosd(aL).*sind(aS) + cosd(aS).*cosd(aD).*sind(aL)) - ...
    sigy.*cosd(aL).*sind(aD).*(sind(aS).*sind(aL) - cosd(aS).*cosd(aD).*cosd(aL)) - sigz.*cosd(aS).*cosd(aD).*sind(aD);

sigzx = sigz.*cosd(aD).*sind(aS).*sind(aD) - sigy.*cosd(aL).*sind(aD).*(cosd(aS).*sind(aL) + cosd(aD).*cosd(aL).*sind(aS)) + ...
    sigx.*sind(aD).*sind(aL).*(cosd(aS).*cosd(aL) - cosd(aD).*sind(aS).*sind(aL));

sigzy = sigx.*sind(aD).*sind(aL).*(cosd(aL).*sind(aS) + cosd(aS).*cosd(aD).*sind(aL)) - ...
    sigy.*cosd(aL).*sind(aD).*(sind(aS).*sind(aL) - cosd(aS).*cosd(aD).*cosd(aL)) - sigz.*cosd(aS).*cosd(aD).*sind(aD);

sigzz = sigz.*cosd(aD).^2 + sigy.*cosd(aL).^2.*sind(aD).^2 + sigx.*sind(aD).^2.*sind(aL).^2;

sig(:,1)=sigxx;
sig(:,2)=sigyy;
sig(:,3)=sigzz;
sig(:,4)=sigxy;
sig(:,5)=sigxz;
sig(:,6)=sigyz;
sig(:,7)=sigyx;
sig(:,8)=sigzx;
sig(:,9)=sigzy;