首页/文章/ 详情

PINN创新点直接抄!发Nature都在用这招!

3月前浏览420
要说最好出论文的方向,PINN一定榜上有名,但是想往这方发文章,完全无从下手?那你一定不要错过这184个拿来即用的创新点和源码!

这些创新思路,是笔者读完了近几年Nature、Science、ICLR、NeurIPS、ICML、中科院一区等顶会顶刊上1000+篇文章总结而来。主要涉及3大方向:基础理论的创新(像是自适应PINN、采样与离散化);训练范式的革新(比如分阶段训练、动态损失加权……);与其他技术融合,构建更通用、更智能的范式(比如+贝叶斯、强化学习、Transformer、大模型、GNN等前沿技术)。

所有创新点的文章和源码,都已经按照分类打包好了,需要的伙伴可以自取。此外,若有伙伴,担心基础差,也可以先从给大家准备的这66篇入门必读文章和有中文注释的代码库入手。

PINN+强化学习

Make Your AUV Adaptive: An Environment-Aware Reinforcement Learning Framework For Underwater Tasks

内容:针对传统强化学习(RL)难以让自主水下航行器(AUV)适配复杂多变海洋流场的问题,提出一种环境感知强化学习框架。该框架借助基于物理信息神经网络(PINN)的环境感知模块捕捉水下流场数据并融入状态空间,实现实时环境适配;同时增设大语言模型(LLM)迭代优化模块,结合环境条件与训练结果联合优化 AUV 控制策略和本体结构。研究搭建多 AUV 数据收集、目标追踪两类水下任务仿真场景,对比传统强化学习方法,所提框架在累计奖励、数据传输速率、能耗控制、轨迹追踪成功率等指标上均表现更优,还通过三代 AUV 外形迭代(胶囊形、锥形、水滴形)进一步降低水阻、提升整体鲁棒性与环境适应能力。

图片


PINN+GNN

PHYMPGN: PHYSICS-ENCODED MESSAGE PASSING  GRAPH NETWORK FOR SPATIOTEMPORAL PDE SYS TEMS iclr25

内容:针对现有数据驱动神经网络模型依赖海量训练数据、外推与泛化能力弱、在不规则网格、复杂边界条件等场景下物理预测精度和可靠性不足的痛点,提出了一种融合物理先验的消息传递图网络(PhyMPGN)。该模型将物理规则嵌入图网络架构,依托消息传递机制适配各类空间离散形式与复杂几何结构,有效降低对大规模标注数据的依赖;大量实验表明,相较于传统数值方法和主流深度学习模型,PhyMPGN 在时空动力学预测任务中兼具更快的推理速度、更强的物理一致性、优异的外推性能与鲁棒性,能够稳定应对不规则网格、复杂边界等现实复杂工况,为基于神经网络求解时空偏微分方程提供了高效且贴合物理规律的新方案。

图片


自适应PINN

Adaptive Interface-PINNs (AdaI-PINNs): An Efficient Physics-informed Neural Networks Framework for Interface Problems

内容:这篇论文提出了自适应界面物理信息神经网络(AdaI-PINNs),用于高效求解带有间断系数与界面跳变的界面问题,该方法是对前代 I-PINNs 的改进:它摒弃了 I-PINNs 需要人为为不同子域预设激活函数的做法,仅让各子域神经网络的激活函数斜率作为可训练参数,与网络权重、偏置同步优化,实现了流程全自动化;研究通过一维、二维、三维椭圆界面基准问题开展大量对比实验,结果表明 AdaI-PINNs 在保持甚至提升求解精度的同时,计算成本相比 I-PINNs 降低 2 至 6 倍,收敛速度也显著更快,同时论文还测试了多种主流激活函数在该框架下的表现,验证了方法在多界面、复杂三维场景中的有效性与通用性,为求解各类工程界面偏微分方程问题提供了更高效、易用的 PINN 方案。

图片


优化与训练策略

RoPINN: Region Optimized  Physics-Informed Neural Networks

内容:论文提出区域优化物理信息神经网络(RoPINN),针对传统 PINN 仅在离散散点上优化、与偏微分方程连续求解域不匹配,易产生泛化误差且难以适配高阶约束的问题,创新性地提出区域优化训练新范式,将 PINN 的优化范围从孤立采样点拓展至对应连续邻域;该方法依托蒙特卡洛采样实现落地,并设计信赖域校准策略动态调整采样区域,平衡梯度估计误差与泛化能力,全程无需额外反向传播与梯度计算。

图片

喜欢就点个关注呗


