创建或修改目录:/www/wwwroot/104.219.215.234/data 失败!
【IDBD-195】しみけんの新人ぶった斬りFUCK 6本番 PINN求解瞬态热传导问题 - 日本父女乱伦
日本父女乱伦

【IDBD-195】しみけんの新人ぶった斬りFUCK 6本番 PINN求解瞬态热传导问题
栏目分类
热点资讯
欧美整片

你的位置:日本父女乱伦 > 欧美整片 >

【IDBD-195】しみけんの新人ぶった斬りFUCK 6本番 PINN求解瞬态热传导问题

发布日期:2024-08-24 08:53    点击次数:121

【IDBD-195】しみけんの新人ぶった斬りFUCK 6本番 PINN求解瞬态热传导问题

诳骗DeepXDE求解二维瞬态热传导方程【IDBD-195】しみけんの新人ぶった斬りFUCK 6本番。

DeepXDE是一个较为完善的PINN库,其封装了宽敞PINN建模时所需要编写的代码,不错使用面前流行的AI框架(如pytorch、TensorFlow、PaddlePaddle、Jax等),编写的代码比拟精真金不怕火易懂。

案例忖度效果如图所示。

图片【IDBD-195】しみけんの新人ぶった斬りFUCK 6本番

1 问题描绘

二维瞬态传热方程:

案例中, 为热扩散统共,

忖度模子及规模条款如下图所示【IDBD-195】しみけんの新人ぶった斬りFUCK 6本番。

图片

忖度区域为正方形,边长为2 m,各规模条款分裂为:

左侧规模: 右侧规模:底部规模:顶部规模:

开动条款:

2 模子考研2.1 导入必要的库
import deepxde as ddeimport matplotlib.pyplot as pltimport numpy as npfrom deepxde.backend import torch
2.2 指定忖度区域
geom = dde.geometry.Rectangle([-1,-1],[1,1])timedomain = dde.geometry.TimeDomain(0,10)geomtime = dde.geometry.GeometryXTime(geom,timedomain)
2.3 界说PDE方程
alpha = 0.5def pde(x,y):    dy_t = dde.grad.jacobian(y,x,i=0,j=2)    dy_xx = dde.grad.hessian(y,x,i=0,j=0)    dy_yy = dde.grad.hessian(y,x,i=1,j=1)    return dy_t - alpha * (dy_xx + dy_yy)

函数pde的参数中,第一个参数x是一个具有三个重量的向量,第一个重量x[:,0]为x坐标,第二个重量x[:,1]为y坐标,第三个重量x[:,2]为t坐标。参数y为鸠集输出。

2.4 界说规模

忖度域中包含4个几何规模。案例中,上侧与下侧为Neumann规模,左侧与右侧为dIrichlet规模,这里径直为其赋值。

# 上规模,y=1def boundary_t(x, on_boundary):    return on_boundary and np.isclose(x[1], 1)# 下规模,y=-1def boundary_b(x, on_boundary):    return on_boundary and np.isclose(x[1], -1)# 左规模,x=-1def boundary_l(x, on_boundary):    return on_boundary and np.isclose(x[0], -1)# 右规模,x=1def boundary_r(x, on_boundary):    return on_boundary and np.isclose(x[0], 1)bc_t = dde.icbc.NeumannBC(geomtime, lambda x:0, boundary_t)bc_b = dde.icbc.NeumannBC(geomtime, lambda x:20, boundary_b)bc_l = dde.icbc.DirichletBC(geomtime, lambda x:30, boundary_l)bc_r = dde.icbc.DirichletBC(geomtime, lambda x:50, boundary_r)
2.6 界说开动条款

开动值指定为0。

def init_func(x):    return 0ic = dde.icbc.IC(geomtime,init_func,lambda _,on_initial:on_initial,)
2.7 构造鸠集

这里吸收6层全邻接神经鸠集:输入层3个神经元;4个掩饰层,每层50个神经元;输出层1个神经元。激活函数使用tanh,开动化吸收Glorot uniform。

data = dde.data.TimePDE(    geomtime,    pde,    [bc_l,bc_r,bc_b,bc_t,ic],    num_domain=8000,       num_boundary=320,       num_initial=800,        num_test=8000,     )layer_size = [3] + [50] * 4 + [1]activation = "tanh"initializer = "Glorot uniform"net = dde.nn.FNN(layer_size, activation, initializer)model = dde.Model(data, net)model.compile("adam", lr=0.001)
2.8 模子考研

吸收底下的代码考研10000步,并败露圆寂函数残差。考研轮次不错适应加多,比如不错考研30000步以进一步缩短圆寂。

losshistory,train_state = model.train(iterations=10000,display_every=1000)dde.saveplot(losshistory, train_state, issave=True, isplot=True)
3 忖度效果

诳骗底下代码输出温度随技艺变化动画。

import numpy as npfrom matplotlib.animation import FuncAnimationimport matplotlib as mplimport os# x,y目的冲破200个节点x1 = np.linspace(-1,1,num=200,endpoint=True).flatten()y1 = np.linspace(-1,1,num=200,endpoint=True).flatten()xx1,yy1 = np.meshgrid(x1,y1)x = xx1.flatten()y = yy1.flatten()# 技艺上取20个技艺步,技艺步长1/20=0.05sNt = 20dt = 1/Ntfor n in range(0, Nt+1):    t = n * dt    t_list = t*np.ones((len(x), 1))    x_pred = np.concatenate([x[:, None], y[:, None], t_list], axis=1)    y_pred = model.predict(x_pred)    y_p = y_pred.flatten()    data_n = np.concatenate([x_pred, y_pred], axis=1)    if n == 0:        data = data_n[:, :, None]    else:        data = np.concatenate([data, data_n[:, :, None]], axis=2)print(x_pred.shape, y_pred.shape)print(data.shape, data_n.shape)# 创建图片保存旅途work_path = os.path.join('2DtransientRectTC',)isCreated = os.path.exists(work_path)if not isCreated:    os.makedirs(work_path)print("保存旅途: " + work_path)# 获取y的最大值和最小值y_min = data.min(axis=(0,2,))[3]y_max = data.max(axis=(0,2,))[3]fig = plt.figure(100, figsize=(10, 10))def anim_update(t_id):    plt.clf()    x1_t, x2_t, y_p_t = data[:, 0:1, t_id], data[:, 1:2, t_id], data[:, 3:4, t_id]    x1_t, x2_t, y_p_t = x1_t.flatten(), x2_t.flatten(), y_p_t.flatten()    print(t_id, x1_t.shape, x1_t.shape, y_p_t.shape)        plt.subplot(1,1,1)    plt.tricontourf(x1_t, x2_t, y_p_t, levels=160, cmap="coolwarm")    cb0 = plt.colorbar(mpl.cm.ScalarMappable(norm=mpl.colors.Normalize(vmin=y_min, vmax=y_max), cmap="coolwarm" ),ax = plt.gca())      plt.xlabel('$x (m)$')    plt.ylabel('$y (m)$')    plt.title("Temperature field at t = " + str(round(t_id * dt,2)) + " s.", fontsize = 12)     plt.savefig(work_path + '//' + 'animation_' + str(t_id) + '.png')print("data.shape[2] = ", data.shape[2])# 创建动画anim =FuncAnimation(fig, anim_update, frames=np.arange(0, data.shape[2]).astype(np.int64), interval=200)anim.save(work_path + "//" + "animation-" + str(Nt+1) + ".gif", writer="pillow",dpi=300)

温度变化如图所示。

图片

欧美高清处女本案例使用的后端框架为Pytorch。
参考而已:https://aistudio.baidu.com/projectdetail/5489960

(完)

图片

本站仅提供存储处事,统共本色均由用户发布,如发现存害或侵权本色,请点击举报。

首页 | 父女乱伦 | 家庭乱伦电影 | 亚洲色图 | 四房色播 | 欧美整片 | 日本AV |

Powered by 日本父女乱伦 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群系统 © 2013-2024

创建或修改目录:/www/wwwroot/104.219.215.234/data 失败!
JzEngine Create File False