首页/文章/ 详情

PINN求解一维波动方程,pytorch框架,附代码(二)

9月前浏览427

pytorch和tensorflow区别

以下tensorflow简称TF

  • pytorch具有更加易用的API,目前的TF 2.x + Keras也提供类似的易用的API
  • pytorch构建动态计算图,方便调试,TF以静态图为主,有利于部署和加速,目前也支持动态图,鼓励用语法糖转化为静态图获得性能提升
  • 部署方面,TF有完整的工具链,目前pytorch也增强了部署能力
  • 可视化工具,TF集成有TensorBoard,pytorch也支持用TensorBoard

总结:但随着版本迭代,两者正在相互借鉴优点,差距逐渐缩小。学习阶段可以采用pytorch,获得成熟可用的项目后可以转用tensorflow部署获得更高的性能。

正问题

正问题是已知一切条件预测结果,这是一个确定性的计算过程。

  • 已知方程形式,且已知      
 

初始条件:

 
 

边界条件:

 

解析解: 根据达朗贝尔公式可得:

 

   表达式如下:

 

损失函数表达式:

 
  • 网络架构
    • 输入层:空间坐标      
    • 隐藏层:3层,每层50个神经元
    • 输出层:物理场预测值      

值得一提的是: PINN本身并不提供解的存在唯一性证明。这个保证来自于应用数学领域的微分方程理论。在将一个问题交给PINN求解之前,我们通常依赖于已知的数学定理来确保问题是一个“适定性问题”,即:

  • 存在性:至少有一个解。
  • 唯一性:最多有一个解。
  • 稳定性:解连续地依赖于初始条件或边界条件。

例如将上述波动方程初始条件中的一阶导公式去掉,解就失去了唯一性,PINN就无法按预期工作。

原始采样点
损失函数变化
真实结果、预测结果、绝对误差

逆问题

逆问题是已知一些观测数据,但是不确定方程中的一些系数是多少,目标是利用这些观测数据来反推出方程中的系数。更进一步,有大量的观测数据,但是不知道方程的具体形式,利用已有数据来推出方程的表达式,因此逆问题可能不具备适定性,求解更困难。

  • 将上述正问题做两点改动,1.添加一些已知观测数据。2.参数c的数值未知。那么上述正问题就变成了一个逆问题。

此时损失函数表达式:

 

   表示的是    和参数    的集 合。

原始采样点
损失函数变化、参数    变化
真实结果、预测结果、绝对误差



来源:我的博士日记
理论
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-10-31
最近编辑:9月前
此生君子意逍遥
博士 签名征集中
获赞 62粉丝 130文章 153课程 0
点赞
收藏
作者推荐

通用的非局部GTN模型模型

参考文献:《Numerical implementation of a non-local GTN model for explicit FE simulation of ductile damage and fracture》GTN 一类“耦合型”损伤模型在软化阶段会产生应变/损伤高度局部化,解失去椭圆性,导致结果强依赖单元尺寸(“网格越细,带宽越窄、耗能趋零”)——这是做延性断裂数值预测时公认的顽疾作者沿 Tvergaard–Needleman 的思路,把孔隙率的演化率做非局部积分平均(积分型非局部),并在显式算法里给出一套能“真正规模不敏感”的数值实现:1,用权函数实现非局部孔隙率演化2,提出“交替推进”的非局部更新,更加稳健3,弹性区也更新非局部量4,邻接矩阵用“当前构形”逐步更新(精度更高,计算成本更大)通过这一套精心设计的非局部数值方案实现了全局力学响应随网格细化明显趋于网格无关,结果如下所示:局部和非局部不同网格密度下的当前孔洞体积分数分布示意图:可以看到不同网格密度下,nonlocal模型的孔隙度几乎保持不变几种不同网格密度下,局部和非局部模型的力位移曲线如下:非局部模型的不同网格密度下的断裂行为的一致性也显著高于局部模型。然而这类型模型通常计算的开销会显著高于局部模型,相对困难应用于工程规模的计算,不过学术研究价值很高。感兴趣的可以继续在此基础上进行扩展分析,如在当前模型中引入各向异性屈服,梯度效应,剪切损伤之类。这里显示按照作者思路编写代码的实现效果。初始两类不同网格密度下的拉伸试样:粗网格:细网格:相同拉伸变形下孔洞体积分数:可以看到两者几乎保持一致,对应的孔洞体积分数实现了网格无关响应,此外设置不同的特征尺寸也可以实现所希望得到的裂纹宽度如下,设置不同的特征尺寸得到不同的孔洞分布(同样的网格密度下)应力分布如下:来源:我的博士日记

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