之前写的玩意 想着给家里小孩做的 发从来顺便加了C++ CUDA 硬件加速
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]这是一个带正电荷的质点,你可以设置它的一些基本属性,包括: - 质量。它可以被设为未知量M
- 电荷量。当然也可以被设为未知量q/e/nq/ne/-q/-nq
- 速度标量。可以被设为未知量v。不过,当你不需要求解问题的时候,你可以设置为任意值。(见下方)
- 位置与速度方向。动动鼠标,拖动矢量箭头,即可在画板上绘制质点的位置与速度方向(当然,它也可以是一个静止的质点)
在这里,我设置了两个求解方法:
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]a-求解途径点/途径点矢量 [color=rgba(0, 0, 0, 0.9)]
[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)]
[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)]
[color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
[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硬件加速,那么求解速度将大大提升,比如求解存在两个未知量的情况:
[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)]
[color=rgba(0, 0, 0, 0.9)]附上一个四磁场未知量 CUDA加速结果 20秒出结果 [color=rgba(0, 0, 0, 0.9)]
[color=rgba(0, 0, 0, 0.9)]
电磁场仿真器.zip
(787.74 KB, 下载次数: 108)
|