网站大量收购闲置独家精品文档,联系QQ:2885784924

麦克斯韦速率分布数值模拟.docx

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
麦克斯韦速率分布数值模拟

#includestdio.h#includemath.h#includestdlib.h#define L 6 //L*L*L个粒子#define dt 0.1 #define eff_r 0.3//有效半径(与粒子类型有关的常数)#define vmax 1//初始设置的速度最大值,是与温度、粒子质量有关的常数(因为温度和粒子质量决定系统总动能)#define WALL_R 20.0//设置一个球形边界,出边界的粒子将被送回球形区域 #define GENERATION 1000000//总演化的次数#define INTERVAL_SIZE 20//设置统计0~Vmax区间数目typedef struct particle//设置粒子的参数,包括坐标和速度矢量{ double x,y,z,vx,vy,vz;}PARTICLE;void initialize(PARTICLE* p_group,int size);//初始化粒子的随机位置、随机速度void collide(PARTICLE* a,PARTICLE* b);//模拟两个粒子的完全弹性碰撞(刚性小球模型)double cosof(PARTICLE* a,PARTICLE* b);//计算粒子a的速度与粒子a指向b的矢径void show(PARTICLE* a,int size);//显示粒子群的各个参数void check(PARTICLE* a,PARTICLE* b);//计算粒子的动量、机械能(调试用)double distance(PARTICLE* a,PARTICLE *b);//计算两个粒子的距离double speed(PARTICLE *a);//计算粒子速率int can_collide(PARTICLE *a,PARTICLE *b);//检查两个粒子是否发生碰撞void move(PARTICLE* p_group,int size);//随时间粒子的位置演化void hit_wall(PARTICLE* a);//将撞出边界的粒子设置到从另一边撞入该区域int can_hit_wall(PARTICLE* a);//检查是否粒子撞出边界void evolve(PARTICLE* p_group,int size);//随时间粒子的速度因为碰撞而继续演化void show_statistics(PARTICLE* p_group,int size,int* interval,int num);//打印速率分布int main(){ int div[INTERVAL_SIZE]={0},i; PARTICLE ptc[L*L*L]; printf(Initializing...\n); initialize(ptc,L); show(ptc,L); printf(Initialization has completed.\n); show_statistics(ptc,L,div,INTERVAL_SIZE); printf(Start.\nCalculating...\n); for (i=0;iGENERATION;i++) { move(ptc,L); evolve(ptc,L); } for (i=0;iINTERVAL_SIZE;i++) div[i]=0; show_statistics(ptc,L,div,INTERVAL_SIZE); printf(Done.\n); return 0;}void show(PARTICLE* p_group,int size){ int i,j,k,n=0; for (i=0;isize;i++) for (j=0;jsize;j++) for (k=0;ksize;k++) { printf([location:(%lf,%lf,%lf),velocity:(%lf,%lf,%lf)]\n, (p_group+n)-x,(p_group+n)-y,(p_group+n)-z,(p_group+n)-vx,(p_group+n)-vy,(p_group+n)-vz); n++; }}void initialize(PARTICLE* p_group,int size){ int i,j,k,n=0; for (i=0;isize;i++) for (j=0;jsize;j++

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档