⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1.cpp

📁 等离子体覆盖目标的电磁特性的FDTD分析
💻 CPP
字号:
#include"fdtd.h"
#include"plasma.h"

void main()
{	
	int k,n,N;
	double *ex=new double[MZ+1];
	double *hy=new double[MZ];
	double *psi=new double[MZ+1];
	double *je=new double[MZ+1];

	for(k=0;k<MZ+1;k++)	ex[k]=0.0;
	for(k=0;k<MZ;k++)	hy[k]=0.0;
	for(k=0;k<MZ+1;k++)	psi[k]=0.0;
	for(k=0;k<MZ+1;k++)	je[k]=0.0;

	ofstream fref,fdef,fsta,fsource;
	fref.open("ref.dat");
	fdef.open("def.dat");
	fsta.open("sta.dat");
	fsource.open("source.dat");

	cout<<"Input N:"<<endl;
	cin>>N;

	Zeroinit();

	for(n=1;n<=N;n++){
	for(k=0;k<K1;k++) HYi[k]=mtz1[K1-k-1]*HYi[k]+(mtz2[K1-k-1]/dz)*(EXi[k]-EXi[k+1]);
		for(k=K1;k<K2;k++)  HYi[k]+=(tem2/dz)*(EXi[k]-EXi[k+1]);
		for(k=K2;k<MZ;k++) HYi[k]=mtz1[k-K2]*HYi[k]+(mtz2[k-K2]/dz)*(EXi[k]-EXi[k+1]);
	for(k=0;k<K1;k++) hy[k]=mtz1[K1-k-1]*hy[k]+(mtz2[K1-k-1]/dz)*(ex[k]-ex[k+1]);
		hy[kk0-1]+=-(tem2/dz)*(ex[kk0]-EXi[kk0]-ex[kk0-1]);
		hy[kk1]+=-(tem2/dz)*(ex[kk1+1]+EXi[kk1]-ex[kk1]);
		for(k=K1;k<K2;k++)
			if(k!=kk0-1&&k!=kk1)
				hy[k]+=-(tem2/dz)*(ex[k+1]-ex[k]);
		for(k=K2;k<MZ;k++) hy[k]=mtz1[k-K2]*hy[k]+(mtz2[k-K2]/dz)*(ex[k]-ex[k+1]);

	for(k=1;k<=K1;k++)  EXi[k]=etz1[K1-k]*EXi[k]+(etz2[K1-k]/dz)*(HYi[k-1]-HYi[k]);
		for(k=K1+1;k<K2;k++)  EXi[k]+=(tem1/dz)*(HYi[k-1]-HYi[k]);
		for(k=K2;k<MZ;k++)  EXi[k]=etz1[k-K2]*EXi[k]+(etz2[k-K2]/dz)*(HYi[k-1]-HYi[k]); 
		EXi[K1+1]=source;

		
		for(k=1;k<=K1;k++)  ex[k]=etz1[K1-k]*ex[k]+(etz2[K1-k]/dz)*(hy[k-1]-hy[k]);
		ex[kk0]+=-(tem1/dz)*(hy[kk0]-hy[kk0-1]-HYi[kk0-1]);
		ex[kk1]+=-(tem1/dz)*(hy[kk1]+HYi[kk1]-hy[kk1-1]);
		for(k=K1+1;k<K2;k++)
			if(k!=kk0&&k!=kk1)
				if(k<MZ/2-thick||k>MZ/2+thick)
					ex[k]+=-(tem1/dz)*(hy[k]-hy[k-1]);
				else{
					double temp=ex[k];
                
	                

				ex[k]=((2.0/tem1-xi(0,k))*ex[k]+psi[k]-(2.0/dz)*(hy[k]-hy[k-1])-2.0*je[k])/(2.0/tem1+chi(0,k)-xi(0,k));
				je[k]=((2.0/tem1-chi(0,k)+xi(0,k))*je[k]-(2.0/dz)*(chi(0,k)-xi(0,k))*(hy[k]-hy[k-1])+(2.0/tem1)*chi(0,k)*temp-2.0/tem1*psi[k])/(2.0/tem1+chi(0,k)-xi(0,k));
		   	    psi[k]=(dChi0(k)-dXi0(k))*ex[k]+dXi0(k)*temp+exp(-CollisionalFreq*dt)*psi[k];
				};
	
		ex[MZ/2+thick]=0.0;
	
		for(k=K2;k<MZ;k++)  ex[k]=etz1[k-K2]*ex[k]+(etz2[k-K2]/dz)*(hy[k-1]-hy[k]);

		cout<<n<<endl;


		fsource<<sch[n]<<end1;
		fref<<ex[kk0-2]<<endl;
		

	
			fsta<<EXi[K1+11]<<endl;
	
	

	
	};

	fref.close();	fdef.close();
	fsta.close();   fsource.close();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -