查找 RuntimeWarning:在运行流体动力学研究数值方案时在 double_scalars 中遇到溢出

如何解决查找 RuntimeWarning:在运行流体动力学研究数值方案时在 double_scalars 中遇到溢出

我正在编写代码来使用不同的数值方法(例如 Lax-Friederichs、Lax-Wendroff 和 Upwind 方案)求解双曲微分方程。在计算过程中,我经常遇到这种类型的错误:

RuntimeWarning: double_scalars 中遇到溢出

当我减少矩阵的维度时,这似乎消失了。在这里附上我的代码:

for i in range (0,nt):
#inlet
rho[0,i] = P_inlet/(R*T_inlet)
u[0,i] = u_inlet
P[0,i] = P_inlet
T[0,i] = T_inlet
Ac[0,0] = A_var_list[0]

Q1[0,i] = rho[0,i]
Q2[0,i] * u[0,i]
Q3[0,i] = (1/2)*(rho[0,i])*(u[0,i]**2) + (P[0,i]/(k-1))

F1[0,i]
F2[0,i]**2) + P[0,i]
F3[0,i] = u[0,i] * ((1/2)*(rho[0,i]**2) + (k*P[0,i]/(k-1)))


#outlet
rho[nx-1,i] = rho_outlet
P[nx-1,i] = P_outlet
u[nx-1,i] = u_outlet
T[nx-1,i] = T_outlet
Q1[nx-1,i] = rho[nx-1,i]
Q2[nx-1,i]*u[nx-1,i]
Q3[nx-1,i] = (1/2)*rho[nx-1,i] + (P[nx-1,i]/(k-1))
F1[nx-1,i] * u[nx-1,i]
F2[nx-1,i]*(u[nx-1,i]**2) + P[nx-1,i]
F3[nx-1,i] = u[nx-1,i] * ((1/2)*(rho[nx-1,i])*(u[nx-1,i]**2) + (k*P[nx-1,i]/(k-1)))

#manifold
for i in range (1,nx-1):
rho[i,0] = P_inlet/(R*Tw[i])
u[i,0] = u_inlet
P[i,0] = P_inlet
Ac[i,0] = A_var_list[i]

Q1[i,0] = rho[i,0]
Q2[i,0] * u[i,0]
Q3[i,0] = (1 / 2) * (rho[i,0]) * (u[i,0] ** 2) + (P[i,0] / (k - 1))

F1[i,0]
F2[i,0] ** 2) + P[i,0]
F3[i,0] = u[i,0] * ((1 / 2) * (rho[i,0] ** 2) + (k * P[i,0] / (k - 1)))

S1[i,0] = -rho[i,0] * (Ac[i,0] - Ac[i - 1,0])
S2[i,0] = -(rho[i,0] * ((u[i,0] ** 2) / (Ac[i,0])) * (Ac[i,0])) - (
            (frict_fact * np.pi * rho[i,0] * d[i] * u[i,0] ** 2) / (2 * Ac[i,0]))
S3[i,0] = - (u[i,0] * (rho[i,0] ** 2) / 2) + (k * P[i,0] / (k - 1))) * (
            (Ac[i,0]) / Ac[i,0])) + (Lambda * np.pi * d[i] * (Tw[i] - T[i,0])
def Upwind():
for n in range (0,nt-1):
    for i in range (1,nx):

        Q1[i,n+1] = Q1[i-1,n]-((F1[i,n] - F1[i-1,n])/Dx)*Dt + (S1[i,n]-S1[i-1,n])*Dt
        Q2[i,n + 1] = Q2[i-1,n] - ((F2[i,n] - F2[i - 1,n]) / Dx) * Dt + (S2[i,n] - S2[i - 1,n]) * Dt
        Q3[i,n + 1] = Q3[i-1,n] - ((F3[i,n] - F3[i - 1,n]) / Dx) * Dt + (S3[i,n] - S3[i - 1,n]) * Dt

        rho[i,n+1] = Q1[i,n+1]
        u[i,n+1] = Q2[i,n+1] / rho[i,n+1]
        P[i,n+1] = (Q3[i,n+1] - 0.5 * rho[i,n+1] * u[i,n+1] ** 2) * (k - 1)
        T[i,n+1] = P[i,n+1] / (R * rho[i,n+1])

        F1[i,n+1]
        F2[i,n+1] = rho[i,n+1]*((u[i,n+1]**2)/2) +P[i,n+1]
        F3[i,n + 1] = u[i,n + 1] * (
                    (rho[i,n + 1] * ((u[i,n + 1] ** 2) / 2)) + (k * P[i,n + 1] / (k - 1)))

        S1[i,n + 1] = -rho[i,n + 1] * u[i,n + 1] * (Ac[i,0] - Ac[i-1,0])
        S2[i,n + 1] = - (rho[i,n + 1] * (
                (u[i,n + 1] ** 2) / (Ac[i,0])) - ((
                    (frict_fact * np.pi * rho[i,n + 1] * d[i] * (u[i,n + 1] ** 2)) / (2 * Ac[i,0])))
        S3[i,n + 1] = -(u[i,n + 1] * (
                    rho[i,n + 1] ** 2) / 2) + (k * P[i,n + 1] / (k - 1))) * (
                                         (Ac[i,0])) + (
                                          Lambda * np.pi * d[i ] * (Tw[i] - T[i,0])



plt.figure(1)
plt.plot(P[:,nt - 1])
plt.figure(2)
plt.plot(u[:,nt - 1])
def Lax_Friedrichs():
for n in range (1,nt):
    for i in range (1,nx-1):
        F1_m1 = 0.5 * (F1[i,n - 1] + F1[i - 1,n - 1])
        F2_m1 = 0.5 * (F2[i,n - 1] + F2[i - 1,n - 1])
        F3_m1 = 0.5 * (F3[i,n - 1] + F3[i - 1,n - 1])

        S1_m1 = 0.5 * (S1[i,0] + S1[i - 1,0])
        S2_m1 = 0.5 * (S2[i,0] + S2[i - 1,0])
        S3_m1 = 0.5 * (S3[i,0] + S3[i - 1,0])


        F1_p1 = 0.5 * (F1[i + 1,n - 1] + F1[i,n - 1])
        F2_p1 = 0.5 * (F2[i + 1,n - 1] + F2[i,n - 1])
        F3_p1 = 0.5 * (F3[i + 1,n - 1] + F3[i,n - 1])

        S1_p1 = 0.5 * (S1[i + 1,n - 1] + S1[i,n - 1])
        S2_p1 = 0.5 * (S2[i + 1,n - 1] + S2[i,n - 1])
        S3_p1 = 0.5 * (S3[i + 1,n - 1] + S3[i,n - 1])


        Q1[i,n] = 0.5 * (Q1[i - 1,n - 1] + Q1[i + 1,n - 1]) - Dt/Dx * (F1_p1 - F1_m1) + (S1_p1 - S1_m1) * Dt
        Q2[i,n] = 0.5 * (Q2[i - 1,n - 1] + Q2[i + 1,n - 1]) - Dt/Dx * (F2_p1 - F2_m1) + (S2_p1 - S2_m1) * Dt
        Q3[i,n] = 0.5 * (Q3[i - 1,n - 1] + Q3[i + 1,n - 1]) - Dt/Dx * (F3_p1 - F3_m1) + (S3_p1 - S3_m1) * Dt

        rho[i,n] = Q1[i,n]
        u[i,n] = Q2[i,n] / rho[i,n]
        P[i,n] = (Q3[i,n] - 0.5 * rho[i,n] * u[i,n] ** 2) * (k - 1)
        T[i,n] = P[i,n] / (R * rho[i,n])

        F1[i,n]
        F2[i,n] = rho[i,n] * ((u[i,n] ** 2) / 2) + P[i,n]
        F3[i,n] = u[i,n] * (
                (rho[i,n] ** 2) / 2)) + (k * P[i,n] / (k - 1)))

        S1[i,n] = -rho[i,n] * (Ac[i,n] = - (rho[i,n] * (
                (u[i,n] ** 2) / (Ac[i,0])) - ((
                (frict_fact * np.pi * rho[i,n] * d[i] * (u[i,n] ** 2)) / (2 * Ac[i,n] = -(u[i,n] * (
                rho[i,n] ** 2) / 2) + (k * P[i,n] / (k - 1))) * (
                                 (Ac[i,0])) + (
                               Lambda * np.pi * d[i] * (Tw[i] - T[i,0])

# Plot
plt.figure(1)
plt.plot(P[:,nt - 1])

def Lax_Wendroff():
for n in range (0,nx-1):

        Q1_plus_half = (1 / 2) * (Q1[i,n] + Q1[i + 1,n]) - (Dt / (2 * Dx)) * (F1[i + 1,n] - F1[i,n]) + (
                    S1[i + 1,n] - S1[i,n]) * Dt
        Q1_less_half = (1 / 2) * (Q1[i,n] + Q1[i - 1,n]) - (Dt / (2 * Dx)) * (F1[i,n] - F1[i - 1,n]) + (
                    S1[i,n] - S1[i - 1,n]) * Dt
        Q2_plus_half = (1 / 2) * (Q2[i-1,n] + Q2[i + 1,n]) - (Dt / (2 * Dx)) * (F2[i + 1,n] - F2[i,n]) + (
                    S2[i + 1,n] - S2[i,n]) * Dt
        Q2_less_half = (1 / 2) * (Q2[i,n] + Q2[i - 1,n]) - (Dt / (2 * Dx)) * (F2[i,n]) + (
                    S2[i,n]) * Dt
        Q3_plus_half = (1 / 2) * (Q3[i,n] + Q3[i + 1,n]) - (Dt / (2 * Dx)) * (F3[i + 1,n] - F3[i,n]) + (
                    S3[i + 1,n] - S3[i,n]) * Dt
        Q3_less_half = (1 / 2) * (Q3[i,n] + Q3[i - 1,n]) - (Dt / (2 * Dx)) * (F3[i,n]) + (
                    S3[i,n]) * Dt

        rho_less_half = Q1_less_half
        u_less_half = Q2_less_half / rho_less_half
        P_less_half = (Q3_less_half - ((1 / 2) * rho_less_half * (u_less_half ** 2) / 2)) * (k - 1)

        F1_less_half = rho_less_half * u_less_half
        F2_less_half = rho_less_half * ((u_less_half ** 2) / 2) + P_less_half
        F3_less_half = u_less_half * ((rho_less_half * ((u_less_half ** 2) / 2)) + (k * P_less_half / (k - 1)))

        rho_plus_half = Q1_plus_half
        u_plus_half = Q2_plus_half / rho_plus_half
        P_plus_half = (Q3_plus_half - ((1 / 2) * rho_plus_half * (u_plus_half ** 2) / 2)) * (k - 1)

        F1_plus_half = rho_plus_half * u_plus_half
        F2_plus_half = rho_plus_half * ((u_plus_half ** 2) / 2) + P_plus_half
        F3_plus_half = u_plus_half * ((rho_plus_half * ((u_plus_half ** 2) / 2)) + (k * P_plus_half / (k - 1)))

        # I termini sorgente da mettere dentro l'equazione finale di Q li calcolo come medie delle variabili nel condotto

        S1_less_half = 0.5 * (S1[i - 1,n] + S1[i,n])
        S2_less_half = 0.5 * (S2[i - 1,n] + S2[i,n])
        S3_less_half = 0.5 * (S3[i - 1,n] + S3[i,n])

        S1_plus_half = 0.5 * (S1[i + 1,n])
        S2_plus_half = 0.5 * (S2[i + 1,n])
        S3_plus_half = 0.5 * (S3[i + 1,n])

        """S1_less_half = Q1_less_half + F1_less_half
        S2_less_half = Q2_less_half + F2_less_half
        S3_less_half = Q3_less_half + F3_less_half

        S1_plus_half = Q1_plus_half + F1_plus_half
        S2_plus_half = Q2_plus_half + F2_plus_half
        S3_plus_half = Q3_plus_half + F3_plus_half"""

        Q1[i,n + 1] = Q1[i,n] - (Dt / Dx) * (F1_plus_half - F1_less_half) - (S1_plus_half - S1_less_half) * Dt
        Q2[i,n + 1] = Q2[i,n] - (Dt / Dx) * (F2_plus_half - F2_less_half) - (S2_plus_half - S2_less_half) * Dt
        Q3[i,n + 1] = Q3[i,n] - (Dt / Dx) * (F3_plus_half - F3_less_half) - (S3_plus_half - S3_less_half) * Dt

        rho[i,n + 1]
        u[i,n + 1] / rho[i,n + 1]
        P[i,n + 1] = (Q3[i,n + 1] - 0.5 * rho[i,n + 1] * (u[i,n + 1] ** 2)) * (k - 1)

        F1[i,n + 1] = rho[i,n + 1]
        F2[i,n + 1] ** 2) / 2) + P[i,n + 1]
        F3[i,n+1] = u[i,n+1] * (
                (rho[i,n+1] * ((u[i,n+1] ** 2) / 2)) + (k * P[i,n+1] / (k - 1)))

        S1[i,n+1] = -rho[i,n+1] * (Ac[i,n+1] = - (rho[i,n+1] * (
                (u[i,n+1] ** 2) / (Ac[i,n+1] * d[i] * (u[i,n+1] ** 2)) / (2 * Ac[i,n+1] = -(u[i,n+1] * (
                rho[i,n+1] ** 2) / 2) + (k * P[i,n+1] / (k - 1))) * (
                             (Ac[i,0])) + (
                           Lambda * np.pi * d[i] * (Tw[i] - T[i,0])


# Plot
plt.figure(1)
plt.plot(P[:,nt - 1])

我很确定这是索引的问题,但我还没有找到解决方案。希望你能帮助我。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res