質問編集履歴
3
画像を追加
test
CHANGED
File without changes
|
test
CHANGED
@@ -373,3 +373,11 @@
|
|
373
373
|
法線を解析的に求めた場合の画像.
|
374
374
|
|
375
375
|
![イメージ説明](021e83ca8d57de0e6681cf8078c3a8d0.png)
|
376
|
+
|
377
|
+
|
378
|
+
|
379
|
+
2020/04/23 追記
|
380
|
+
|
381
|
+
正規化方法をコメント頂いたように直した場合
|
382
|
+
|
383
|
+
![イメージ説明](ffe8aaff7f8045be5be4a085a34ceae6.png)
|
2
プログラムの更新
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,20 +30,20 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
+
|
34
|
+
|
33
35
|
program main
|
34
36
|
|
35
37
|
! Determine some arrays
|
36
38
|
|
37
39
|
implicit none
|
38
40
|
|
39
|
-
integer,parameter :: i_max=
|
41
|
+
integer,parameter :: i_max=100, j_max=100
|
40
42
|
|
41
43
|
double precision :: x(0:i_max,0:j_max), y(0:i_max,0:j_max), z(0:i_max,0:j_max) ! this is the position
|
42
44
|
|
43
45
|
double precision :: v(3) ! this is the velocity (uniform flow)
|
44
46
|
|
45
|
-
double precision :: nx(0:i_max-1,0:j_max-1,0:k_max-1),ny(0:i_max-1,0:j_max-1,0:k_max-1),nz(0:i_max-1,0:j_max-1,0:k_max-1)
|
46
|
-
|
47
47
|
double precision :: cp(0:i_max,0:j_max)
|
48
48
|
|
49
49
|
integer :: i,j
|
@@ -56,12 +56,24 @@
|
|
56
56
|
|
57
57
|
call dataSave
|
58
58
|
|
59
|
+
print *, pi_generator()
|
60
|
+
|
59
61
|
stop
|
60
62
|
|
61
63
|
contains
|
62
64
|
|
63
65
|
|
64
66
|
|
67
|
+
double precision function pi_generator()
|
68
|
+
|
69
|
+
pi_generator = 4*atan(1.0)
|
70
|
+
|
71
|
+
return
|
72
|
+
|
73
|
+
end function
|
74
|
+
|
75
|
+
|
76
|
+
|
65
77
|
subroutine grid
|
66
78
|
|
67
79
|
! Generating grids
|
@@ -74,15 +86,13 @@
|
|
74
86
|
|
75
87
|
do 1000 j=0,j_max
|
76
88
|
|
77
|
-
theta(j)=float(j)/float((j_max))*(
|
89
|
+
theta(j)=float(j)/float((j_max))*(pi_generator() )/2.0
|
78
|
-
|
79
|
-
print *, theta(j), j
|
80
90
|
|
81
91
|
1000 continue
|
82
92
|
|
83
93
|
do 1001 i=0,i_max
|
84
94
|
|
85
|
-
phi(i) = float(i)/float(i_max)*
|
95
|
+
phi(i) = float(i)/float(i_max)*(pi_generator() )*2
|
86
96
|
|
87
97
|
1001 continue
|
88
98
|
|
@@ -100,6 +110,10 @@
|
|
100
110
|
|
101
111
|
101 continue
|
102
112
|
|
113
|
+
! x(i,0)=x(i,j_max)
|
114
|
+
|
115
|
+
! y(i,0)=y(i,j_max)
|
116
|
+
|
103
117
|
100 continue
|
104
118
|
|
105
119
|
end subroutine
|
@@ -122,19 +136,19 @@
|
|
122
136
|
|
123
137
|
!
|
124
138
|
|
125
|
-
! o
|
139
|
+
! o(U)
|
126
140
|
|
127
141
|
! |
|
128
142
|
|
143
|
+
! (L) |
|
144
|
+
|
145
|
+
! o-------o-------o(R)
|
146
|
+
|
129
147
|
! |
|
130
148
|
|
131
|
-
!(L)o-------o-------o(R)
|
132
|
-
|
133
149
|
! |
|
134
150
|
|
135
|
-
! |
|
136
|
-
|
137
|
-
! o
|
151
|
+
! o(B)
|
138
152
|
|
139
153
|
|
140
154
|
|
@@ -190,8 +204,6 @@
|
|
190
204
|
|
191
205
|
vec_B(3) = z(i,j-1) - z(i,j)
|
192
206
|
|
193
|
-
print *, vec_B(2)
|
194
|
-
|
195
207
|
|
196
208
|
|
197
209
|
|
@@ -252,13 +264,25 @@
|
|
252
264
|
|
253
265
|
|
254
266
|
|
267
|
+
! 球の場合,normal=(x,y,z)でした.x**2+y**2+z**2=r**2より,f=x**2+y**2+z**2-r**2としてgradとればokでした...
|
268
|
+
|
269
|
+
! =====================================================================================
|
270
|
+
|
271
|
+
cross_avg(1)=0.5*x(i,j)/sqrt( (0.5*x(i,j) )**2+ (0.5*y(i,j) )**2+ (0.5*z(i,j) )**2+1.0d-5)
|
272
|
+
|
273
|
+
cross_avg(2)=0.5*y(i,j)/sqrt( (0.5*x(i,j) )**2+ (0.5*y(i,j) )**2+ (0.5*z(i,j) )**2+1.0d-5)
|
274
|
+
|
275
|
+
cross_avg(3)=0.5*z(i,j)/sqrt( (0.5*x(i,j) )**2+ (0.5*y(i,j) )**2+ (0.5*z(i,j) )**2+1.0d-5)
|
276
|
+
|
277
|
+
! ====================================================================================
|
278
|
+
|
255
279
|
v(1)=0
|
256
280
|
|
257
281
|
v(2)=0
|
258
282
|
|
259
283
|
v(3)=-100*7
|
260
284
|
|
261
|
-
if (dot_product(v,cross_avg)
|
285
|
+
if (dot_product(v,cross_avg) < 0) then
|
262
286
|
|
263
287
|
cp(i,j) = 2*((dot_product(v,cross_avg)) &
|
264
288
|
|
@@ -296,7 +320,7 @@
|
|
296
320
|
|
297
321
|
integer :: fo2=12
|
298
322
|
|
299
|
-
write(filename, "(a,i5.5,a)") "Newtonian"
|
323
|
+
write(filename, "(a,i5.5,a)") "vtkdata/Newtonian"
|
300
324
|
|
301
325
|
open(fo2,file=filename)
|
302
326
|
|
1
頂いた回答をもとに計算しなおした画像を掲載
test
CHANGED
File without changes
|
test
CHANGED
@@ -341,3 +341,11 @@
|
|
341
341
|
で書いています.
|
342
342
|
|
343
343
|
fortran90を使用しています
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
2020/04/22 追記
|
348
|
+
|
349
|
+
法線を解析的に求めた場合の画像.
|
350
|
+
|
351
|
+
![イメージ説明](021e83ca8d57de0e6681cf8078c3a8d0.png)
|