来源:有限元先生
化学通用海洋理论控制DAP
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-06-16
最近编辑:3月前
外太空土豆儿
博士 我们穷极一生,究竟在追寻什么?
获赞 46粉丝 48文章 123课程 0
点赞
收藏
作者推荐

用BAT批处理文件高效调用Abaqus —— 从入门到Fortran子程序集成

🧑‍💻作者按:你是否还在对着Abaqus的GUI一遍遍地点"SubmitJob"?参数改了又改,任务提交了又提交,一不小心还覆盖了上一次的结果……今天这篇文章,就是专门为你而写的。一、为什么要用BAT文件?先聊聊GUI的"痛"  做有限元仿真的朋友,日常工作大概是这样的:打开CAE→改参数→提交任务→等结果→再改参数→再提交……  当你只有1个工况,这当然没问题。但现实往往是:10组网格密度×5个载荷工况×3种材料参数=150个任务。手动点击就显得耗时费力。BAT批处理文件的核心优势:✅自动化:写好脚本,双击运行,人可以去睡觉✅可复用:换个路径、改个参数名,下次照用✅批量提交:for循环一写,几十个任务排队跑✅减少人为失误:参数固定在脚本里,不怕手滑点错二、BAT基础:从零开始调用INP文件2.1Abaqus命令行的基本结构  Abaqus本质上是一个可以通过命令行驱动的程序。打开Windows的CMD,最基本的调用格式是:abaqusjob=任务名input=inp文件名cpus=核数interactive2.2各参数含义详解参数说明job=任务名指定作业名称,输出的.odb、.dat、.msg等文件都以此命名input=文件名指定输入文件(可不加.inp后缀,Abaqus会自动识别)cpus=核数并行计算使用的CPU核心数,根据机器配置设置interactive关键参数——让命令行窗口等待任务完成再执行下一条指令;不加此参数则任务在后台运行,脚本会立刻继续往下执行ask_delete=OFF若同名.lck文件存在时,不询问直接覆盖(批量运行必备,避免弹窗卡住脚本)memory=90%限制Abaqus使用的内存比例,多任务并行时避免撑爆内存🚨避坑提示:interactive这个参数新手最容易忘。如果你在BAT里提交了多个任务却不加它,所有任务会同时启动,资源争抢会让每个任务都跑得奇慢无比。2.3一个完整的BAT文件示例  新建一个文本文件,将后缀改为.bat,写入以下内容:@echooffREM============================================================REMAbaqus基础调用脚本REM功能:切换到工作目录,提交单个INP任务REM============================================================REM【第一步】设置工作目录(INP文件所在的文件夹路径)cd/d"D:\Simulation\MyProject"REM【第二步】提交任务REMjob=作业名(输出文件前缀)REMinput=INP文件名(无需加.inp后缀)REMcpus=使用核心数,按需调整REMinteractive=等待任务完成后再继续REMask_delete=不询问直接覆盖旧的lock文件abaqusjob=beam_staticinput=beam_staticcpus=4interactiveask_delete=OFFREM【第三步】任务结束后暂停,方便查看命令行输出信息echo.echo==========任务已完成==========pause几点说明:@echooff:关闭命令回显,让输出更整洁cd/d:/d参数允许同时切换盘符和路径,缺了/d跨盘切换会失败REM:注释符,不影响执行💡经验之谈:强烈建议工作目录和文件路径不要包含中文和空格。虽然用引号包裹路径可以处理空格,但Abaqus在某些版本里对含中文的路径还是会报错。养成用英文命名的好习惯,省心!三、进阶:在BAT中调用Fortran子程序3.1为什么需要用户子程序?  标准的Abaqus材料库覆盖不了所有需求。以下场景你就需要自己写子程序:UMAT/VUMAT:自定义本构模型(超弹性、损伤、蠕变……)DLOAD/VDLOAD:施加随空间或时间变化的分布载荷DISP:定义复杂的位移边界条件USDFLD:通过场变量控制材料属性演化  子程序文件通常是一个.for(Fortran77格式)或.f90文件。3.2调用子程序的语法只需在原来的命令里加上user=参数:abaqusjob=任务名input=inp文件名user=子程序文件名cpus=核数interactive例如:abaqusjob=umat_testinput=umat_testuser=UMAT_hyperelasticcpus=4interactive3.3⚠️前提条件:编译环境配置  这是调用子程序最容易踩坑的地方,必须提前说清楚。  调用用户子程序时,Abaqus需要在本地将.for文件编译成可执行代码。这要求你的电脑上必须安装且正确配置以下软件:InteloneAPIHPCToolkit(包含IntelFortran编译器ifort)MicrosoftVisualStudio(提供C++编译环境,IntelFortran依赖它)Abaqus与编译器的版本需匹配(具体对应关系见Abaqus官方DSY兼容性矩阵)🚨避坑提示:版本不匹配是新手最大的噩梦。例如Abaqus2021推荐搭配VS2019+IntelParallelStudioXE2020。装错版本,子程序怎么都跑不起来。建议在Abaqus官网查询对应版本的"SystemRequirements"文档再动手安装。  验证编译环境是否正常,可以在CMD里运行:abaqusverify-user_std  如果输出PASS,说明标准子程序编译链路正常。3.4完整BAT示例(含子程序调用)@echooffREM============================================================REMAbaqus子程序调用脚本REM功能:提交带UMAT子程序的Abaqus任务REM============================================================REM【设置工作目录】INP文件和FOR文件需放在同一目录下cd/d"D:\Simulation\UMAT_Project"REM【提交带子程序的任务】REMuser=Fortran子程序文件名(无需加.for后缀)abaqusjob=umat_test^input=umat_test^user=UMAT_hyperelastic^cpus=4^interactive^ask_delete=OFFecho.echo==========子程序任务已完成==========pause💡说明:^是BAT中的换行续写符,让长命令更易读,实际执行效果等同于写在一行。3.5常见报错及解决方案报错信息原因解决方案ifortisnotrecognizedIntelFortran编译器未加入环境变量重新安装InteloneAPI并勾选"修改环境变量",或手动在系统PATH中添加ifort路径Abaqus/Analysisexitedwitherrors+编译失败VS与IntelFortran版本不兼容查DSY兼容矩阵,换匹配的版本组合路径报错/找不到子程序文件路径含中文或空格将工作目录改为纯英文无空格路径Toomanyerrorsinbatch子程序代码本身有语法错误检查.dat文件末尾的编译日志,定位Fortran语法问题💡排查技巧:任务失败后,第一时间打开与任务同名的.dat文件(纯文本),拉到最底部,报错信息都在那里。比盯着CMD窗口的滚动输出靠谱多了。四、实用技巧补充4.1批量提交多个INP任务(for循环大法)  假设你有case01.inp、case02.inp……case10.inp共10个文件:@echooffcd/d"D:\Simulation\BatchJob"REM用for循环遍历所有INP文件并依次提交for%%iin(case01case02case03case04case05^case06case07case08case09case10)do(echo.echo>>>正在提交任务:%%iabaqusjob=%%iinput=%%icpus=4interactiveask_delete=OFFecho>>>任务%%i完成)echo.echo==========全部任务已完成==========pause或者更简洁地,用通配符遍历当前目录下所有INP文件:for%%fin(*.inp)do(abaqusjob=%%~nfinput=%%~nfcpus=4interactiveask_delete=OFF)💡%%~nf的含义:%%f是完整文件名(含扩展名),%%~nf只取文件名主体(去掉.inp)。4.2任务完成后自动关机  跑大型模型经常需要隔夜计算。加上这行,任务跑完自动关机,第二天来直接看结果:REM所有任务完成后,延迟60秒自动关机(给你反悔的机会)shutdown/s/t60/c"Abaqus任务已完成,60秒后关机"  如果想取消关机:在60秒内打开CMD运行shutdown/a。4.3日志输出建议  在BAT里加入时间戳日志,方便事后追溯:REM将任务开始/结束时间记录到日志文件echo[%date%%time%]开始任务:beam_static>>run_log.txtabaqusjob=beam_staticinput=beam_staticcpus=4interactiveask_delete=OFFecho[%date%%time%]完成任务:beam_static>>run_log.txt  这样run_log.txt里会记录每个任务的实际运行时间,后续分析效率时很有用。五、总结  回顾一下本文的核心内容:🔧基础调用:abaqusjob=input=cpus=interactive是最核心的四个参数,ask_delete=OFF是批量运行的必备选项📁工作目录:用cd/d切换,路径全程用英文无空格⚙️子程序调用:加上user=参数,但前提是配好IntelFortran+VS编译环境🔄批量提交:for循环解放双手,%%~nf取文件名主体😴自动关机:shutdown/s/t60安心睡觉  BAT脚本看似简单,但真正用好了,能把你从大量重复性操作中解放出来,让你把时间花在更有价值的事情上——比如认真分析结果,而不是对着GUI不停地点鼠标。来源:有限元先生

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