亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? padjuss.c

?? 美國berkeley大學開發的有界等離子體粒子1d3v計算機模擬程序,很實用
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "pdefs.h"
#include <malloc.h>

/****************************************************************/
/* Routine to adjust (initialize, re-pack and inject) particles */
/*	to the desired boundary conditions                           */

adjust()
{
	static float extra[NSMAX][2], iv[NSMAX][2], eVscale, iVscale, ionVscale;
	int i, ii, isp, k, nnp, j, secountl, secountr, ien, s;
	static int init_flag=1;
	float	sig1, sig2, stot, random, prob, dum, vel, engy, rengy, eengy, del;
	float	phi1, cosphi, sinphi, coschi, sinchi, tempvr, tempvth, tempvph;
	float vnext(), del_t, vmag, theta;
	int nreflux[NSMAX], ninjected;
	
	/* INITIALIZE array for computing positions of injected particles */
	if (init_flag)
	{
		/* "enter" is now the no. of particles injected each "dt" */
		for (isp=0; isp<nsp; isp++)
		{
			if (fabs(enter[isp][0]) > 0.) extra[isp][0] = 0.5123123;
			else extra[isp][0] = 0.;
			if (fabs(enter[isp][1]) > 0.) extra[isp][1] = 0.5123123;
			else extra[isp][1] = 0.;
		}
		if(icollisional)
      {
			achrgx *= gden*dr;
			bchrgx *= gden*dt*sqrt(2*1.602E-19/m[icolsp]);
			ascat  *= gden*dr;
			bscat  *= gden*dt*sqrt(2*1.602E-19/m[icolsp]);
		}
		init_flag = 0;
	}

	for (isp=0; isp <nsp; isp++) jwall[isp] = 0.0;

	if(secondary) secountl = secountr = 0;
	
	for (isp=0; isp<nsp; isp++)
	{
		nreflux[isp]= 0;	/* nreflux[isp] equals zero */
		if (np[isp] > 0)
		{
			nnp = np[isp] - 1;
			i = 0;

			/* eliminate "outsiders", allow for secondary electron emission, 
				and if it left thru LH plate, 
				ADD charge there to sigma (plate surface density). */
			do
			{ 
				if (r[isp][i] <= r0) 
				{
					dum = (vr[isp][i]*vr[isp][i] + vth[isp][i]*vth[isp][i]
							+vph[isp][i]*vph[isp][i] - emin[isp])/de[isp];
					s = dum;
					if (s<nbin[isp]-1 && dum>=0)
					{
						dum -= s;
						
						fe[isp][s]  += (!s) ? 2*(1-dum) : 1-dum;
						fe[isp][s+1]+= (s==nbin[isp]-1) ? 2*dum : dum;
					}

         		dum = -atan(sqrt(vth[isp][i]*vth[isp][i]
											+vph[isp][i]*vph[isp][i])
											/vr[isp][i])/dtheta[isp];
					s = dum;
					dum -= s;
					ftheta[isp][s]  += (!s) ? 2*(1-dum) : 1-dum;
					ftheta[isp][s+1]+= (s==nbin[isp]-1) ? 2*dum : dum;

					r[isp][i] = r[isp][nnp];
					vr[isp][i] = vr[isp][nnp];
					vth[isp][i] = vth[isp][nnp];
					vph[isp][i] = vph[isp][nnp];
					nnp--;
					
					jwall[isp] += q[isp]/area;
					
					if (secondary)
					{
						if (frand() < seec[isp])
						{
						    secountl++;
							 jwall[secsp] -= q[secsp]/area;
					   }
					}
				}

				else if (r[isp][i] >= r1)
				{
					r[isp][i] = r[isp][nnp];
					vr[isp][i] = vr[isp][nnp];
					vth[isp][i] = vth[isp][nnp];
					vph[isp][i] = vph[isp][nnp];
					nnp--;
					if(reflux)	nreflux[isp]++;
					else if (secondary)
						if (frand() < seec[isp])	secountr++;
				}
				else i++;
			} while (i < nnp);
			
			np[isp] = nnp +1;
		}	/* end of "if(np[isp]>0...)" loop */

	}	/* end of "for( isp..)"  loop */

	/* INJECT new particles at walls, one species at a time */
	
	for (isp=0; isp<nsp; isp++)
	{
		if (inject[isp] || nreflux[isp])
		{
			for (k=0; k<2; k++)
			{
				extra[isp][k] += enter[isp][k];
				if (reflux && k == 1) extra[isp][k] += nreflux[isp];
				/* "extra" = the fraction of "dt" when emitted */
				ninjected = extra[isp][k];

				while (extra[isp][k] >= 1.)
				{
					del_t= ((int)extra[isp][k])/(ninjected +1.);
					ii = np[isp];
					np[isp]++;
				
					if (ii > MAXLEN) 	 /* Move array boundaries here */
					{
						printf("ADJUST: too many particles, species %d",isp);
						exit(1);
					}

					/* Choose Vr in bit-reversed order */
					vr[isp][ii] = vnext(k,isp);
					vmag = vtpt[isp]*sqrt(2*fabs(log(frand()+DBL_MIN)));
					theta = TWOPI*frand();
					vth[isp][ii] = vmag*sin(theta);
					vph[isp][ii] = vmag*cos(theta);
					
					/* Adjust Vr for effect of electric field */
					vr[isp][ii] += qm[isp]*(del_t-0.5)*e[k*nc]*dttx;
					r[isp][ii] = r0 +k*nc + del_t*vr[isp][ii];
					if(!k)	jwall[isp] -= q[isp]/area;
					extra[isp][k] -= 1;
				}	/* end "while extra..)" loop */

			}	/* end "for k= 0,1" loop */

		}	/* end "if( inject..)"  loop */

	}  /* end "for( isp...)"  loop */
	
	if(ecollisional)
	{
		nnp = np[ecolsp];
	  	for(j=0; j<nnp; j++)
	  	{
	  		/* determine if a collision occurs */
	         dum = (vr[ecolsp][j]*vr[ecolsp][j] + vth[ecolsp][j]*vth[ecolsp][j]
	  					+vph[ecolsp][j]*vph[ecolsp][j]);
	  			engy= Escale[ecolsp]*dum;
	  			vel = sqrt(dum);
	         ien = engy +0.5;
	   		if(ien >= NEMAX) ien = NEMAX - 1;
				stot	= sels[ien] + sext[ien] + sion[ien];
				prob   = 1 - exp(-dr*vel*gden*stot);
				random = frand();

				if( random < prob ) 
				{
					/* determine the type of collision and calculate new velocities, etc */
					random /= prob;
					sig1 = sels[ien]/(stot +DBL_MIN);
      	      sig2 = (sels[ien] + sext[ien])/(stot +DBL_MIN);
					
					/******************************************/
					/* normalize velocity to get direction */
					if (vel >1e-30)
					{
						vr[ecolsp][j]  /= vel;
						vth[ecolsp][j] /= vel;
						vph[ecolsp][j] /= vel;
					}	
					/******************************************/
					/* if the collision is elastic */
		           if (random <= sig1)
					{
 	               /* engy = engy*(1 - (1 - coschi)*2*m[ecolsp]/m[ecolsp+1]);*/
						newvel(engy,vel,&vr[ecolsp][j],&vth[ecolsp][j],&vph[ecolsp][j], 1);
					}
					/***********************************/
					/* if the collision is excitation */
	            else if ((random > sig1) && (random <= sig2))
		 			{
		            engy -= extengy0;
		            vel	= sqrt(fabs(engy)/Escale[ecolsp]);
		 				newvel(engy,vel,&vr[ecolsp][j],&vth[ecolsp][j],&vph[ecolsp][j], 0);
						 
				  	}
				  	/************************************/
				  	/* if the collision is ionization, 
				  		add the released electron first */
		         else
				  	{
		            engy -= ionengy0 - gtemp*log(frand()+DBL_MIN);
				  		rengy = 10.0*tan(frand()*atan(engy/20.0));
                  engy -= rengy;
		            
					   eengy = m[ionsp]*rengy/(m[ionsp] +m[ecolsp]);
                  vel = sqrt(fabs(eengy)/Escale[ecolsp]);
					 	k = np[ecolsp];
					 	vr[ecolsp][k]	= vr[ecolsp][j];
					  	vth[ecolsp][k] = vth[ecolsp][j];
					  	vph[ecolsp][k]	= vph[ecolsp][j];
                  newvel(eengy, vel, &vr[ecolsp][k], &vth[ecolsp][k], &vph[ecolsp][k], 0);
					 	r[ecolsp][k]	= r[ecolsp][j];
		              
						rengy -= eengy;
                  vel = sqrt(fabs(rengy)/Escale[ionsp]);
					   k = np[ionsp];
					   vr[ionsp][k] = frand();
					   vth[ionsp][k]= frand();
					   vph[ionsp][k]= frand();
         		   vel /= sqrt(vr[ionsp][k]*vr[ionsp][k] +vth[ionsp][k]*vth[ionsp][k]
						     +vph[ionsp][k]*vph[ionsp][k]);

						vr[ionsp][k]  *= vel;
						vth[ionsp][k] *= vel;
						vph[ionsp][k] *= vel;
	               r[ionsp][k] = r[ecolsp][j];

						if(++np[ionsp] >MAXLEN || ++np[ecolsp] >MAXLEN)
							ExitMsg("ADJUST(Ionization): too many particles. MUST EXIT!");

						/* then scatter the incident electron */
                  vel = sqrt(fabs(engy)/Escale[ecolsp]);
					 	newvel(engy,vel,&vr[ecolsp][j],&vth[ecolsp][j],&vph[ecolsp][j], 0);
				
						if ( r[ionsp][k] >= r0 && r[ionsp][k] <= r1)
						{
						   s= r[ionsp][k] -r0;

							if (r[ionsp][k] < r0+.5)
					         del = ((r[ionsp][k]+.5)*(r[ionsp][k]+.5)*(r[ionsp][k]+.5)-rg3[0])/
						            ((r[ionsp][k]+.5)*(r[ionsp][k]+.5)*(r[ionsp][k]+.5)-r0*r0*r0);
					   	else
						   {
				            del =((r[ionsp][k]+.5)*(r[ionsp][k]+.5)*(r[ionsp][k]+.5)-rg3[s])
							        /(3.*r[ionsp][k]*r[ionsp][k]+0.25);
						   }

							if (r[ionsp][k] > r1-.5)
					         del =(r1*r1*r1-r[ionsp][k]*r[ionsp][k]*r[ionsp][k])/
									  (r1*r1*r1-(r[ionsp][k]-.5)*(r[ionsp][k]-.5)*(r[ionsp][k]-.5));
						}
					   iontemp[s] += 1 - del;
					   iontemp[s+1] += del; 
					  
					}
			 	}	/* end if(electron-collision) */
			 } 		/* end for(electrons) 	   */
	}					/* end of if(collision)    */
	
	if(icollisional)
	{
		nnp = np[icolsp];
		for(j=0; j<nnp; j++)
		{
         /* determine if a collision occurs */
		   vel = sqrt(vr[icolsp][j]*vr[icolsp][j]+vth[icolsp][j]*vth[icolsp][j]
						 +vph[icolsp][j]*vph[icolsp][j]) +DBL_MIN;
			sig1= ascat*vel  +bscat;
			sig2= achrgx*vel +bchrgx;
			stot= sig1 +sig2;
			prob= 1 - exp(-stot);
			random= frand();
			

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91久久精品国产91性色tv| 中文字幕在线不卡视频| 精品国产一区二区三区久久久蜜月| 久久色.com| 亚洲国产欧美一区二区三区丁香婷| 久久精品免费观看| 91福利精品视频| 欧美激情综合五月色丁香 | 欧美变态凌虐bdsm| 亚洲品质自拍视频| 成人免费视频视频| 日韩免费性生活视频播放| 亚洲欧美日韩系列| 国产黄色精品网站| 日韩精品一区二区三区视频在线观看 | 91麻豆精品国产91久久久久久| 国产午夜三级一区二区三| 日韩中文欧美在线| 91同城在线观看| 国产精品丝袜一区| 国产精品1区2区3区在线观看| 777精品伊人久久久久大香线蕉| 日韩一区在线看| 成人激情动漫在线观看| 久久久综合视频| 韩国三级中文字幕hd久久精品| 在线成人av网站| 亚洲成人av中文| 欧美性受极品xxxx喷水| 国产精品毛片久久久久久| 国产精品一区二区久久不卡| 久久综合色一综合色88| 韩国精品一区二区| 久久综合九色综合97婷婷女人| 免费成人美女在线观看| 欧美成人一区二区| 精品无人区卡一卡二卡三乱码免费卡| 777久久久精品| 久色婷婷小香蕉久久| 欧美变态口味重另类| 精品亚洲国产成人av制服丝袜| 欧美电视剧免费全集观看| 偷拍自拍另类欧美| 欧美一区国产二区| 精品精品国产高清a毛片牛牛| 视频一区二区三区中文字幕| 欧美酷刑日本凌虐凌虐| 日韩经典一区二区| 欧美一级久久久久久久大片| 麻豆视频一区二区| 久久午夜羞羞影院免费观看| 国产不卡视频在线播放| 国产精品久久久久久久久久免费看| aaa欧美色吧激情视频| 99精品在线免费| 国产精品视频在线看| 激情文学综合丁香| 欧美亚洲动漫精品| 欧美最猛黑人xxxxx猛交| 日本不卡不码高清免费观看| 一区二区在线电影| 国产在线日韩欧美| 日韩一卡二卡三卡| 色视频成人在线观看免| 亚洲激情在线激情| 欧美xxxxxxxxx| 欧美日韩美少妇| 欧美在线免费视屏| 高清beeg欧美| 国产综合久久久久久久久久久久| 美女网站视频久久| 一区二区三区在线看| 精品久久久久久久久久久久包黑料 | 一区二区三区四区激情| 麻豆精品久久久| 精品国产乱码久久久久久影片| 午夜成人免费视频| 日韩精品中文字幕一区| 国产成人精品三级麻豆| 久久精品男人的天堂| 国产欧美视频在线观看| 国产精品资源网| 亚洲午夜羞羞片| 精品久久国产老人久久综合| 波多野结衣一区二区三区| 丝袜美腿一区二区三区| 国产精品精品国产色婷婷| 欧美日本一区二区三区四区| 国产成人精品三级麻豆| 日本vs亚洲vs韩国一区三区二区 | 欧美激情综合在线| 欧美伦理影视网| 成人av资源下载| 久久国产麻豆精品| 亚洲高清中文字幕| 欧美日韩在线播放一区| 91在线观看高清| 高清beeg欧美| 日韩一区二区免费视频| 国产一区二区视频在线| 亚洲视频在线一区观看| 久久精品网站免费观看| 成人av网在线| 国产麻豆精品95视频| 欧美经典一区二区三区| 成人免费视频视频| 男人的j进女人的j一区| 91久久线看在观草草青青| 国产在线播放一区| 丝袜国产日韩另类美女| 午夜精品在线视频一区| 亚洲国产精品久久一线不卡| 亚洲一区中文日韩| 国产精品69毛片高清亚洲| 色综合天天综合在线视频| 国产乱人伦偷精品视频不卡| 91丨porny丨在线| 精品久久五月天| 五月天一区二区三区| 国产精品资源网| 国产91精品露脸国语对白| 黄色资源网久久资源365| 久久国产精品露脸对白| 天天综合网天天综合色| 午夜电影网亚洲视频| 亚洲精品国产第一综合99久久| 亚洲人精品午夜| 亚洲一区二区三区四区在线免费观看| 日韩理论在线观看| 一区二区在线观看av| 欧美日韩你懂的| 欧美亚洲精品一区| 欧美日韩精品一区视频| 91精品国产综合久久小美女| 欧美一级日韩一级| 精品国产a毛片| 国产欧美日本一区视频| ...av二区三区久久精品| 亚洲综合丁香婷婷六月香| 亚洲成av人在线观看| 日韩电影在线观看网站| 久久精品国产精品亚洲精品| 国产乱码精品一区二区三区五月婷| 久久成人18免费观看| 成人av网在线| 欧美日本韩国一区二区三区视频 | proumb性欧美在线观看| 色欧美片视频在线观看 | 亚洲18色成人| 久久er精品视频| 成人91在线观看| 欧美高清视频一二三区| 久久久久久99久久久精品网站| 亚洲欧洲精品一区二区三区不卡 | 中文字幕永久在线不卡| 亚洲综合偷拍欧美一区色| 蜜臀av一区二区| 99久久精品国产一区二区三区| 欧美日本在线一区| 国产精品天天摸av网| 亚洲va国产天堂va久久en| 九九国产精品视频| 在线看日韩精品电影| 久久精品一区八戒影视| 亚洲国产精品精华液网站| 激情综合五月天| 欧美图片一区二区三区| 国产欧美精品日韩区二区麻豆天美| 亚洲愉拍自拍另类高清精品| 久久国产日韩欧美精品| 欧美中文字幕久久| 国产女人aaa级久久久级| 日韩av一级电影| 91福利精品视频| 亚洲欧洲日韩在线| 国产毛片精品视频| 欧美一级在线视频| 亚洲一区二区三区四区中文字幕| 国产jizzjizz一区二区| 日韩亚洲欧美成人一区| 一区二区不卡在线播放 | 精品第一国产综合精品aⅴ| 一区二区在线看| 成人性生交大片| 精品国产第一区二区三区观看体验| 一区二区理论电影在线观看| 国产成人午夜电影网| 日韩欧美国产不卡| 日本中文在线一区| 欧美日精品一区视频| 亚洲精品免费在线观看| 波多野结衣精品在线| 国产精品美女久久福利网站| 国产一区二区三区精品视频| 日韩欧美国产不卡| 麻豆91在线观看| 日韩欧美一级二级| 蜜臂av日日欢夜夜爽一区| 欧美精品v国产精品v日韩精品 | 在线免费亚洲电影|