//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);
以上です・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# LU分解法のピボッティングについて(C言語/gcc-9) 3 2022/07/11 23:10
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# プログラミングペーパーテスト 次の問題の実行結果を答えろ #include int x[ ] = { 1 2022/06/16 21:49
- C言語・C++・C# プログラミングの授業のペーパーテスト 実行結果を答えろ #include int x[ ] = {1 3 2022/06/16 20:08
- C言語・C++・C# C言語: ポインタ 5 2022/06/01 08:33
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
10個出力で改行したいのですが...
-
カレンダーのプログラムについて
-
4の倍数を論理演算で表す。。
-
【C言語教えてください】sin波...
-
CTRL+Dでループを抜けるには
-
C言語です このプログラミング...
-
じゃんけんゲームをつくったの...
-
printf( " %2d", p * q );
-
defineで定数が置き換えられな...
-
printf で二進表示を行いたい。
-
一番大きい奇数を表示する
-
万年カレンダーのC言語プログラ...
-
両替プログラムなど
-
C言語初心者です。次の問題で質...
-
C言語です
-
困ってます!Cプログラミングに...
-
(C言語)めちゃくちゃな値にな...
-
TeraPadの設定方法
-
じゃんけんゲームの応用
-
C言語のじゃんけんゲームのプロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語について
-
printf で二進表示を行いたい。
-
cshの文字列操作(0埋め)
-
10個出力で改行したいのですが...
-
コンパイルエラーについて
-
テキストカーソル位置の取得
-
strcmp
-
unsigned int型について
-
c言語でAからZまでを表示する...
-
printf( " %2d", p * q );
-
コマンドラインに出力した文字...
-
printfの出力内の文字をdefine...
-
ホームページをC言語で作りたい...
-
コマンドプロンプトがすぐ消える
-
小数点切捨て表示
-
【C言語教えてください】sin波...
-
switch分のケースを範囲数?に...
-
二つの整数値の大小比較
-
4の倍数を論理演算で表す。。
-
defineで定数が置き換えられな...
おすすめ情報