Skip to content

Commit

Permalink
Disable file output for testing speed
Browse files Browse the repository at this point in the history
  • Loading branch information
Yoshiki NAGATANI committed Aug 29, 2018
1 parent a763570 commit 1ccfac9
Show file tree
Hide file tree
Showing 8 changed files with 107 additions and 89 deletions.
18 changes: 10 additions & 8 deletions FDTD_language_comparison.c
@@ -1,4 +1,5 @@
/* 二次元音響FDTD速度比較 by Yoshiki NAGATANI 20141109 (https://ultrasonics.jp/nagatani/fdtd/) */
/* disabled file output for testing speed 20180829 */

#include <stdio.h>
#include <math.h>
Expand All @@ -9,7 +10,7 @@
#define dx 0.01 /* 空間刻み [m] */
#define dt 20.0e-6 /* 時間刻み [s] */

#define Nstep 1000 /* 計算ステップ数 [回] */
#define Nstep 10000 /* 計算ステップ数 [回] */

#define freq 1.0e3 /* 初期波形の周波数 [Hz] */

Expand All @@ -34,10 +35,10 @@ int main(void)
char fieldfilename[30];

/* 事前準備 *********************************************************/
if((waveformfile = fopen("waveform.txt","w"))==NULL){
/* if((waveformfile = fopen("waveform.txt","w"))==NULL){
printf("open error [waveform.txt]\n");
return(1);
}
}*/

/* 粒子速度分布・音圧分布を初期化 *********************************************************/
for(i=0;i<NX+1;i++){
Expand Down Expand Up @@ -75,12 +76,13 @@ int main(void)
P[(int)(NX/4)][(int)(NY/3)] = sig;

/* 波形ファイル出力(時刻, 音源, 中央点の音圧) */
fprintf(waveformfile,"%e\t%e\t%e\n", dt*n, sig, P[(int)(NX/2)][(int)(NY/2)]);
fprintf(stderr,"%5d / %5d\r", n, Nstep );
/* fprintf(waveformfile,"%e\t%e\t%e\n", dt*n, sig, P[(int)(NX/2)][(int)(NY/2)]);*/

/* 音圧分布ファイル出力(50ステップ毎) */
if( n % 50 == 0 ){
sprintf(fieldfilename, "field%.6d.txt",n);
fprintf(stderr,"%5d / %5d\r", n, Nstep );
/* 音場ファイルを出力する場合は以下のコメントを外して下さい */
/* sprintf(fieldfilename, "field%.6d.txt",n);
if((fieldfile = fopen(fieldfilename,"w"))==NULL){
printf("open error [field.txt]\n");
return(1);
Expand All @@ -91,13 +93,13 @@ int main(void)
}
fprintf(fieldfile, "\n");
}
fclose(fieldfile);
fclose(fieldfile);*/
}

}

/* 事後処理 *********************************************************/
fclose(waveformfile);
/* fclose(waveformfile);*/

return(0);
}
Expand Down
34 changes: 18 additions & 16 deletions FDTD_language_comparison.f90
@@ -1,14 +1,15 @@
! 二次元音響FDTD速度比較 by Yoshiki NAGATANI 20141109 (https://ultrasonics.jp/nagatani/fdtd/)
! disabled file output for testing speed 20180829

program FDTD_language_comparison
program FDTD

integer :: NX = 300 ! 空間セル数 X [pixels]
integer :: NY = 400 ! 空間セル数 Y [pixels]

double precision :: dx = 0.01 ! 空間刻み [m]
double precision :: dt = 20.0e-6 ! 時間刻み [s]

integer :: Nstep = 1000 ! 計算ステップ数 [回]
integer :: Nstep = 10000 ! 計算ステップ数 [回]

double precision :: freq = 1.0e3 ! 初期波形の周波数 [Hz]

Expand All @@ -32,7 +33,7 @@ program FDTD_language_comparison
allocate( P(NX,NY) )
P(:,:) = 0.0

open(10, file='waveform.txt', status='replace')
! open(10, file='waveform.txt', status='replace')


! メインループ !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Expand All @@ -56,25 +57,26 @@ program FDTD_language_comparison
P(NX/4+1,NY/3+1) = sig;

! 波形ファイル出力(時刻, 音源, 中央点の音圧)
write (10, "(E17.7,' ', E17.7, ' ', E17.7)"), dt*n, sig, P(NX/2+1,NY/2+1)
write (*, "(I5,' / ', I5)"), n, Nstep
! write (10, "(E17.7,' ', E17.7, ' ', E17.7)"), dt*n, sig, P(NX/2+1,NY/2+1)

! 音圧分布ファイル出力(50ステップ毎)
if (mod(n, 50) == 0) then
write (fieldfilename, '("field", I6.6, ".txt")') n
open(20, file=fieldfilename, status='replace')
do i = 1, NX
do j = 1, NY
write (20, "(E17.7, '')", advance='no'), P(i,j)
end do
write (20, "()")
end do
close(20)
write (*, "(I5,' / ', I5)"), n, Nstep
! 音場ファイルを出力する場合は以下のコメントを外して下さい
! write (fieldfilename, '("field", I6.6, ".txt")') n
! open(20, file=fieldfilename, status='replace')
! do i = 1, NX
! do j = 1, NY
! write (20, "(E17.7, '')", advance='no'), P(i,j)
! end do
! write (20, "()")
! end do
! close(20)
end if

end do

! 事後処理 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
close(10)
! close(10)

end program FDTD_language_comparison
end program FDTD
30 changes: 16 additions & 14 deletions FDTD_language_comparison.m
@@ -1,12 +1,13 @@
% 二次元音響FDTD速度比較 by Yoshiki NAGATANI 20141109 (https://ultrasonics.jp/nagatani/fdtd/)
% disabled file output for testing speed 20180829

NX = 300; % 空間セル数 X [pixels]
NY = 400; % 空間セル数 Y [pixels]

dx = 0.01; % 空間刻み [m]
dt = 20.0e-6; % 時間刻み [s]

Nstep = 1000; % 計算ステップ数 [回]
Nstep = 10000; % 計算ステップ数 [回]

freq = 1.0e3; % 初期波形の周波数 [Hz]

Expand All @@ -19,7 +20,7 @@


% 事前準備 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
waveformfile = fopen('waveform.txt','w');
% waveformfile = fopen('waveform.txt','w');

% メインループ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for n = 0:Nstep,
Expand All @@ -42,22 +43,23 @@
P(floor(NX/4+1),floor(NY/3+1)) = sig;

% 波形ファイル出力(時刻, 音源, 中央点の音圧)
fprintf(waveformfile,'%e\t%e\t%e\n', dt*n, sig, P(floor(NX/2+1),floor(NY/2+1)));
fprintf('%5d / %5d\r', n, Nstep);
% fprintf(waveformfile,'%e\t%e\t%e\n', dt*n, sig, P(floor(NX/2+1),floor(NY/2+1)));

% 音圧分布ファイル出力(50ステップ毎)
if rem(n, 50) == 0
fieldfilename = sprintf('field%.6d.txt',n);
fieldfile = fopen(fieldfilename,'w');
for i = 1:NX
for j = 1:NY
fprintf(fieldfile,'%e\t',P(i,j));
end
fprintf(fieldfile,'\n');
end
fclose(fieldfile);
fprintf('%5d / %5d\r', n, Nstep);
% 音場ファイルを出力する場合は以下のコメントを外して下さい
% fieldfilename = sprintf('field%.6d.txt',n);
% fieldfile = fopen(fieldfilename,'w');
% for i = 1:NX
% for j = 1:NY
% fprintf(fieldfile,'%e\t',P(i,j));
% end
% fprintf(fieldfile,'\n');
% end
% fclose(fieldfile);
end
end

% 事後処理 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fclose(waveformfile);
% fclose(waveformfile);
18 changes: 10 additions & 8 deletions FDTD_language_comparison.pde
@@ -1,12 +1,13 @@
/* 二次元音響FDTD速度比較 by Yoshiki NAGATANI 20141109 (https://ultrasonics.jp/nagatani/fdtd/) */
/* disabled file output for testing speed 20180829 */

int NX = 300; /* 空間セル数 X [pixels] */
int NY = 400; /* 空間セル数 Y [pixels] */

double dx = 0.01; /* 空間刻み [m] */
double dt = 20.0e-6; /* 時間刻み [s] */

int Nstep = 1000; /* 計算ステップ数 [回] */
int Nstep = 10000; /* 計算ステップ数 [回] */

double freq = 1.0e3; /* 初期波形の周波数 [Hz] */

Expand All @@ -31,7 +32,7 @@ void setup()
{
size(400,300);
frameRate(1000);
waveformfile = createWriter("waveform.txt");
/* waveformfile = createWriter("waveform.txt");*/

/* 粒子速度分布・音圧分布を初期化 *********************************************************/
for(int i=0;i<NX+1;i++){
Expand Down Expand Up @@ -74,13 +75,14 @@ void draw()
P[int(NX/4)][int(NY/3)] = sig;

/* 波形ファイル出力(時刻, 音源, 中央点の音圧) */
println(n);
waveformfile.println(String.format("%e",n*dt)+"\t"+String.format("%e",sig)+"\t"+String.format("%e",P[int(NX/2)][int(NY/2)]));
waveformfile.flush();
/* waveformfile.println(String.format("%e",n*dt)+"\t"+String.format("%e",sig)+"\t"+String.format("%e",P[int(NX/2)][int(NY/2)]));
waveformfile.flush();*/

/* 音圧分布ファイル出力(50ステップ毎) */
if( n % 50 == 0 ){
fieldfilename = "field"+String.format("%06d",n)+".txt";
println(n);
/* 音場ファイルを出力する場合は以下のコメントを外して下さい */
/* fieldfilename = "field"+String.format("%06d",n)+".txt";
fieldfile = createWriter(fieldfilename);
for(int i=0; i<NX; i++){
for(int j=0; j<NY; j++){
Expand All @@ -93,15 +95,15 @@ void draw()
}
image(img, 0, 0);
fieldfile.flush();
fieldfile.close();
fieldfile.close();*/
}

n++;
}

/* 事後処理 *********************************************************/
else{
waveformfile.close();
/* waveformfile.close();*/
exit();
}
}
Expand Down
30 changes: 16 additions & 14 deletions FDTD_language_comparison.pl
@@ -1,12 +1,13 @@
# 二次元音響FDTD速度比較 by Yoshiki NAGATANI 20141109 (https://ultrasonics.jp/nagatani/fdtd/)
# disabled file output for testing speed 20180829

$NX = 300; # 空間セル数 X [pixels]
$NY = 400; # 空間セル数 Y [pixels]

$dx = 0.01; # 空間刻み [m]
$dt = 20.0e-6; # 時間刻み [s]

$Nstep = 1000; # 計算ステップ数 [回]
$Nstep = 10000; # 計算ステップ数 [回]

$freq = 1.0e3; # 初期波形の周波数 [Hz]

Expand All @@ -16,7 +17,7 @@
# 事前準備 #########################################################
$pi = atan2(1,1) *4; # 円周率π

open(WAVEFORMFILE,">waveform.txt");
#open(WAVEFORMFILE,">waveform.txt");


# メインループ #########################################################
Expand All @@ -38,25 +39,26 @@
$P[int($NX/4)][int($NY/3)] = $sig;

# 波形ファイル出力(時刻, 音源, 中央点の音圧)
printf WAVEFORMFILE ("%e\t%e\t%e\n", $dt*$n, $sig, $P[int($NX/2)][int($NY/2)]);
printf("%5d / %5d\n", $n, $Nstep );
# printf WAVEFORMFILE ("%e\t%e\t%e\n", $dt*$n, $sig, $P[int($NX/2)][int($NY/2)]);

# 音圧分布ファイル出力(50ステップ毎)
if( $n % 50 == 0 ){
$fieldfilename = sprintf( "field%.6d.txt",$n);
open(FIELDFILE,">$fieldfilename");
for($i=0; $i<$NX; $i++){
for($j=0; $j<$NY; $j++){
printf FIELDFILE ("%e\t", $P[$i][$j] );
}
printf FIELDFILE ("\n");
}
close(FIELDFILE);
printf("%5d / %5d\n", $n, $Nstep );
# 音場ファイルを出力する場合は以下のコメントを外して下さい
# $fieldfilename = sprintf( "field%.6d.txt",$n);
# open(FIELDFILE,">$fieldfilename");
# for($i=0; $i<$NX; $i++){
# for($j=0; $j<$NY; $j++){
# printf FIELDFILE ("%e\t", $P[$i][$j] );
# }
# printf FIELDFILE ("\n");
# }
# close(FIELDFILE);
}
}

# 事後処理 #########################################################
close(WAVEFORMFILE);
#close(WAVEFORMFILE);


# サブルーチン ############################################################
Expand Down
26 changes: 14 additions & 12 deletions FDTD_language_comparison.py
@@ -1,4 +1,5 @@
# 二次元音響FDTD速度比較 by Yoshiki NAGATANI 20141109 (https://ultrasonics.jp/nagatani/fdtd/)
# disabled file output for testing speed 20180829

import sys
from scipy import *
Expand All @@ -9,7 +10,7 @@
dx = 0.01 # 空間刻み [m]
dt = 20.0e-6 # 時間刻み [s]

Nstep = 1000 # 計算ステップ数 [回]
Nstep = 10000 # 計算ステップ数 [回]

freq = 1.0e3 # 初期波形の周波数 [Hz]

Expand All @@ -22,7 +23,7 @@


# 事前準備 #########################################################
waveformfile = open('waveform.txt', 'w')
#waveformfile = open('waveform.txt', 'w')

# メインループ #########################################################
for n in range(Nstep+1):
Expand All @@ -45,18 +46,19 @@
P[int(NX/4),int(NY/3)] = sig

# 波形ファイル出力(時刻, 音源, 中央点の音圧)
waveformfile.write('%e\t%e\t%e\n' % (dt*n, sig, P[int(NX/2),int(NY/2)]))
sys.stderr.write('%5d / %5d\r' % (n, Nstep) )
# waveformfile.write('%e\t%e\t%e\n' % (dt*n, sig, P[int(NX/2),int(NY/2)]))

# 音圧分布ファイル出力(50ステップ毎)
if n % 50 == 0:
fieldfilename = 'field%.6d.txt' % (n)
fieldfile = open(fieldfilename,'w')
for i in range(NX):
for j in range(NY):
fieldfile.write('%e\t' % (P[i,j]))
fieldfile.write('\n');
fieldfile.close
sys.stderr.write('%5d / %5d\r' % (n, Nstep) )
# 音場ファイルを出力する場合は以下のコメントを外して下さい
# fieldfilename = 'field%.6d.txt' % (n)
# fieldfile = open(fieldfilename,'w')
# for i in range(NX):
# for j in range(NY):
# fieldfile.write('%e\t' % (P[i,j]))
# fieldfile.write('\n');
# fieldfile.close

# 事後処理 #########################################################
waveformfile.close
#waveformfile.close

0 comments on commit 1ccfac9

Please sign in to comment.