一维传热计算器
三水合番2025/02/04原创 研究了个寂寞 IP:黑龙江

文件如下:

attachment icon一维传热计算器.html59.38KBHTML7次下载

使用时,用浏览器打开(我用的是chrome 版本 132.0.6834.160)。这个计算器用纯前端网页实现,打开后显示为一个网页,但是它并不和网络通信,所有计算都在本地执行。应该可以跨平台,比如电脑,手机,平板上都可以运行。


打开后的界面如下:

界面.png
默认参数定义的系统包含三段柱体,各柱体的形状在“柱体段参数”栏中设置。这个计算器只考虑热量垂直柱体截面传播,所以叫一维计算器。不考虑两个不同截面积的柱体的连接导致的额外热阻。换句话说,可以认为它假设了材料沿截面方向的热导率是无穷的。

柱体的导热率在“全局参数”栏中设置。同时还可以设置发热功率,这个发热功率按体积“平均分布”在所有柱体中。

还需要设置边界条件,边界条件的定义如上图所示。除了设置的边界以外,其他地方对外界都是绝热的。


默认的选项是进行稳态计算,结果如下图:

温度图.png


还可以改用瞬态计算,结果如下视频:

默认参数.mp4 点击下载


通过调整参数,可以计算各种情况,比如下面这个是计算“冬季土壤温度”的参数(仅供展示,具体数值并不准确)。总时间是180天,步长是半天。

地温 参数.png

结果如下,相当于-20度冻180天,会冻到1.5m深处:

地温 图片.png


或者计算火箭隔热层的效果:

火箭隔热层.mp4 点击下载


这个计算器完全使用ai编写,用的模型是openai刚公开的o3-mini-high。我只负责提需求,总共应该进行了三四十轮对话,耗时一天。不过大部分对话似乎都是“这个按钮改个颜色”,“那里加一行字”这种无关紧要的东西,涉及核心算法的对话可能只有五六次。

这个计算器的html文件一共有1700多行,是我这辈子写过的行数最多的一份代码。但我对这些代码几乎是一窍不通的:既不懂html,css,JavaScript这些编程语言;又不懂逐次超松弛迭代法,隐式欧拉法这些数值方法。现在的ai实在是太厉害了。


[修改于 4天14时前 - 2025/02/04 19:43:44]

来自:数理化 / 物理计算机科学 / 软件综合严肃内容:专著/论述
3
2
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
三水合番 作者
4天14时前 IP:黑龙江
941889

如果未来有更新,会放在这一层


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
古法造轮
4天8时前 IP:中国
941903

这个厉害了,关于核心算法的提示词给我们吗,我也想玩玩。之前弄那个水浴槽的时候让 DeepSeek 估算了下大概的散热功率,但是根据我的提示词只能算出比较笼统的总功率,我想算一下从顶面出去的热量功率大概会有多少,不知道咋回事,咋调整都不太对头的样子


引用
评论
2
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
三水合番作者
3天17时前 IP:黑龙江
941920
引用古法造轮发表于2楼的内容
这个厉害了,关于核心算法的提示词给我们吗,我也想玩玩。之前弄那个水浴槽的时候让 DeepSeek 估

核心算法其实都是ai自己挑的,我只是负责提需求和跟它反映问题1f602

下面是涉及到修改核心算法的prompt,感觉也没啥特别的。


最开始的两个prompt,得到最基础的计算器,并要求ai用数值方法,这个只能进行稳态计算

计算一个系统的最大温升。这个系统包含一个柱状物体,柱体的截面积是20.5*14.0mm2。长度是16mm。导热率是5W/mK。整个柱体内部会均匀发热,发热的总功率是7W。热量从柱体的一个端面导出,柱体其他表面是绝热的。
之后用纯前端网页的形式写一个计算器,输入量是除温升以外的其他值,输出值为温升。

重新推导公式,并修改计算器。改为用数值方法计算温度分布,而不是以解析公式的方法计算


然后发现结果有错误, 向ai反映之后,它把数值方法从 Gauss–Seidel 迭代,换成了超松弛(SOR)方法,问题就解决了。

这个计算器似乎存在某种错误,节点数量会显著影响结果,而且增大节点数量反而会使结果更不准确。比如默认参数下,解析解是39度,采用101个节点,计算器输出35度,而采用1001个节点,计算器输出0.8度。请查找并修复问题


之后是添加瞬态计算的功能。这里是开了一个新的对话,把新的需求和调好的代码一起发给它。

你的任务是修改一个传热计算器。这个计算器用纯前端网页的形式实现,其代码在最后给出。你需要先分析这个计算器的代码,然后思考如何对其进行修改。
它现在是一维稳态传热计算器。我希望将其改为能支持瞬态计算,你需要推导计算所需的公式和代码,并且修改gui。修改的内容包括:

  1. 在全局计算和分段计算的选项之前添加文字“空间类型”,并将选项文字改为“全局参数”和“分段参数”

  2. 在这一行之下,添加新的选项“时间类型: 稳态计算 瞬态计算”

  3. 在全局参数中,添加新的输入参数,包括:总时间,时间步长,体积比热容,初始温度。在选择瞬态计算时显示,稳态计算时隐藏。其中,体积比热容和初始温度仅在选项为“全局参数”时显示,若选择“分段参数”,则在全局参数栏内将它们隐藏。

  4. 柱体段参数中,添加体积比热容和初始温度。在选择瞬态计算分段参数时显示,选择稳态计算或全局参数时隐藏。

  5. 若选择瞬态计算,则在“计算温度分布”按钮的下方,添加选择显示时间的功能,用来选择显示哪一个时刻的温度分布。

  6. 若选择瞬态计算,则导出csv应该导出所有时刻的温度分布,其格式包括三列,分别是时间,位置,温度


然后是跟ai反映算法不收敛的问题

瞬态算法的收敛性不佳。默认参数是不收敛的。会在位置为0处出现幅度迅速增大的高频振荡,直到变成nan。使用2的比热容,将时间步长大幅度缩短到0.00001s,全局节点数量大幅度缩减到101个时,能收敛,输出看起来正确的结果。请使用收敛性更好的算法。

对此它的回复是

瞬态算法部分不再采用原来的显式欧拉方法,而是采用隐式欧拉方法。该方法每个时间步构造基于有限体积离散的三对角系统,然后利用 Thomas 算法求解,从而具有无条件稳定性,可以有效抑制数值中高频振荡问题。

再就没有和核心算法有关的prompt了


引用
评论(1)
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的