• 締切済み

一次元静電粒子コードについて・・

これは、VBで作ってみたPICコードなのですが、このコードではSin波形が出力されます。この波形を変えたいのですが、どこを変えればいいのでしょう? どなたか分かる方教えてください。 (つづきがあります。) '一次元静電粒子コード M = 3:IM = 2 ^ (M + 1) + 1:IM2 = IM * 2 - 1 Dim RO(18):Dim PHI(18):Dim A(18, 4):Dim E(18):Dim X(161):Dim V(161) ' X:電子の位置(X座標) V:電子の速度 RO:電荷密度 ' A(I,J):ポアソン・マトリックスエレメント PHI:静電ポテンシャル ' E:静電界(X方向) NP:1セル当りの粒子数 XMAX:全メッシュ数 ' KK:最大計算回数 DT:タイムステップ XMAX:X方向の最大値点 ' DX: メッシュ間隔 NP = 10:NPT = NP * (IM - 1):PW = 1 / NP XMAX = IM - 1:DX = XMAX / (IM - 1):DXP = DX / NP:DT = 0.1 ' 粒子の初期設定 For IP = 1 To NPT X(IP) = DXP * (IP - 0.5):V(IP) = 0 Next IP ' ポテンシャルの初期値 For I = 1 To IM PHI(I) = 5! * Sin(2 * 3.14159 * (I - 1) / (IM - 1)) Next I ' 計算開始 For KK = 1 To 120 ' 電場の計算 For I = 1 To IM - 1 E(I) = -(PHI(I + 1) - PHI(I)) / DX Next I E(IM) = E(1):E(0) = E(IM - 1):E(IM + 1) = E(2) ' 粒子の運動 For IP = 1 To NPT XNM = X(IP) / DX + 0.5:IXP = Int(XNM):IXM1 = IXP - 1 If IXM1 <= 0 Then IXM1 = IM - 1 - IXM1: B = XNM - IXP If IXP = 0 Then IXP = IM - 1:EP = E(IXP) * B + E(IXM1) * (1 - B) V(IP) = V(IP) + Q * EP * DT: X(IP) = X(IP) + V(IP) * DT If X(IP) > XMAX Then X(IP) = X(IP) - XMAX If X(IP) < 0 Then X(IP) = XMAX + X(IP) Next IP つづく・・・

みんなの回答

回答No.1

管理者より: 続きの質問があるのでそちらをご参照下さい

参考URL:
http://www.okweb.ne.jp/kotaeru.php3?q=448304

関連するQ&A

専門家に質問してみよう