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


 
#define CollisionalFreq 5.0e10 
 
double PlasmaFreq(int i,int j) 
{ 
    double z; 
	double density; 
	double DensityBase=0.0e17; 
	double DensityHight=5.0e17; 
 
//  double z=Target_X-sqrt((i-MX/2)*(i-MX/2)+(j-MY/2)*(j-MY/2)); 
	if(abs(i-MX/2)>=(Target_X-rPlasma)) 
		z=abs(i-MX/2)-Target_X+rPlasma; 
	if(abs(j-MY/2)>=(Target_X-rPlasma)) 
    	z=abs(j-MX/2)-Target_X+rPlasma; 
		 
	//均匀密度分布: 
//	density=DensityHight;	 
	//线性密度分布: 
//	density=DensityBase+DensityHight*z/rPlasma; 
	//抛物线密度分布: 
	density=DensityBase+DensityHight*(-z*z+rPlasma*rPlasma)/(rPlasma*rPlasma); 
 
	double temp; 
	temp=density*1.6*1.6/(8.842*9.11); 
	temp=sqrt(temp*100000); 
	return temp;//wp. 
} 
 
double chi(int m,int i,int j) 
{ 
	double wp,vc; 
	wp=PlasmaFreq(i,j); 
	vc=CollisionalFreq; 
	return wp*wp*dt/vc-(wp*wp/(vc*vc))*(1.0-exp(-vc*dt))*exp(-m*vc*dt); 
} 
 
double xi(int m,int i,int j) 
{ 
	double wp,vc,xi; 
	wp=PlasmaFreq(i,j); 
	vc=CollisionalFreq; 
	xi=wp*wp*dt/(2.0*vc); 
	return xi-wp*wp/(vc*vc*vc*dt)*(1.0-(1.0+vc*dt)*exp(-vc*dt))*exp(-m*vc*dt); 
	//return 0.0; 
 
} 
 
inline double dChi0(int i,int j)	{	return chi(0,i,j)-chi(1,i,j);} 
inline double dXi0(int i,int j)		{	return xi(0,i,j)-xi(1,i,j);}