www.pudn.com > 2D-TM.rar > 2d_farfield.h


//See:IEEE TAP:vol39,no4,page 429 
#define	LightSpeed	3.0e+8 
 
const int	InitAngle=180;//180; 
const int	Increament=1; 
const int	AngleNum=1; 
const double	RadPerDegree=pii/180.0; 
 
class FarField{ 
private: 
	int		i1,i2,j1,j2; 
	vector	Origin; 
public: 
	vector	(*FieldValue)[AngleNum]; 
	double phi; 
	int		index;	 
	FarField(int nmax,int ii1,int ii2,int jj1,int jj2); 
	void	NearToFarEz(int timestep,double** NearField); 
	void	NearToFarHx(int timestep,double** NearField); 
	void	NearToFarHy(int timestep,double** NearField); 
	void	DataOut(); 
}; 
 
FarField::FarField(int nmax,int ii1,int ii2,int jj1,int jj2){ 
	int		in,an; 
 
	i1=ii1;i2=ii2;j1=jj1;j2=jj2; 
	Origin=vector((i1+i2)/2.0,(j1+j2)/2.0,0.0);//中心点 
	index=nmax+(int)(sqrt((i2-i1)*(i2-i1)*dx*dx+(j2-j1)*(j2-j1)*dy*dy)/(LightSpeed*dt))+1;//最大需存贮空间		 
	FieldValue=new vector[index][AngleNum]; 
 
	for(in=0;in