質問編集履歴

5

```にしました

2021/01/16 10:01

投稿

nagi-kimura
nagi-kimura

スコア3

test CHANGED
File without changes
test CHANGED
@@ -18,133 +18,129 @@
18
18
 
19
19
  ### 該当のソースコード
20
20
 
21
+ ```python
22
+
23
+ Ex = np.zeros([Lx, Ly])
24
+
25
+ Ey = np.zeros([Lx, Ly])
26
+
27
+
28
+
29
+ for i in range(Lx):
30
+
31
+ for j in range(Ly):
32
+
33
+ Ex[i, j] = -(phi[i + 1, j] - phi[i - 1, j]) / 2*delta_Lx
34
+
35
+ Ey[i, j] = -(phi[i, j + 1] - phi[i, j - 1]) / 2*delta_Ly
36
+
37
+
38
+
39
+ fig = plt.figure(figsize=(4, 4))
40
+
41
+
42
+
43
+ X, Y = np.meshgrid(np.arange(0, Lx, 1), np.arange(0, Ly, 1)) # メッシュ生成
44
+
45
+ plt.quiver(X, Y, Ex, Ey, color = 'red', angles = 'xy',
46
+
47
+ scale_units = 'xy', scale = 40,
48
+
49
+ label = "Solution of the Poisson equation for electrostatic field") # ベクトル場をプロット
50
+
51
+
52
+
53
+ plt.xlim([0, Lx]) # 描くXの範囲
54
+
55
+ plt.ylim([0, Ly]) # 描くYの範囲
56
+
57
+ ```
58
+
59
+ ### 試したこと
60
+
61
+
62
+
63
+ delta_Lxとdelta_Lyを逆にした.
64
+
65
+
66
+
67
+ ### 補足情報(FW/ツールのバージョンなど)
68
+
69
+ ```python
70
+
71
+ delta_Lx = 0.01 # グリッドx幅
72
+
73
+ delta_Ly = 0.01 # グリッドy幅
74
+
75
+ LLx = 1
76
+
77
+ LLy = 1
78
+
79
+
80
+
81
+ Lx = int(LLx / delta_Lx)
82
+
83
+ Ly = int(LLy / delta_Ly)
84
+
85
+
86
+
87
+ V = 5.0 # 電圧
88
+
89
+ convegence_criterion = 10**-5
90
+
91
+
92
+
93
+ phi = np.zeros([Lx+1, Ly+1])
94
+
95
+ phi_Bound = np.zeros([Lx+1, Ly+1])
96
+
97
+ phi_Bound[0, :] = V # 全ての行の0列目を取得
98
+
99
+ ```
100
+
101
+
102
+
103
+ # 電荷密度の設定
104
+
105
+ ```python
106
+
107
+ eps0 = 1
108
+
109
+ charge = np.zeros([Lx+1, Ly+1])
110
+
111
+ c = 1500
112
+
113
+
114
+
115
+ CC = int(Lx / 4)
116
+
117
+ CC2 = int(Ly / 2)
118
+
119
+
120
+
121
+ for i in range(CC, CC2 + 1):
122
+
123
+ for j in range(CC, CC2 + 1):
124
+
125
+ charge[i, j] = c
126
+
127
+
128
+
129
+ # for SOR method
130
+
21
131
  ’’’Python
22
132
 
