PINN求解一维burgers方程
- 模型
- 搭建网络与训练
- 结果可视化
- 对比
- 实际结果
完整代码下载链接 PINN求解一维burgers方程
模型
搭建网络与训练
#########-------------- python求解一维burgers方程-------------------##################
# -*- coding: utf-8 -*-
import os
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"
import torch
import numpy as np
import torch.nn as nn
#设置进度
from tqdm import tqdm
def setup_seed(seed):
torch.manual_seed(seed)
torch.cuda.manual_seed_all(seed)
np.random.seed(seed)
torch.backends.cudnn.deterministic = True
# 设置随机数种子
setup_seed(40)
#定义基本架构
class PINN(nn.Module):
def __init__(self):
super().__init__()
self.layer=nn.Sequential(nn.Linear(2,20),nn.Tanh()
,nn.Linear(20,20),nn.Tanh()
,nn.Linear(20,20),nn.Tanh()
,nn.Linear(20,20),nn.Tanh()
,nn.Linear(20,20),nn.Tanh()
,nn.Linear(20,1))
def forward(self,t,x):
u=self.layer(torch.cat([t,x],dim=1))
return u
结果可视化
- 配点