[toutiao wname_toutiao="科大云炬" qrimage_toutiao="https://imgurl.src.yunjunet.cn/imgs/2022/02/172ea9cd4c4c7ed6.png" blogurl_toutiao="https://www.toutiao.com/c/user/token/MS4wLjABAAAAjYLssXnHT-b2abBZvDNgIreVYJ_sejrj62vt4fGUQnVtyeKXmuVdnu3BcRAPjd6w/?source=list&log_from=e75827211a531_1644758621387" keyword_toutiao="验证码" key_toutiao="toutiao888"]hahaha[/ghide_toutiao]2020年疫情期间ZOOM录制的粒子模拟线上课程
目录
程序变量说明
nss:两种成分的电子 np:粒子数目 idimv:每个电子有两个坐标,三个速度 nx,ny:分别是x,y方向的网格点 nloop:计算的总步数 dt:时间步长 part(idimv,np,nss):所有电子坐标和速度的数组 dns(nss):两种电子成分的权重 part(idimv,np):所有离子坐标和速度的数组 vbe(idimp),vte(idimp):电子初始的平均速度和热速度 vbi(idimp),vti(idimp):离子初始的平均速度和热速度 fx(nxv,ny),fy(nxv,ny):网格上电场的x,y分量(实空间) fxc(nxv,ny),fyc(nxv,ny):网格上电场的x,y分量(复空间) qs(nxv,ny,nss):两种电子成分在网格上的电荷 q(nxv,ny):网格上的电荷密度(实空间) qc(nxv,ny):网格上的电荷密度(复空间) we:通过电势算的电场能量 eke:电子动能 eki:粒子动能 wt:系统中的总能量 fx:电场在x方向的分量 fy:电场在y方向的分量 wx:x方向上的电场能量 wy:y方向上的电场能量
验证数值不稳定性
网格自加热效应验证
束流不稳定性结果(附MATLAB代码)
clc;clear all;load D:\Fortran\shuliu\ee.dat; loop=15;Cxy=256;qq=zeros(Cxy,Cxy,loop); ex=zeros(Cxy,Cxy,loop);ey=zeros(Cxy,Cxy,loop); for i=1:loop for j=1:Cxy for k=1:Cxy temp=Cxy*(j-1)+k+Cxy*Cxy*(i-1);qq(j,k,i)=ee(temp,3); ex(j,k,i)=ee(temp,4);ey(j,k,i)=ee(temp,5); end end end x=1:Cxy;y=1:Cxy;[X,Y]=meshgrid(x,y) figure(1) for i=1:loop subplot(5,3,i);contour(X,Y,qq(:,:,i)) end figure(2) for i=1:loop subplot(5,3,i);contour(X,Y,ex(:,:,i)) end figure(3) for i=1:loop subplot(5,3,i);contour(X,Y,ey(:,:,i)) end
附:从粒子到网格的粒子云分室法(附代码)
例子:网格50*50,网格距为1,每个网格里有均匀分布的100个粒子,粒子电量为1,使用粒子云分室法计算格点的电荷量。
结果图
MATLAB程序
function [q]=electron_density()
q=zeros(51,51);
for i=1:50
for j=1:50
for m=1:10
for n=1:10
q(i,j)=q(i,j)+(11-m)*(11-n)/(11*11);
q(i+1,j)=q(i+1,j)+m*(11-n)/(11*11);
q(i,j+1)=q(i,j+1)+(11-m)*n/(11*11);
q(i+1,j+1)=q(i+1,j+1)+m*n/(11*11);
end
end
end
end
raw=zeros(1,51);column=zeros(52,1)
q_raw=[q;raw];q_column=[q_raw column]
figure(1);pcolor(q_column);colorbar;
end
教学视频请自行获取验证码下载^_^