23
- Ex = np.zeros([Lx, Ly])
24
-
25
- Ey = np.zeros([Lx, Ly])
26
-
27
-
28
-
29
- for i in range(Lx):
30
-
31
- for j in range(Ly):
32
-
33
- Ex[i, j] = -(phi[i + 1, j] - phi[i - 1, j]) / 2*delta_Lx
34
-
35
- Ey[i, j] = -(phi[i, j + 1] - phi[i, j - 1]) / 2*delta_Ly
36
-
37
-
38
-
39
- fig = plt.figure(figsize=(4, 4))
40
-
41
-
42
-
43
- X, Y = np.meshgrid(np.arange(0, Lx, 1), np.arange(0, Ly, 1)) # メッシュ生成
44
-
45
- plt.quiver(X, Y, Ex, Ey, color = 'red', angles = 'xy',
46
-
47
- scale_units = 'xy', scale = 40,
48
-
49
- label = "Solution of the Poisson equation for electrostatic field") # ベクトル場をプロット
50
-
51
-
52
-
53
- plt.xlim([0, Lx]) # 描くXの範囲
54
-
55
- plt.ylim([0, Ly]) # 描くYの範囲
56
-
57
- ’’’
58
-
59
- ### 試したこと
60
-
61
-
62
-
63
- delta_Lxとdelta_Lyを逆にした.
64
-
65
-
66
-
67
- ### 補足情報(FW/ツールのバージョンなど)
68
-
69
- ’’’Python
70
-
71
- delta_Lx = 0.01 # グリッドx幅
72
-
73
- delta_Ly = 0.01 # グリッドy幅
74
-
75
- LLx = 1
76
-
77
- LLy = 1
78
-
79
-
80
-
81
- Lx = int(LLx / delta_Lx)
82
-
83
- Ly = int(LLy / delta_Ly)
84
-
85
-
86
-
87
- V = 5.0 # 電圧
88
-
89
- convegence_criterion = 10**-5
90
-
91
-
92
-
93
- phi = np.zeros([Lx+1, Ly+1])
94
-
95
- phi_Bound = np.zeros([Lx+1, Ly+1])
96
-
97
- phi_Bound[0, :] = V # 全ての行の0列目を取得
98
-
99
- ’’’
100
-
101
-
102
-
103
- # 電荷密度の設定
104
-
105
- ’’’Python
106
-
107
- eps0 = 1
108
-
109
- charge = np.zeros([Lx+1, Ly+1])
110
-
111
- c = 1500
112
-
113
-
114
-
115
- CC = int(Lx / 4)
116
-
117
- CC2 = int(Ly / 2)
118
-
119
-
120
-
121
- for i in range(CC, CC2 + 1):
122
-
123
- for j in range(CC, CC2 + 1):
124
-
125
- charge[i, j] = c
126
-
127
-
128
-
129
- # for SOR method
130
-
131
- ’’’Python
132
-
133
133
  aa_recta = 0.5 * (np.cos(np.pi / Lx) + np.cos(np.pi / Ly))
134
134
 
135
135
  omega_SOR_recta = 2 / (1 + np.sqrt(1 - aa_recta ** 2)) # SOR法における加速パラメータ
136
136
 
137
137
  print("omega_SOR_rect=", omega_SOR_recta)
138
138
 
139
- ’’’
139
+ ```
140
-
141
-
142
-
143
-
144
140
 
145
141
  # メイン
146
142
 
147
- ’’’Python
143
+ ```python
148
144
 
149
145
  delta = 1.0
150
146
 
@@ -196,9 +192,7 @@
196
192
 
197
193
  anim.append([im])
198
194
 
