このプログラムの実行結果についてお助け下さい2
//U2のとき
for(L=-A;L<=A;L++)
{
for(M=-B;M<=B;M++)
{
for(N=-C;N<=C;N++)
{
x=(2*L+1)*a*cos(Beta)/2; y=M*b+b/2; z=N*c-((2*L+1)*a*sin(Beta))/2;
X=x-Px2; Y=y-Py2; Z=z-Pz2;
r=sqrt((X*X)+(Y*Y)+(Z*Z));
if(r<R){
if(L==0&&M==0&&N==0){
Hdx15=((-ux2/pow(r,3))+3*X*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdy15=((-uy2/pow(r,3))+3*Y*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdz15=((-uz2/pow(r,3))+3*Z*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
}
else if(L==-1&&M==0&&N==0){
Hdx16=((-ux2/pow(r,3))+3*X*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdy16=((-uy2/pow(r,3))+3*Y*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdz16=((-uz2/pow(r,3))+3*Z*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
}
else if(L==0&&M==0&&N==1){
Hdx17=((-ux2/pow(r,3))+3*X*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdy17=((-uy2/pow(r,3))+3*Y*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdz17=((-uz2/pow(r,3))+3*Z*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
}
else if(L==-1&&M==0&&N==1){
Hdx18=((-ux2/pow(r,3))+3*X*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdy18=((-uy2/pow(r,3))+3*Y*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdz18=((-uz2/pow(r,3))+3*Z*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
}
else if(L=-1&&M==0&&N==-1){
Hdx19=((-ux2/pow(r,3))+3*X*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdy19=((-uy2/pow(r,3))+3*Y*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdz19=((-uz2/pow(r,3))+3*Z*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
}
else{
Hdx=((-ux2/pow(r,3))+3*X*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdy=((-uy2/pow(r,3))+3*Y*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
Hdz=((-uz2/pow(r,3))+3*Z*(ux2*X+uy2*Y+uz2*Z)/pow(r,5));
THDX22=THDX22+Hdx;
THDY22=THDY22+Hdy;
THDZ22=THDZ22+Hdz;
printf("L=%d M=%d N=%d R=%lf\n",L,M,N,r);
}
}
}
}
}
Hdx20=Hdx15+Hdx16+Hdx17+Hdx18+Hdx19;
Hdy20=Hdy15+Hdy16+Hdy17+Hdy18+Hdy19;
Hdz20=Hdz15+Hdz16+Hdz17+Hdz18+Hdz19;
printf("ここまでがlowerのU2の時のL,M,N、それぞれの値\n");
printf("THDX11は%eです。\n",THDX11);
printf("THDY11は%eです。\n",THDY11);
printf("THDZ11は%eです。\n",THDZ11);
printf("THDX12は%eです。\n",THDX12);
printf("THDY12は%eです。\n",THDY12);
printf("THDZ12は%eです。\n",THDZ12);
printf("THDX21は%eです。\n",THDX21);
printf("THDY21は%eです。\n",THDY21);
printf("THDZ21は%eです。\n",THDZ21);
printf("THDX22は%eです。\n",THDX22);
printf("THDY22は%eです。\n",THDY22);
printf("THDZ22は%eです。\n",THDZ22);
printf("\n");
Hdx21=THDX11+THDX12;
Hdy21=THDY11+THDY12;
Hdz21=THDZ11+THDZ12;
Hdx22=THDX21+THDX22;
Hdy22=THDY21+THDY22;
Hdz22=THDZ21+THDZ22;
printf("Hdx21は%eです。\n",Hdx21);
printf("Hdy21は%eです。\n",Hdy21);
printf("Hdz21は%eです。\n",Hdz21);
printf("Hdx22は%eです。\n",Hdx22);
printf("Hdy22は%eです。\n",Hdy22);
printf("Hdz22は%eです。\n",Hdz22);
Hdip1=sqrt((Hdx21*Hdx21)+(Hdy21*Hdy21)+(Hdz21*Hdz21));
Hdip2=sqrt((Hdx22*Hdx22)+(Hdy22*Hdy22)+(Hdz22*Hdz22));
printf("Hdip1は%eです。\n",Hdip1);
printf("Hdip2は%eです。\n",Hdip2);
upper=Hdip1*gamma;
lower=Hdip2*gamma;
printf("upperは%eです。\n",upper);
printf("lowerは%eです。\n",lower);
upper=0; lower=0;
Hdip3=sqrt((Hdx4*Hdx4)+(Hdy4*Hdy4)+(Hdz4*Hdz4)+(Hdx10*Hdx10)+(Hdy10*Hdy10)+(Hdz10*Hdz10));
Hdip4=sqrt((Hdx14*Hdx14)+(Hdy14*Hdy14)+(Hdz14*Hdz14)+(Hdx20*Hdx20)+(Hdy20*Hdy20)+(Hdz20*Hdz20));
printf("抜き出した8個の原子の総合の磁場は、upperの方のHdip3は、%lf、\nlowerの方のHdip4は%lfです。\n",Hdip3,Hdip4);
printf("これらを、また元の結晶に戻した時、\n");
upper=0;lower=0;
Hdip5=sqrt((Hdx21*Hdx21)+(Hdy21*Hdy21)+(Hdz21*Hdz21)+(Hdx4*Hdx4)+(Hdy4*Hdy4)+(Hdz4*Hdz4)+(Hdx10*Hdx10)+(Hdy10*Hdy10)+(Hdz10*Hdz10));
Hdip6=sqrt((Hdx22*Hdx22)+(Hdy22*Hdy22)+(Hdz22*Hdz22)+(Hdx14*Hdx14)+(Hdy14*Hdy14)+(Hdz14*Hdz14)+(Hdx20*Hdx20)+(Hdy20*Hdy20)+(Hdz20*Hdz20));
upper=Hdip5*gamma;
lower=Hdip6*gamma;
printf("upperは%eです。\n",upper);
printf("lowerは%eです。\n",lower);
以上です・・・。
お礼
そうでしたか、ずっと作ってもらっていたので、わかりませんでした。 ありがとうございました。