开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 8621|回复: 101
收起左侧

[易源码分享] 匀强电磁场仿真 方便小孩教学

[复制链接]

结帖率:100% (47/47)
发表于 2024-2-14 23:21:54 | 显示全部楼层 |阅读模式   广东省东莞市
分享源码
界面截图: -
是否带模块: -
备注说明: -
之前写的玩意 想着给家里小孩做的 发从来顺便加了C++ CUDA 硬件加速
QQ截图20240214210944.png
[color=rgba(0, 0, 0, 0.9)]


[color=rgba(0, 0, 0, 0.9)]这是一个带正电荷的质点,你可以设置它的一些基本属性,包括:
  • 质量。它可以被设为未知量M
  • 电荷量。当然也可以被设为未知量q/e/nq/ne/-q/-nq
  • 速度标量。可以被设为未知量v。不过,当你不需要求解问题的时候,你可以设置为任意值。(见下方)
  • 位置与速度方向。动动鼠标,拖动矢量箭头,即可在画板上绘制质点的位置与速度方向(当然,它也可以是一个静止的质点)


在这里,我设置了两个求解方法:
  • 设置质点需要经过的位置,或者位置矢量,求解质点所需的m、q、v以及所处势场的强度E1、E2...  B1、B2...
  • 设置质点离开某个势场时的角度,同样,求解质点所需的参数以及势场的参数


[color=rgba(0, 0, 0, 0.9)] QQ截图20240214212139.png
[color=rgba(0, 0, 0, 0.9)]a-求解途径点/途径点矢量
[color=rgba(0, 0, 0, 0.9)] QQ截图20240214212106.png
[color=rgba(0, 0, 0, 0.9)]b-求解离场矢量
[color=rgba(0, 0, 0, 0.9)]

[color=rgba(0, 0, 0, 0.9)]回归仿真器,在这里,你可以添加四种形状的势场:
  • 矩形

  • 多边形(你可能会疑惑—矩形属于多边形,为什么要区分开?因为多边形的算法,会大大提升浮点数运算的复杂度)

  • 椭圆(暂时不支持旋转的椭圆,因为我数学不好,不知道怎么画图)

  • 标准圆(好吧,标准圆也是椭圆)




[color=rgba(0, 0, 0, 0.9)]那么效果图:
[color=rgba(0, 0, 0, 0.9)] QQ截图20240214211014.png
[color=rgba(0, 0, 0, 0.9)]如图所示,质点带正电,从左方进入E0电场,角度为16.74°,要求从-27.76°时出电场,求解质点的属性以及势场的强度。
[color=rgba(0, 0, 0, 0.9)]那么我们运行一下看看效果
[color=rgba(0, 0, 0, 0.9)] QQ截图20240214211045.png
[color=rgba(0, 0, 0, 0.9)] QQ截图20240214211627.png
[color=rgba(0, 0, 0, 0.9)] 240214 212010.gif
[color=rgba(0, 0, 0, 0.9)]运算选项:
  • 实时预览粒子的轨迹(逐点逐点预览,你可以看到粒子运动)
  • 实时快照粒子的轨迹图(逐帧逐帧预览:那个词叫啥来着epoch,轮数,你只可以看到粒子每一轮的轨迹)
  • 不预览轨迹,CPU多线程拉满运算
  • 不预览轨迹,GPU并发运算,使用CUDA RUNTIME硬件加速


    不同场景下,可供选择,比如我只是想预览下粒子的轨迹,可选a/b
[color=rgba(0, 0, 0, 0.9)]

[color=rgba(0, 0, 0, 0.9)]