199
- ’’’
195
+ ```
200
-
201
-
202
196
 
203
197
  前進差分法により離散化をしたときの電場のグラフです.
204
198
 

4

intendしました

2021/01/16 10:01

投稿

nagi-kimura
nagi-kimura

スコア3

test CHANGED
File without changes
test CHANGED
@@ -128,6 +128,8 @@
128
128
 
129
129
  # for SOR method
130
130
 
131
+ ’’’Python
132
+
131
133
  aa_recta = 0.5 * (np.cos(np.pi / Lx) + np.cos(np.pi / Ly))
132
134
 
133
135
  omega_SOR_recta = 2 / (1 + np.sqrt(1 - aa_recta ** 2)) # SOR法における加速パラメータ

3

’’’としました

2021/01/16 09:42

投稿

nagi-kimura
nagi-kimura

スコア3

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  ### 該当のソースコード
20
20
 
21
- '''''''''''''''''''''''''''''''''''''''''''Python
21
+ ’’’Python
22
22
 
23
23
  Ex = np.zeros([Lx, Ly])
24
24
 
@@ -54,7 +54,7 @@
54
54
 
55
55
  plt.ylim([0, Ly]) # 描くYの範囲
56
56
 
57
- ''''''''''''''''''''''''''''''''''''''''''''''''''
57
+ ’’’
58
58
 
59
59
  ### 試したこと
60
60
 
@@ -66,7 +66,7 @@
66
66
 
67
67
  ### 補足情報(FW/ツールのバージョンなど)
68
68
 
69
- ''''''''''''''''''''''''''''''''''''''''''''''''''Python
69
+ ’’’Python
70
70
 
71
71
  delta_Lx = 0.01 # グリッドx幅
72
72
 
@@ -96,13 +96,13 @@
96
96
 
97
97
  phi_Bound[0, :] = V # 全ての行の0列目を取得
98
98
 
99
- '''''''''''''''''''''''''''''''''''''''''''''''''''
99
+ ’’’
100
100
 
101
101
 
102
102
 
103
103
  # 電荷密度の設定
104
104
 
105
- ''''''''''''''''''''''''''''''''''''''''''''''''''Python
105
+ ’’’Python
106
106
 
107
107
  eps0 = 1
108
108
 
@@ -134,13 +134,15 @@
134
134
 
135
135
  print("omega_SOR_rect=", omega_SOR_recta)
136
136
 
137
- ''''''''''''''''''''''''''''''''''''''''''''''''''''
137
+ ’’’
138
+
139
+
138
140
 
139
141
 
140
142
 
141
143
  # メイン
142
144
 
143
- ''''''''''''''''''''''''''''''''''''''''''''''''''Python
145
+ ’’’Python
144
146
 
145
147
  delta = 1.0
146
148
 
@@ -192,7 +194,7 @@
192
194
 
193
195
  anim.append([im])
194
196
 
195
- ''''''''''''''''''''''''''''''''''''''''''''''''''
197
+ ’’’
196
198
 
197
199
 
198
200
 

2

前進差分法の図を追加した.

2021/01/16 09:41

投稿

nagi-kimura
nagi-kimura

スコア3

test CHANGED
File without changes
test CHANGED
@@ -193,3 +193,11 @@
193
193
  anim.append([im])
194
194
 
195
195
  ''''''''''''''''''''''''''''''''''''''''''''''''''
196
+
197
+
198
+
199
+ 前進差分法により離散化をしたときの電場のグラフです.
200
+
201
+ ![イメージ説明](156319d1c8da9bb316adae636ae5ced1.png)
202
+
203
+ このように中心差分法の時も描かれないといけませんが, 上記に貼った通り描かれていないのが現状です,

1

Pythonで書いたコードの部分の上に''''''Python, 下に'''''''と追加をしました.

2021/01/16 09:27

投稿

nagi-kimura
nagi-kimura

スコア3

test CHANGED
File without changes
test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
  ### 該当のソースコード
20
20
 
21
-
21
+ '''''''''''''''''''''''''''''''''''''''''''Python
22
22
 
23
23
  Ex = np.zeros([Lx, Ly])
24
24
 
@@ -54,6 +54,8 @@
54
54
 
55
55
  plt.ylim([0, Ly]) # 描くYの範囲
56
56
 
57
+ ''''''''''''''''''''''''''''''''''''''''''''''''''
58
+
57
59
  ### 試したこと
58
60
 
59
61
 
@@ -63,6 +65,8 @@
63
65
 
64
66
 
65
67
  ### 補足情報(FW/ツールのバージョンなど)
68
+
69
+ ''''''''''''''''''''''''''''''''''''''''''''''''''Python
66
70
 
67
71
  delta_Lx = 0.01 # グリッドx幅
68
72
 
@@ -92,9 +96,13 @@
92
96
 
93
97
  phi_Bound[0, :] = V # 全ての行の0列目を取得
94
98
 
99
+ '''''''''''''''''''''''''''''''''''''''''''''''''''
100
+
95
101
 
96
102
 
97
103
  # 電荷密度の設定
104
+
105
+ ''''''''''''''''''''''''''''''''''''''''''''''''''Python
98
106
 
99
107
  eps0 = 1
100
108
 
@@ -126,13 +134,13 @@
126
134
 
127
135
  print("omega_SOR_rect=", omega_SOR_recta)
128
136
 
129
-
137
+ ''''''''''''''''''''''''''''''''''''''''''''''''''''
130
-
131
-
132
138
 
133
139
 
134
140
 
135
141
  # メイン
142
+
143
+ ''''''''''''''''''''''''''''''''''''''''''''''''''Python
136
144
 
137
145
  delta = 1.0
138
146
 
@@ -183,3 +191,5 @@
183
191
  im = plt.imshow(phi, cmap = 'jet')
184
192
 
185
193
  anim.append([im])
194
+
195
+ ''''''''''''''''''''''''''''''''''''''''''''''''''