- 1、本文档共23页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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++
您可能关注的文档
最近下载
- 人教版六年级下册数学期末测试卷附参考答案【综合卷】.docx
- 妇科围手术期患者血液管理 专家共识(2024 版)ppt模板.pptx VIP
- (人教2024版)化学九年级上册 跨学科实践:基于碳中和理念设计低碳行动方案 课件.pptx
- 人教版高中英语单词表(必修1-选修8)打印专用 .pdf
- 2024年注册土木工程师(水利水电)之专业知识题库含答案【新】.docx
- 三位数内(三位数+两位数)加减法口算题 9900道题 .pdf
- 优秀公诉人竞赛笔试试卷8+答案 .pdf
- 花齿铆钉项目投资可行性研究分析报告(2024-2030版).docx
- 2024年钢结构施工项目部春节《复工复产》方案 (汇编3份) .pdf VIP
- 交管12123学法减分复习题库500道含完整答案(历年真题).docx
文档评论(0)