Research Notes

T. Matsumura

結晶場中における局在4f電子系の波動関数と熱力学的物理量の計算

Mathematica routines

      • 各種演算子の定義と自由イオンの行列計算

      • 点電荷モデルと結晶場パラメータ

      • 結晶場ハミルトニアンとその固有値・固有ベクトル

      • 固有ベクトルを基底にとった多極子の行列要素と熱平均値

各種演算子の定義と自由イオンの行列計算

結晶場の演算子は,(1) 球テンソル演算子による表記と,(2) 従来型の表記の二種類を用意.(1)のほうが汎用性が高い.(1)のパラメータはq_lm,(2)のパラメータはB_lm (even terms only).両者を変換するルーチンも用意した.多極子演算子(立方調和関数型)は球テンソル演算子を用いて表記する.

Stevens factors

  • (* Stevens factors *)
    stvfac[1,0]=1; stvfac[2,0]=2; stvfac[3,0]=3; stvfac[4,0]=4;
    stvfac[5,0]=5; stvfac[6,0]=6; stvfac[7,0]=7; stvfac[8,0]=8;
    stvfac[9,0]=9; stvfac[10,0]=10; stvfac[11,0]=11; stvfac[12,0]=12; stvfac[13,0]=13;

    stvfac[1,2]=-2/5/7; stvfac[2,2]=-4*13/9/25/11; stvfac[3,2]=-7/9/121;
    stvfac[4,2]=14/15/121; stvfac[5,2]=13/9/35; stvfac[6,2]=0;stvfac[7,2]=0;
    stvfac[8,2]=-1/99; stvfac[9,2]=-2/9/35; stvfac[10,2]=-1/18/25 ;
    stvfac[11,2]=4/63/25; stvfac[12,2]=1/99; stvfac[13,2]=2/63;

    stvfac[1,4]=2/9/35; stvfac[2,4]=-4/45/121; stvfac[3,4]=-8*17/27/11^3/13;
    stvfac[4,4]=8*7*17/27/5/11^3/13; stvfac[5,4]=26/45/33/7;
    stvfac[6,4]=0 ;stvfac[7,4]=0;
    stvfac[8,4]=2/27/5/121; stvfac[9,4]=-8/27/5/77/13;
    stvfac[10,4]=-1/210/11/13; stvfac[11,4]=2/45/77/13;
    stvfac[12,4]=8/81/5/121; stvfac[13,4]=-2/15/77;

    stvfac[1,6]=0; stvfac[2,6]=16*17/81/35/121/13;
    stvfac[3,6]=-5*17*19/27/7/11^3/13^2;
    stvfac[4,6]=8*17*19/27/7/11^3/13^2; stvfac[5,6]=0;
    stvfac[6,6]=0 ;stvfac[7,6]=0;
    stvfac[8,6]=-1/81/7/121/13; stvfac[9,6]=4/27/7/121/13^2;
    stvfac[10,6]=-5/27/7/121/13^2; stvfac[11,6]=8/27/7/121/13^2;
    stvfac[12,6]=-5/81/7/121/13; stvfac[13,6]=4/27/77/13;

  • (* CEF factors F(4) and F(6) defined in Lea-Leask-Wolf's paper *)
    llwf4[2]=12; llwf6[2]=0; llwf4[5/2]=60; llwf6[5/2]=0;
    llwf4[3]=15; llwf6[3]=180; llwf4[7/2]=60; llwf6[7/2]=1260;
    llwf4[4]=60; llwf6[4]=1260; llwf4[9/2]=60; llwf6[9/2]=2520;
    llwf4[5]=14; llwf6[5]=1260; llwf4[11/2]=60; llwf6[11/2]=3780;
    llwf4[6]=60; llwf6[6]=7560; llwf4[13/2]=60; llwf6[13/2]=7560;
    llwf4[7]=60; llwf6[7]=3780; llwf4[15/2]=60; llwf6[15/2]=13860;
    llwf4[8]=60; llwf6[8]=13860;

Conventional operator equivalents for CEF by Hutchings

  • (* raising and lowering operators *)
    jp[j_,m_,n_]:=(Product[Sqrt[(j-k) (j+k+1)],{k,m,m+n-1,1}]);
    jm[j_,m_,n_]:=(Product[Sqrt[(j+k) (j-k+1)],{k,m,m-n+1,-1}]);

    (* Conventional operator equivalents for CEF by Hutchings: even terms only *)
    o20[j_,m_]:=(3*m^2-j*(j+1));
    o40[j_,m_]:=(35*m^4-30*j*(j+1)*m^2+25*m^2-6*j*(j+1)+3*j^2*(j+1)^2) ;
    o60[j_,m_]:=(231*m^6-315*j*(j+1)*m^4+735*m^4+105*j^2*(j+1)^2*m^2-525*j*(j+1)*m^2
    +294*m^2-5*j^3*(j+1)^3+40*j^2*(j+1)^2-60*j*(j+1));
    o22pls[j_,m_]:=1/2*(jp[j,m,2]);
    o22min[j_,m_]:=1/2*(jm[j,m,2]);
    o42pls[j_,m_]:=1/4*(jp[j,m,2])*(7*((m+2)^2+m^2)-2*j*(j+1)-10);
    o42min[j_,m_]:=1/4*(jm[j,m,2])*(7*((m-2)^2+m^2)-2*j*(j+1)-10);
    o44pls[j_,m_]:=1/2*(jp[j,m,4]);
    o44min[j_,m_]:=1/2*(jm[j,m,4]);
    o62pls[j_,m_]:=1/4*(jp[j,m,2])*(33*((m+2)^4+m^4)-(18*j*(j+1)+123)*((m+2)^2+m^2)+2*j^2*(j+1)^2+20*j*(j+1)+2*102);
    o62min[j_,m_]:=1/4*(jm[j,m,2])*(33*((m-2)^4+m^4)-(18*j*(j+1)+123)*((m-2)^2+m^2)+2*j^2*(j+1)^2+20*j*(j+1)+2*102);
    o64pls[j_,m_]:=1/4*(jp[j,m,4])*(11*((m+4)^2+m^2)-2*j*(j+1)-2*38);
    o64min[j_,m_]:=1/4*(jm[j,m,4])*(11*((m-4)^2+m^2)-2*j*(j+1)-2*38);
    o66pls[j_,m_]:=1/2*jp[j,m,6];
    o66min[j_,m_]:=1/2*jm[j,m,6];

Hund’s rule ground J-multiplet

  • (* select one of these *)
    n4f = 1; L = 3; S = 1/2; J = Abs[L - S];
    n4f = 2; L = 5; S = 2/2; J = Abs[L - S];
    n4f = 3; L = 6; S = 3/2; J = Abs[L - S];
    n4f = 4; L = 6; S = 4/2; J = Abs[L - S];
    n4f = 5; L = 5; S = 5/2; J = Abs[L - S];
    n4f = 6; L = 3; S = 6/2; J = Abs[L - S];
    n4f = 7; L = 0; S = 7/2; J = Abs[L - S];
    n4f = 8; L = 3; S = 6/2; J = L + S;
    n4f = 9; L = 5; S = 5/2; J = L + S;
    n4f = 10; L = 6; S = 4/2; J = L + S;
    n4f = 11; L = 6; S = 3/2; J = L + S;
    n4f = 12; L = 5; S = 2/2; J = L + S;
    n4f = 13; L = 3; S = 1/2; J = L + S;

    g=1+(J*(J+1)+S*(S+1)-L*(L+1))/(2*J*(J+1));
    {n4f, L, S, J, g, g*J}

Dipole and quadrupole matrix elements for the J-multiplet

  • (* Dipole and quadrupole matrix elements: conventional method *)
    eljx=Table[Switch[i-j,1,jm[J,J-j+1,1]/2,-1,jp[J,J-j+1,1]/2,_,0], {i,1,2*J+1}, {j,1,2*J+1}];
    eljy=Table[Switch[i-j,1,I*jm[J,J-j+1,1]/2,-1,-I*jp[J,J-j+1,1]/2,_,0], {i,1,2*J+1}, {j,1,2*J+1}];
    eljz=Table[Switch[i-j,0,J-j+1,_,0], {i,1,2*J+1}, {j,1,2*J+1}];
    elo20=(3*eljz.eljz-J*(J+1)*IdentityMatrix[2*J+1])/2;
    elo22=(eljx.eljx-eljy.eljy)/2*Sqrt[3];
    eloxy=(eljx.eljy+eljy.eljx)/2*Sqrt[3];
    eloyz=(eljy.eljz+eljz.eljy)/2*Sqrt[3];
    elozx=(eljz.eljx+eljx.eljz)/2*Sqrt[3];

Multipole matrix elements for the J-multiplet using spherical tensor operators

  • (* cmat: spherical tensor up to rank-6 for the J-multiplet *)
    Do[redfacJ[k]=Sqrt[(2*J + k + 1)!/(2*J - k)!]/2^k;
    redfac3[k]=Sqrt[(2*3 + k + 1)!/(2*3 - k)!]/2^k;
    Do[cmat[k, m]=Table[If[i-j==-m,
    ClebschGordan[{J,J-j+1},{k,m},{J,J-i+1}],0],{i,1,2*J+1},{j,1,2*J+1}]/Sqrt[2*J+1]*redfacJ[k]
    ,{m, k, -k, -1}], {k, 0, 6, 1}]

    (* rank 1 cubic tensor: dipole *)
    t1u[1,1]=(cmat[1,-1]-cmat[1,1])/Sqrt[2];
    t1u[1,2]=(I*(cmat[1,-1]+cmat[1,1]))/Sqrt[2];
    t1u[1,3]=cmat[1,0];
    eljx=t1u[1,1]; eljy=t1u[1,2]; eljz=t1u[1,3];

    (* rank 2 cubic tensor: quadrupole *)
    eg[2,1]=cmat[2,0];
    eg[2,2]=(cmat[2,-2]+cmat[2,2])/Sqrt[2];
    t2g[2,1]=(I*(cmat[2,-1]+cmat[2,1]))/Sqrt[2];
    t2g[2,2]=(cmat[2,-1]-cmat[2,1])/Sqrt[2];
    t2g[2,3]=(I*(cmat[2,-2]-cmat[2,2]))/Sqrt[2];
    elo20=eg[2,1]; elo22=eg[2,2];
    eloyz=t2g[2,1]; elozx=t2g[2,2]; eloxy=t2g[2,3];

    (* rank 3 cubic tensor: octupole *)
    a2u[3,1]=(I*(cmat[3,-2]-cmat[3,2]))/Sqrt[2];
    t1u[3,1]=(Sqrt[5]*cmat[3,-3]-Sqrt[3]*cmat[3,-1]+Sqrt[3]*cmat[3,1]-Sqrt[5]*cmat[3,3])/4;
    t1u[3,2]=-I/4*(Sqrt[5]*cmat[3,-3]+Sqrt[3]*cmat[3,-1]+Sqrt[3]*cmat[3,1]+Sqrt[5]*cmat[3,3]);
    t1u[3,3]=cmat[3,0];
    t2u[3,1]=(-(Sqrt[3]*cmat[3,-3])-Sqrt[5]*cmat[3,-1]+Sqrt[5]*cmat[3,1]+Sqrt[3]*cmat[3,3])/4;
    t2u[3,2]=-I/4*(Sqrt[3]*cmat[3,-3]-Sqrt[5]*cmat[3,-1]-Sqrt[5]*cmat[3,1]+Sqrt[3]*cmat[3,3]);
    t2u[3,3]=(cmat[3,-2]+cmat[3,2])/Sqrt[2];
    eltxyz=a2u[3,1];
    eltalpx=t1u[3,1];eltalpy=t1u[3,2];eltalpz=t1u[3,3];
    eltbetx=t2u[3,1];eltbety=t2u[3,2];eltbetz=t2u[3,3];

    (* rank 4 cubic tensor: hexadecapole *)
    a1g[4,1]=(Sqrt[30]*cmat[4,-4]+2*Sqrt[21]*cmat[4,0]+Sqrt[30]*cmat[4,4])/12;
    eg[4,1]=(-(Sqrt[42]*cmat[4,-4])+2*Sqrt[15]*cmat[4,0]-Sqrt[42]*cmat[4,4])/12;
    eg[4,2]=-((cmat[4,-2]+cmat[4,2])/Sqrt[2]);
    t1g[4,1]=-I/4*(cmat[4,-3]+Sqrt[7]*cmat[4,-1]+Sqrt[7]*cmat[4,1]+cmat[4,3]);
    t1g[4,2]=(-cmat[4,-3]+Sqrt[7]*cmat[4,-1]-Sqrt[7]*cmat[4,1]+cmat[4,3])/4;
    t1g[4,3]=(I*(cmat[4,-4]-cmat[4,4]))/Sqrt[2];
    t2g[4,1]=I/4*(Sqrt[7]*cmat[4,-3]-cmat[4,-1]-cmat[4,1]+Sqrt[7]*cmat[4,3]);
    t2g[4,2]=(-(Sqrt[7]*cmat[4,-3])-cmat[4,-1]+cmat[4,1]+Sqrt[7]*cmat[4,3])/4;
    t2g[4,3]=(I*(cmat[4,-2]-cmat[4,2]))/Sqrt[2];

  • (* reverse relations *)
    cmat[1,1]=(-t1u[1,1] - I*t1u[1,2])/Sqrt[2];
    cmat[1,0]=t1u[1,3];
    cmat[1,-1]=(t1u[1,1] - I*t1u[1,2])/Sqrt[2];

    cmat[2,2]=(eg[2,2] + I*t2g[2,3])/Sqrt[2];
    cmat[2,1]=(-I*t2g[2,1] - t2g[2,2])/Sqrt[2];
    cmat[2,0]=eg[2,1];
    cmat[2,-1]=(-I*t2g[2,1] + t2g[2,2])/Sqrt[2];
    cmat[2,-2]=(eg[2,2] - I*t2g[2,3])/Sqrt[2];

    cmat[3,3]=(-Sqrt[5]*t1u[3,1] + I*Sqrt[5]*t1u[3,2] + Sqrt[3]*t2u[3,1] + I*Sqrt[3]*t2u[3,2])/4;
    cmat[3,2]=(I*a2u[3,1] + t2u[3,3])/Sqrt[2];
    cmat[3,1]=(Sqrt[3]*t1u[3,1] + I*Sqrt[3]*t1u[3,2] + Sqrt[5]*t2u[3,1] - I*Sqrt[5]*t2u[3,2])/4;
    cmat[3,0]=t1u[3,3];
    cmat[3,-1]=(-Sqrt[3]*t1u[3,1] + I* Sqrt[3]*t1u[3,2] - Sqrt[5]*t2u[3,1] - I*Sqrt[5]*t2u[3,2])/4;
    cmat[3,-2]=(-I*a2u[3,1] + t2u[3,3])/Sqrt[2];
    cmat[3,-3]=(Sqrt[5]*t1u[3,1] + I*Sqrt[5]*t1u[3,2] - Sqrt[3]*t2u[3,1] + I*Sqrt[3]*t2u[3,2])/4;

    cmat[4,4]=(Sqrt[30]*a1g[4,1] - Sqrt[42]*eg[4,1] + I*6*Sqrt[2]*t1g[4,3])/12;
    cmat[4,3]=(I*t1g[4,1] + t1g[4,2] - I*Sqrt[7]*t2g[4,1] + Sqrt[7]*t2g[4,2])/4;
    cmat[4,2]=(-eg[4,2] + I*t2g[4,3])/Sqrt[2] ;
    cmat[4,1]=(Sqrt[7]*I*t1g[4,1] - Sqrt[7]*t1g[4,2] + I*t2g[4,1] + t2g[4,2])/4;
    cmat[4,0]=(Sqrt[21]*a1g[4,1] + Sqrt[15]*eg[4,1])/6;
    cmat[4,-1]=(I*Sqrt[7]*t1g[4,1] + Sqrt[7]*t1g[4,2] + I*t2g[4,1] - t2g[4,2])/4 ;
    cmat[4,-2]=(-eg[4,2] - I*t2g[4,3])/Sqrt[2];
    cmat[4,-3]=(I*t1g[4,1] - t1g[4,2] - I*Sqrt[7]*t2g[4,1] - Sqrt[7]*t2g[4,2])/4;
    cmat[4,-4]=(Sqrt[30]*a1g[4,1] - Sqrt[42]*eg[4,1] - I*6*Sqrt[2]t1g[4,3])/12;

Reduced matrix elements for the spherical tensor CEF operators

  • (* reduced matrix elements for the spherical tensor CEF operators *)
    rmecef[n4f,2]=stvfac[n4f,2]*redfacJ[2]/redfac3[2];
    rmecef[n4f,4]=stvfac[n4f,4]*redfacJ[4]/redfac3[4];
    rmecef[n4f,6]=stvfac[n4f,6]*redfacJ[6]/redfac3[6];

点電荷モデルと結晶場パラメータ

結晶場を実際の点電荷による静電ポテンシャルで考える.周囲の点電荷の配置が一見複雑で,どんな結晶場パラメータが現れるのかすぐには判断できないが,対称性はきちんと考えて計算したいときに有用.実際の対称性のとおりに点電荷を置き,点電荷の位置と有効電荷を入力すると,結晶場の展開係数q_lmを計算する,これが,球テンソル型の結晶場演算子に対するパラメータとなる.あらゆる対称性に適用可能.最後に,出てきたq_lmを立方調和型に変換し,結晶場を多極子表記すると,対称性が低い場合でも見通しがよくなる.また,従来型結晶場演算子O_lmの係数B_lmに変換したり,結晶場を多極子場表記で表示したりするルーチンも用意した.ただし,従来型結晶場演算子はl=even, m=evenの項のみに対応.

Point charges and the CEF parameters

  • (* point charges *)
    pcsites={{2,0,0}, {0,2,0}, {0,0,2}, {-2,0,0}, {0,-2,0}, {0,0,-2}}*0.1;
    charges={-1,-1,-1,-1,-1,-1};

    (* Radial averages of <r^2>, <r^4>, <r^6> *)
    rave[2]=0.2188; rave[4]=0.118; rave[6]=0.1328;

    (* Expansion coefficients q_lm for spherical tensor CEF operators *)
    pctp=Module[{xd,yd,zd,r,phi,theta},
    Table[{xd=pcsites[[i,1]];yd=pcsites[[i,2]];zd=pcsites[[i,3]];
    r=Sqrt[xd^2+yd^2+zd^2];
    Which[xd==0 && yd>0,phi=Pi/2,xd==0 && yd<0,phi=3*Pi/2,yd==0 && xd>0,phi=0,
    yd==0 && xd<0,phi=Pi,xd==0 && yd==0,phi=0,True,phi=ArcTan[xd,yd]];
    Which[zd>0 && xd==0 && yd==0,theta=0,zd<0 && xd==0 && yd==0,theta=Pi,True,
    theta=ArcCos[zd/r]]; r,theta,phi},{i,1,Length[pcsites]}]];
    Print["Ion Positions (r,theta,phi)="]; Print[pctp];
    Do[ Do[ qfac[k,m] = Chop[N[
    Sqrt[4*Pi/(2*k+1)]*Sum[ -charges[[i]]*(-1)^m
    *SphericalHarmonicY[k,-m,pctp[[i,2]],pctp[[i,3]]]/pctp[[i,1]]^(k+1)
    ,{i,1,Length[pctp]}] ] ], {m,k,-k,-1}], {k,0,6}];
    Print["Expansion coefficient of the CEF potential. q(odd,m)=zero when there is inversion symmetry."]
    Print["q(0,m)=",Table[qfac[0,m],{m,0,0}]];
    Print["q(1,m)=",Table[qfac[1,m],{m,1,-1,-1}]];
    Print["q(2,m)=",Table[qfac[2,m],{m,2,-2,-1}]];
    Print["q(3,m)=",Table[qfac[3,m],{m,3,-3,-1}]];
    Print["q(4,m)=",Table[qfac[4,m],{m,4,-4,-1}]];
    Print["q(5,m)=",Table[qfac[5,m],{m,5,-5,-1}]];
    Print["q(6,m)=",Table[qfac[6,m],{m,6,-6,-1}]];

    (* factors to connect conventional and spherical tensor CEF operators *)
    facB20=2; facB22=2/Sqrt[6];
    facB40=8; facB42=8/Sqrt[5*8]; facB44=8/Sqrt[2*5*7];
    facB60=16; facB62=16/Sqrt[3*5*7]; facB64=16/Sqrt[2*7*9]; facB66=16/Sqrt[3*7*11];

  • (* B_lm parameters for the conventional CEF operators: even terms only *)

    b20=Chop[qfac[2,0]*rave[2]*stvfac[n4f,2]/facB20/redfac3[2]];
    b22=Chop[qfac[2,2]*rave[2]*stvfac[n4f,2]/facB22/redfac3[2]];
    b40=Chop[qfac[4,0]*rave[4]*stvfac[n4f,4]/facB40/redfac3[4]];
    b42=Chop[qfac[4,2]*rave[4]*stvfac[n4f,4]/facB42/redfac3[4]];
    b44=Chop[qfac[4,4]*rave[4]*stvfac[n4f,4]/facB44/redfac3[4]];
    b60=Chop[qfac[6,0]*rave[6]*stvfac[n4f,6]/facB60/redfac3[6]];
    b62=Chop[qfac[6,2]*rave[6]*stvfac[n4f,6]/facB62/redfac3[6]];
    b64=Chop[qfac[6,4]*rave[6]*stvfac[n4f,6]/facB64/redfac3[6]];
    b66=Chop[qfac[6,6]*rave[6]*stvfac[n4f,6]/facB66/redfac3[6]];

    Print["CEF coefficients B(l,m) (K) (for cubic, tetragonal, orthorhombic)"]
    Print["B(2,0)=",b20,Tab,"B(2,2)=",b22]
    Print["B(4,0)=",b40,Tab,"B(4,2)=",b42,Tab,"B(4,4)=",b44]
    Print["B(6,0)=",b60,Tab,"B(6,2)=",b62,Tab,"B(6,4)=",b64,Tab,"B(6,6)=",b66]

  • (* transformation from B_lm to qfac[l, m]: even terms only *)

    q20 = b20/rave[2]/stvfac[n4f, 2]*facB20*redfac3[2];
    q22 = b22/rave[2]/stvfac[n4f, 2]*facB22*redfac3[2];
    q40 = b40/rave[4]/stvfac[n4f, 4]*facB40*redfac3[4];
    q42 = b42/rave[4]/stvfac[n4f, 4]*facB42*redfac3[4];
    q44 = b44/rave[4]/stvfac[n4f, 4]*facB44*redfac3[4];
    q60 = b60/rave[6]/stvfac[n4f, 6]*facB60*redfac3[6];
    q62 = b62/rave[6]/stvfac[n4f, 6]*facB62*redfac3[6];
    q64 = b64/rave[6]/stvfac[n4f, 6]*facB64*redfac3[6];
    q66 = b66/rave[6]/stvfac[n4f, 6]*facB66*redfac3[6];

    {qfac[2,2],qfac[2,1],qfac[2,0],qfac[2,-1],qfac[2,-2]}={q22,0,q20,0,q22};
    {qfac[4,4],qfac[4,3],qfac[4,2],qfac[4,1],qfac[4,0],
    qfac[4,-1],qfac[4,-2],qfac[4,-3],qfac[4,-4]} = {q44,0,q42,0,q40,0,q42,0,q44};
    {qfac[6,6],qfac[6,5],qfac[6,4],qfac[6,3],qfac[6,2],
    qfac[6,1],qfac[6,0],qfac[6,-1],qfac[6,-2],qfac[6,-3],
    qfac[6,-4],qfac[6,-5],qfac[6,-6]}={q66,0,q64,0,q62,0,q60,0,q62,0,q64,0,q66};
    Print["Expansion coefficient of the CEF potential. Even terms only."]
    Print["q(2,m)=",Table[qfac[2,m],{m,2,-2,-1}]];
    Print["q(4,m)=",Table[qfac[4,m],{m,4,-4,-1}]];
    Print["q(6,m)=",Table[qfac[6,m],{m,6,-6,-1}]];

(* Multipolar expansion of the CEF using cubic harmonic representation *)

  • (* rank 0 : dipole field *)
    a1g[0, 1] = qfac[0, 0];

    (* rank 1 *)
    ceft1u[1,1]=(qfac[1,-1]-qfac[1,1])/Sqrt[2];
    ceft1u[1,2]=-(I*(qfac[1,-1]+qfac[1,1]))/Sqrt[2];
    ceft1u[1,3]=qfac[1,0];

    (* rank 2 : quadrupole field *)
    cefeg[2,1]=qfac[2,0];
    cefeg[2,2]=(qfac[2,-2]+qfac[2,2])/Sqrt[2];
    ceft2g[2,1]=-(I*(qfac[2,-1]+qfac[2,1]))/Sqrt[2];
    ceft2g[2,2]=(qfac[2,-1]-qfac[2,1])/Sqrt[2];
    ceft2g[2,3]=-(I*(qfac[2,-2]-qfac[2,2]))/Sqrt[2];

    (* rank 3 : octupole field *)
    cefa2u[3,1]=-(I*(qfac[3,-2]-qfac[3,2]))/Sqrt[2];
    ceft1u[3,1]=(Sqrt[5]*qfac[3,-3]-Sqrt[3]*qfac[3,-1]+Sqrt[3]*qfac[3,1]-Sqrt[5]*qfac[3,3])/4;
    ceft1u[3,2]=I/4*(Sqrt[5]*qfac[3,-3]+Sqrt[3]*qfac[3,-1]+Sqrt[3]*qfac[3,1]+Sqrt[5]*qfac[3,3]);
    ceft1u[3,3]=qfac[3,0];
    ceft2u[3,1]=(-(Sqrt[3]*qfac[3,-3])-Sqrt[5]*qfac[3,-1]+Sqrt[5]*qfac[3,1]+Sqrt[3]*qfac[3,3])/4;
    ceft2u[3,2]=I/4*(Sqrt[3]*qfac[3,-3]-Sqrt[5]*qfac[3,-1]-Sqrt[5]*qfac[3,1]+Sqrt[3]*qfac[3,3]);
    ceft2u[3,3]=(qfac[3,-2]+qfac[3,2])/Sqrt[2];

    (* rank 4 : hexadecapole field *)
    cefa1g[4,1]=(Sqrt[30]*qfac[4,-4]+2*Sqrt[21]*qfac[4,0]+Sqrt[30]*qfac[4,4])/12;
    cefeg[4,1]=(-(Sqrt[42]*qfac[4,-4])+2*Sqrt[15]*qfac[4,0]-Sqrt[42]*qfac[4,4])/12;
    cefeg[4,2]=-((qfac[4,-2]+qfac[4,2])/Sqrt[2]);
    ceft1g[4,1]=I/4*(qfac[4,-3]+Sqrt[7]*qfac[4,-1]+Sqrt[7]*qfac[4,1]+qfac[4,3]);
    ceft1g[4,2]=(-qfac[4,-3]+Sqrt[7]*qfac[4,-1]-Sqrt[7]*qfac[4,1]+qfac[4,3])/4;
    ceft1g[4,3]=-(I*(qfac[4,-4]-qfac[4,4]))/Sqrt[2];
    ceft2g[4,1]=-I/4*(Sqrt[7]*qfac[4,-3]-qfac[4,-1]-qfac[4,1]+Sqrt[7]*qfac[4,3]);
    ceft2g[4,2]=(-(Sqrt[7]*qfac[4,-3])-qfac[4,-1]+qfac[4,1]+Sqrt[7]*qfac[4,3])/4;
    ceft2g[4,3]=-(I*(qfac[4,-2]-qfac[4,2]))/Sqrt[2];


    dipCEF=Chop[{ceft1u[1,1],ceft1u[1,2],ceft1u[1,3]}];
    quadCEF=Chop[{cefeg[2,2],cefeg[2,1],ceft2g[2,1],ceft2g[2,2],ceft2g[2,3]}];
    octCEF=Chop[{cefa2u[3,1],ceft1u[3,1],ceft1u[3,2],ceft1u[3,3],
    ceft2u[3,1],ceft2u[3,2],ceft2u[3,3]}];
    hexCEF=Chop[{cefa1g[4,1],cefeg[4,1],cefeg[4,2],ceft1g[4,1],ceft1g[4,2],ceft1g[4,3],
    ceft2g[4,1],ceft2g[4,2],ceft2g[4,3]}];
    Print["dip:", dipCEF]; Print["quad:", quadCEF];
    Print["oct:", octCEF]; Print["hex:", hexCEF];

結晶場ハミルトニアンとその固有値・固有ベクトル

球テンソル型の結晶場表記で結晶場ハミルトニアンの行列要素を計算し,対角化して固有値問題を解く.縮退していると正しく規格直交化されないことがあるので,ゼロ磁場でも少しだけ磁場をかける.

  • (* CEF Hamiltonian : Point-Charge *)
    dcef=Table[Sum[Sum[If[q==(M-Md) && qfac[k,q]!=0,(rave[k]*rmecef[n4f,k]*qfac[k,q]
    *ClebschGordan[{J,Md},{k,q},{J,M}]/Sqrt[2*J+1]),0] ,{q,-k,k}], {k,2,6,2}], {M,J,-J,-1}, {Md,J,-J,-1}];

  • (* CEF Hamiltonian : LLW *)
    
W = 15.42; x = 0.74; y = 0.05;
    
b40 = W*x/llwf4[J]; b60 = W*(1 - Abs[x])/llwf6[J];

    b44 = 5*b40; b64 = -21*b60;

    b62 = W*y/30; b66 = -b62;

    b20 = b22 = b42 = 0;

    Print["B(2,0)=", b20, Tab, "B(2,2)=", b22]

    Print["B(4,0)=", b40, Tab, "B(4,2)=", b42, Tab, "B(4,4)=", b44]

    Print["B(6,0)=", b60, Tab, "B(6,2)=", b62, Tab, "B(6,4)=", b64, Tab, "B(6,6)=", b66]

    
dcef = Table[Switch[i-j, 

    0, b20*o20[J,J-j+1] + b40*o40[J,J-j+1] + b60*o60[J,J-j+1], 

    2, b22*o22min[J,J-j+1] + b42*o42min[J,J-j+1] + b62*o62min[J,J-j+1],

    -2, b22*o22pls[J,J-j+1] + b42*o42pls[J,J-j+1] + b62*o62pls[J,J-j+1],

    4, b44*o44min[J,J-j+1] + b64*o64min[J,J-j+1],
-4, b44*o44pls[J,J-j+1] + b64*o64pls[J,J-j+1],

    6, b66*o66min[J,J-j+1],
-6, b66*o66pls[J,J-j+1], 

    _, 0], {i,1,2*J+1}, {j,1,2*J+1}];

  • (* Eigenvalues and eigenvectors. *)

    dcef2=N[dcef+10^(-8)*eljz];

    {vals,vecs}=Eigensystem[N[dcef2]];
    valsvecs=Table[{vals[[i]],vecs[[i]]},{i,1,2*J+1}];
    valsvecs=Sort[valsvecs]; zero=valsvecs[[1,1]];
    cefvals=Table[Chop[valsvecs[[i,1]]-zero,0.0000001],{i,1,2*J+1}];
    cefvecs=Table[Chop[valsvecs[[i,2]],0.000001],{i,1,2*J+1}];
    {cefvals,cefvecs}=Chop[{cefvals,cefvecs}];
    Print["Eigenvalues (K) and eigenvectors of the CEF Hamiltonian:"]
    Do[Print[i,Tab,N[cefvals[[i]]],cefvecs[[i]]],{i,1,2*J+1}]

  • (* Diagonalization checking routine *)
    digcheck[vecs_]:=Table[Chop[N[Sum[
    Conjugate[vecs[[i,k]]]*vecs[[j,k]],{k,1,2*J+1}]]] ,{i,1,2*J+1}, {j,1,2*J+1}]

固有ベクトルを基底にとった多極子の行列要素と熱平均値

得られた固有ベクトルを基底にとり,rank-4までの多極子の行列要素を計算するルーチン,および,対角要素に熱占有率を書けて足しあわせ,熱平均値を計算するルーチン.

  • (* a module to calculate all the multipole matrices up to rank-4 *)
    calcelem := Module[{},
    elt1u[1,1]=Chop[Table[Conjugate[vecs[[i]]].t1u[1,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt1u[1,2]=Chop[Table[Conjugate[vecs[[i]]].t1u[1,2].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt1u[1,3]=Chop[Table[Conjugate[vecs[[i]]].t1u[1,3].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];

    eleg[2,1]=Chop[Table[Conjugate[vecs[[i]]].eg[2,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    eleg[2,2]=Chop[Table[Conjugate[vecs[[i]]].eg[2,2].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt2g[2,1]=Chop[Table[Conjugate[vecs[[i]]].t2g[2,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt2g[2,2]=Chop[Table[Conjugate[vecs[[i]]].t2g[2,2].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt2g[2,3]=Chop[Table[Conjugate[vecs[[i]]].t2g[2,3].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];

    ela2u[3,1]=Chop[Table[Conjugate[vecs[[i]]].a2u[3,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt1u[3,1]=Chop[Table[Conjugate[vecs[[i]]].t1u[3,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt1u[3,2]=Chop[Table[Conjugate[vecs[[i]]].t1u[3,2].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt1u[3,3]=Chop[Table[Conjugate[vecs[[i]]].t1u[3,3].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt2u[3,1]=Chop[Table[Conjugate[vecs[[i]]].t2u[3,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt2u[3,2]=Chop[Table[Conjugate[vecs[[i]]].t2u[3,2].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt2u[3,3]=Chop[Table[Conjugate[vecs[[i]]].t2u[3,3].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];

    ela1g[4,1]=Chop[Table[Conjugate[vecs[[i]]].a1g[4,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    eleg[4,1]=Chop[Table[Conjugate[vecs[[i]]].eg[4,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    eleg[4,2]=Chop[Table[Conjugate[vecs[[i]]].eg[4,2].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt1g[4,1]=Chop[Table[Conjugate[vecs[[i]]].t1g[4,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt1g[4,2]=Chop[Table[Conjugate[vecs[[i]]].t1g[4,2].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt1g[4,3]=Chop[Table[Conjugate[vecs[[i]]].t1g[4,3].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt2g[4,1]=Chop[Table[Conjugate[vecs[[i]]].t2g[4,1].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt2g[4,2]=Chop[Table[Conjugate[vecs[[i]]].t2g[4,2].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    elt2g[4,3]=Chop[Table[Conjugate[vecs[[i]]].t2g[4,3].vecs[[j]],{i,1,2*J+1},{j,1,2*J+1}]];
    ]


  • (* a module to calculate all the expectation values up to rank-4 *)
    calcval := Module[{}, zz=Sum[Exp[-vals[[i]]/temp],{i,1,2*J+1}];
    Chop[{
    {jxf = Sum[elt1u[1,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    jyf = Sum[elt1u[1,2][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    jzf = Sum[elt1u[1,3][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz},
    {o20f = Sum[eleg[2,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    o22f = Sum[eleg[2,2][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    oyzf = Sum[elt2g[2,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    ozxf = Sum[elt2g[2,2][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    oxyf = Sum[elt2g[2,3][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz},
    {txyzf = Sum[ela2u[3,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    t1uaf = Sum[elt1u[3,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    t1ubf = Sum[elt1u[3,2][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    t1ucf = Sum[elt1u[3,3][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    t2uaf = Sum[elt2u[3,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    t2ubf = Sum[elt2u[3,2][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    t2ucf = Sum[elt2u[3,3][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz},
    {ha1gf = Sum[ela1g[4,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    hegaf = Sum[eleg[4,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    hegbf = Sum[eleg[4,2][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    h1gaf = Sum[elt1g[4,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    h1gbf = Sum[elt1g[4,2][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    h1gcf = Sum[elt1g[4,3][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    h2gaf = Sum[elt2g[4,1][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    h2gbf = Sum[elt2g[4,2][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz,
    h2gcf = Sum[elt2g[4,3][[i,i]]*Exp[-vals[[i]]/temp],{i,1,2*J+1}]/zz}},0.000001]];


    temp=2.5;
    calcelem
    PaddedForm[TableForm[calcval], 4]

3次元電荷分布図の描画

|J,M>の線形結合として得られた固有関数について,その電荷分布図(確率密度)を3次元的に描く方法.

  • (* a module to calculate all the expansion coefficients up to rank-6 *)

    wfnum = 1;
    Module[{MJ, MJd},
    cfac = Chop[Table[Table[If[k == 0, N[n4f/Sqrt[4*Pi]],
    Chop[Sum[MJ = J - ii + 1; MJd = J - jj + 1; If[MJ - MJd == -q,
    (Conjugate[vecs[[wfnum, ii]]]*vecs[[wfnum, jj]]*stvfac[n4f, k]*redfacJ[k]
    *ClebschGordan[{J,MJd},{k,-q},{J,MJ}]/Sqrt[2*J+1]*(-1)^q*Sqrt[(2*k + 1)/4/Pi]), 0]
    , {ii, 1, 2*J+1}, {jj,1,2*J+1}]]], {q,k,-k,-1}], {k,0,6,2}], 0.00001];]

  • (* Function of the angular part of the probability density in real space. *)
    rc[th_, ph_]:= Chop[Sum[Sum[
    cfac[[k/2 + 1, k - q + 1]]*SphericalHarmonicY[k, q, th, ph], {q, k, -k, -1}], {k, 0, 6, 2}]];

  • fig1=SphericalPlot3D[Evaluate[Abs[rc[theta,phi]]],{theta,0,Pi},{phi,0,2*Pi}]

(例)CeのΓ8から作られる<Oxy>の期待値を持つ波動関数の電荷分布図