L
learnerlcy
Guest
Hi ~ saya menjalankan kode 1D_FDTD buku bernama UING THE elektromagnetik SIMULASI METODE FDTD.Tetapi hasil perhitungan yang salah ~
[url = http://images.elektroda.net/13_1258255028.jpg] http://images.elektroda.net/13_1258255028_thumb.jpg [/
Aku ingin tahu mengapa?
Ini adalah kode:
/ * 1D simulasi FDTD in free space * /
# include <math.h>
# include <stdlib.h>
# include <stdio.h>
# define KE 200
main ()
(
float mantan [KE], hy [KE],
int n, k, kc, ke, NSTEPS;
float T;
float t0, menyebar, denyut nadi;
FILE * fp; / /, * fopen ();
/ * Inisialisasi * /
for (k = 1; k <EK; k )
(
ex [k] = 0;
hy [k] = 0;
)
kc = KE / 2; / / Pusat dari masalah ruang
t0 = 40,0; / / Pusat pulsa insiden
menyebar = 12; / / Lebar insiden pulsa
T = 0;
NSTEPS = 1;
while (NSTEPS> 0)
(
printf ( "NSTEPS -->"); / / NSTEPS adalah berapa kali loop utama telah dieksekusi
scanf ( "% d", & NSTEPS);
printf ( "% d \ n", NSTEPS);
n = 0;
for (n = 1; n <= NSTEPS; n )
(
T = T 1;
/ / Main loop FDTD
/ * Hitung lapangan Ex * /
for (k = 1; k <EK; k )
(
ex [k] = ex [k] 0,5 * (hy [k-1] - hy [k]);
)
/ / Letakkan Gaussian pulsa di tengah
nadi = exp (-5 * (pow ((t0-T) / menyebar, 2.0)));
ex [kc] = pulsa;
printf ( "% 5.1f% 6.2f \ n", t0 - T, mantan [kc]);
/ / Hitung bidang Hy
for (k = 0; k <KE-1; k )
(
hy [k] = hy [k] 0,5 * (ex [k] - mantan [k 1]);
)
)
/ / Akhir dari loop Utama
/ / Pada akhir perhitungan, mencetak Ex dan bidang Hy
for (k = 1; k <= EK; k )
(
printf ( "% 3d% 6f% 6.2f \ n", k, mantan [k], hy [k]);
)
/ / Tulis lapangan E ke sebuah file "Ex"
fp = fopen ( "Ex.dat", "w");
for (k = 1; k <= EK; k )
(
fprintf (fp, "% d% 6.2f \ n", k, mantan [k]);
)
fclose (fp);
/ / Tulis lapangan H ke sebuah file "Hy"
fp = fopen ( "Hy.dat", "w");
for (k = 1; k <= EK; k )
(
fprintf (fp, "% d% 6.2f \ n", k, hy [k]);
)
fclose (fp);
printf ( "T =% 5.0f \ n", T);
)
)Ditambahkan setelah 1 menit:[url = http://images.elektroda.net/53_1258255246.jpg] [img] http://images.elektroda.net/53_1258255246_thumb.jpg [/
[url = http://images.elektroda.net/13_1258255028.jpg] http://images.elektroda.net/13_1258255028_thumb.jpg [/
Aku ingin tahu mengapa?
Ini adalah kode:
/ * 1D simulasi FDTD in free space * /
# include <math.h>
# include <stdlib.h>
# include <stdio.h>
# define KE 200
main ()
(
float mantan [KE], hy [KE],
int n, k, kc, ke, NSTEPS;
float T;
float t0, menyebar, denyut nadi;
FILE * fp; / /, * fopen ();
/ * Inisialisasi * /
for (k = 1; k <EK; k )
(
ex [k] = 0;
hy [k] = 0;
)
kc = KE / 2; / / Pusat dari masalah ruang
t0 = 40,0; / / Pusat pulsa insiden
menyebar = 12; / / Lebar insiden pulsa
T = 0;
NSTEPS = 1;
while (NSTEPS> 0)
(
printf ( "NSTEPS -->"); / / NSTEPS adalah berapa kali loop utama telah dieksekusi
scanf ( "% d", & NSTEPS);
printf ( "% d \ n", NSTEPS);
n = 0;
for (n = 1; n <= NSTEPS; n )
(
T = T 1;
/ / Main loop FDTD
/ * Hitung lapangan Ex * /
for (k = 1; k <EK; k )
(
ex [k] = ex [k] 0,5 * (hy [k-1] - hy [k]);
)
/ / Letakkan Gaussian pulsa di tengah
nadi = exp (-5 * (pow ((t0-T) / menyebar, 2.0)));
ex [kc] = pulsa;
printf ( "% 5.1f% 6.2f \ n", t0 - T, mantan [kc]);
/ / Hitung bidang Hy
for (k = 0; k <KE-1; k )
(
hy [k] = hy [k] 0,5 * (ex [k] - mantan [k 1]);
)
)
/ / Akhir dari loop Utama
/ / Pada akhir perhitungan, mencetak Ex dan bidang Hy
for (k = 1; k <= EK; k )
(
printf ( "% 3d% 6f% 6.2f \ n", k, mantan [k], hy [k]);
)
/ / Tulis lapangan E ke sebuah file "Ex"
fp = fopen ( "Ex.dat", "w");
for (k = 1; k <= EK; k )
(
fprintf (fp, "% d% 6.2f \ n", k, mantan [k]);
)
fclose (fp);
/ / Tulis lapangan H ke sebuah file "Hy"
fp = fopen ( "Hy.dat", "w");
for (k = 1; k <= EK; k )
(
fprintf (fp, "% d% 6.2f \ n", k, hy [k]);
)
fclose (fp);
printf ( "T =% 5.0f \ n", T);
)
)Ditambahkan setelah 1 menit:[url = http://images.elektroda.net/53_1258255246.jpg] [img] http://images.elektroda.net/53_1258255246_thumb.jpg [/