python解隐式方程_用隐式方法求解偏微分方程组

我有一个偏微分方程组(PDE),特别是应用于传热和对流的扩散-平流-反应方程,我用有限差分法求解。

在我的模拟环境中,我有很多不同的部分,比如管道,储能器,热交换器等等。。。根据零件的不同,每个零件的PDE可以是1D(在大多数情况下)或2D(约占零件的5%)或3D(很少)。由于这些不同的形状,为整个系统构造一个三对角(或五角、间隔-…)太复杂了。

这个问题发表在SO上而不是计算科学上,因为它是关于如何使用pde的求解算法的,而不是关于pde的求解方法。在

因此,目前每个部件都有一个diff函数,它返回给定输入温度的微分。由于材料特性等与温度(和流量)有关,因此PDE是非线性的,但由于系数滞后于系数而被认为是线性的(在每个步骤使用起始温度计算温度和流量相关值,对于在每次迭代中重新计算它们的隐式方法)。diff函数返回的微分的形状与零件的值数组形状相同,例如,对于具有10个网格点的一维管道,这将导致形状(10, )的差分数组。扩散系数和其他系数被认为是diff函数的内部参数,对解算器不可用。因此解算器将只知道差分、当前零件温度和步长。

有没有什么方法可以用python一次只执行一个步骤,使用一个专门用于求解pde的算法来求解这些pde?(以及优选为scipy/numpy的一部分并且更优选地已经由numba支持的算法。)

到目前为止我考虑过的事情:scipy.integrate:仅对ode可行,而PDE可能不在其中。对吗?至少我不能用它来做PDE的好结果。除此之外,scipy.integrate并不是只用于计算一个步骤的。在

np.linalg.solve:似乎是最好的方法,如果你有三对角矩阵和线性方程组。但由于

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值