[color=rgba(0, 0, 0, 0.9)]PS:
  • 常规下,CPU多线程运算可在一分钟内求解两个未知量
  • 如果需要求解3/4个未知量,CPU还是能够在有限时间内求解的
  • 多边形势场会极大影响求解性能。当然,预览轨迹除外(预览不谈性能
  • 在这里,势场多边形是怎么样的?不规则的凹包、凸包
  • 电场区域绘制完毕后,必须指定电场的矢量方向,即拖动鼠标选择方向角
  • 绘制多边形势场时,以鼠标右键结束绘制,此时将形成闭合多边形(如果存在交叉点,必然运算出错)
  • 如果你的电脑有显卡并且支持CUDA硬件加速,那么求解速度将大大提升,比如求解存在两个未知量的情况:

    • 易语言求解速度为1(优化后为1k)
    • C++ 多线程 CPU拉满情况下,速度为 5k
    • GPU 程序主要是单精度浮点数运算 根据单精度算力而异 配置稍微可以的  4个未知量一分钟内求解出结果
    • (以上速度仅针对求解,实时预览并不吃性能)
    • 所有参数都可以自己调整步长、上限
    • 磁场磁通量未知量运算得比较慢

[color=rgba(0, 0, 0, 0.9)]

[color=rgba(0, 0, 0, 0.9)]另外,CUDA版本没有易语言调用,不过可以生成代码,自己贴在上面就可以跑结果,然后把生成的坐标点导入软件,自己摸索一下

源码包括:易语言版本,C++CPU多线程加速DLL,CUDA RUNTIME部分



[color=rgba(0, 0, 0, 0.9)] 240214 225122.gif
[color=rgba(0, 0, 0, 0.9)]附上一个四磁场未知量 CUDA加速结果  20秒出结果
[color=rgba(0, 0, 0, 0.9)] 288FE18086BE4384C446554CFFA07675.png
[color=rgba(0, 0, 0, 0.9)] 电磁场仿真器.zip (787.74 KB, 下载次数: 98)

点评

师傅,你是做什么工作的啊? 现在的小孩都玩这么高级的游戏吗.   广东省珠海市  发表于 2024-4-10 09:53
等等,现在小孩子都玩这么难了嘛...   湖南省长沙市  发表于 2024-4-8 10:35
师傅,你是做什么工作的啊?   贵州省贵阳市  发表于 2024-3-28 23:26
矩形坐标初始化为左上角和右下角 x_min < x < x_max && y_min < y < y_max   广东省东莞市  发表于 2024-2-15 02:37
有些地方可以剪枝,不过算法已经够了,基本上两个未知量1秒内解决,不用硬件加速   广东省东莞市  发表于 2024-2-14 23:30

评分

参与人数 37好评 +10 精币 +50 收起 理由
huangdi9569 + 1 感谢分享,很给力!~
booms + 1 感谢分享,很给力!~
hackjoe + 1 感谢分享,很给力!~
huangdi956 + 1 感谢分享,很给力!~
远赴 + 1 + 3 新技能已get√
文西哥 + 1 感谢分享,很给力!~
TTVTT + 1 感谢分享,很给力!~
Lishi8 + 1 + 2 感谢发布原创作品,精易因你更精彩!
金少yy + 1 感谢分享,很给力!~
pj小黑屋 + 1 感谢分享,很给力!~
chuanqibuding + 1 开源精神必须支持~
风雨3137 + 1 感谢分享,很给力!~
gytxtx + 1 + 2 WDF
ewake + 1 感谢分享,很给力!~
xiaoyu1986 + 1 师傅,你是做什么工作的啊?
※逍遥游※ + 1 感谢分享,很给力!~
keyi5566 + 1 感谢分享,很给力!~
t176 + 1 感谢分享,很给力!~
望尘莫及 + 1 感谢分享,很给力!~
qweipuq + 1 感谢分享,很给力!~
qiyuer + 1 感谢分享,很给力!~
聿聿 + 1 感谢分享,很给力!~
Zźh926 + 1 感谢分享,很给力!~
ican8 + 1 感谢分享,很给力!~
YzZA + 1 感谢分享,很给力!~
无尘666 + 1 感谢分享,很给力!~
1828902364 + 1 感谢分享,很给力!~
3266167 + 1 感谢分享,很给力!~
XXGL2005 + 1 感谢分享,很给力!~
wa690602724 + 1 感谢分享,很给力!~
易语言资源网 + 1 + 3 开源精神必须支持~
光影魔术 + 1 + 1 支持开源~!感谢分享
qq1056123185 + 1 + 2 算法牛逼,膜拜大佬~
猪滴寳貝哝 + 1 + 2 很给力,此类设计仿真很棒!
airaz + 1 + 3 YYDS~!
財財 + 1 感谢分享,很给力!~
maozaiba + 1 + 5 难得见到用易干专业的事

查看全部评分


本帖被以下淘专辑推荐:

  • · 鱼木|主题: 1534, 订阅: 150
结帖率:100% (8/8)

签到天数: 18 天

发表于 昨天 09:52 | 显示全部楼层   辽宁省大连市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (4/4)

签到天数: 19 天

发表于 2024-7-9 08:48:37 | 显示全部楼层   河北省保定市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2024-7-8 15:13:25 | 显示全部楼层   山东省济宁市
        感谢分享,很给力!~
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 18 天

发表于 2024-7-8 13:14:58 | 显示全部楼层   辽宁省大连市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 18 天

发表于 2024-7-8 13:14:44 | 显示全部楼层   辽宁省大连市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 18 天

发表于 2024-7-8 13:14:17 | 显示全部楼层   辽宁省大连市
感谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 16 天

发表于 2024-7-6 06:30:50 | 显示全部楼层   江西省上饶市
这个感觉真正用到了实处。
回复 支持 反对

使用道具 举报

结帖率:95% (21/22)

签到天数: 2 天

发表于 2024-6-25 21:25:41 | 显示全部楼层   广东省深圳市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2024-6-25 13:45:32 | 显示全部楼层   浙江省台州市
高端玩具
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)

签到天数: 18 天

发表于 2024-6-24 07:52:20 | 显示全部楼层   辽宁省大连市
感谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表