📄 fdtd.h
字号:
/***********************
* FDTD.h
* Written by LZQ
* 2006.06.08
***********************/
#include <stdio.h>
#include <math.h>
#include <stddef.h>
#include <windows.h>
#include "mat.h"
#include "matrix.h"
#define NUM_EX 1956
#define NUM_EZ 406
#define EPSILON0 8.8542e-12
#define EPSILONV 19.0
#define EPSILONP 5.2
#define MU0 12.5664e-7
#define PI 3.14159265359
#define lamda 6.328e-7 //入射波波长
#define omega 2*PI*(C0/lamda)
#define C0 2.9979e+8 //真空中光速
#define Z0 sqrt(MU0/EPSILON0)
#define K0 Z0/MU0
#define dx 5e-8 //x向空间步长
#define dz 2e-8 //z向空间步长
#define dt dz/2/C0 //时间步长
#define m0 58 //入射波在z方向的坐标值
int i,j,k,n;
double Ex_pre[NUM_EX][NUM_EZ],Ez_pre[NUM_EX][NUM_EZ],Hy_pre[NUM_EX][NUM_EZ];
double Ex_nxt[NUM_EX][NUM_EZ],Ez_nxt[NUM_EX][NUM_EZ],Hy_nxt[NUM_EX][NUM_EZ];
double Hyx_nxt[NUM_EX][NUM_EZ],Hyz_nxt[NUM_EX][NUM_EZ],Hyx_pre[NUM_EX][NUM_EZ],Hyz_pre[NUM_EX][NUM_EZ];
double Ex_final[NUM_EX*NUM_EZ],Ez_final[NUM_EX*NUM_EZ],Hy_final[NUM_EX*NUM_EZ];
int T,steps;
double thita[1801][251];
//边界epsilon值
double epsilonzxf[1800],epsilonzzf[1800],epsilonxxl[250],epsilonxzl[250];
double epsilonzxb[1800],epsilonzzb[1800],epsilonxxr[250],epsilonxzr[250];
//入射波
double E0;
double Hyincf_nxt,Exincf_nxt,Hyincf_pre,Exincf_pre;
double Hyinc[290],Ezinc[290];
//A(thita),B(thita),C(thita),D(thita)
double temp1,temp2,temp3,temp4;
//PML介质
double deltax[9],deltaz[9],deltamx[9],deltamz[9];
HANDLE hStdout;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -