解决一维合并问题python实现

计算科学 pde Python 流体动力学 固体力学
2021-12-27 21:10:06

一维固结问题的解由下式给出

tp=cv2y2p

其中是孔隙水压力,是固结系数,是经过的时间,是柱的高度。本文档提供了进一步的背景信息pcvty

解决方案转载如下:

p(y,t)=n=1n=2p0nπ(1cos(nπ))sin(nπy2hexp(n2π2cvt4h2))

初始条件

p(y,0)=p0

边界条件

p(0,t)=0
p(2h,t)=0

据我所知,初始条件是一条直线,相当于施加在土层上的初始载荷。的关系图应如下所示t=0yp(y,t)p0=5000000

在此处输入图像描述

这是我python对上述解决方案的实现。

from numpy import cos, exp,pi, linspace, array,sin
import matplotlib.pyplot as plt

#PRESSURE VERSUS HEIGHT

G = 5000000 # Pa = N/m2
E = 10000000# Pa = N/m2
K = E*G/3/(3*G-E)#Bulk modulus of soil skeleton Pa = N/m2
Kl = 2000000000 #Bulk modulus of liquid Pa = N/m2
n = 0.33 #porosity
gammal = 9810 #unit weight of liquid N/m3
k = 1.157E-17 #intrinsic permeability liquid m2
h = 0.5 #m

alpha = 1/(K+4*G/3) #m*s2/kg
beta = 1/Kl #m*s2/kg

cv = k/(gammal*(alpha+n*beta))#m^2/s

n = 200#number of terms to include in series
timevalues = array([0])
yvalues = linspace(0,1,100)
h = 0.5
p0 = 5000000


for t in timevalues:
    pvalues = []
    for y in yvalues:
        SUM = 0
        SUM2 = 0
        for j in range(1,n,1):
            SUM = SUM+(2*p0/j/pi)*(1-cos(j*pi))*sin(j*pi*y/2/h)*exp(-j**2*pi**2**(cv*t/h**2)/4)
        pvalues.append(SUM)
    plt.plot(pvalues, yvalues)
plt.grid()
plt.show()

我使用所有参数的任意值以及液体体积模量、土壤体积模量和孔隙率之间的特殊关系来确定固结系数。然而,这些事情无关紧要。与初始加载p0 = 5000000. 我正在创建这个数组并循环它,因为稍后我希望使用其他时间值。然而,现在,使用的初始时间,我得到了如下所示的荒谬结果:timevalues0t=0s

在此处输入图像描述

我正在绘制的值。为什么我得到这个奇怪的正弦函数而不是常数函数?我也很确定分析结果是正确的,因为我已经用. 请帮忙谢谢。t=0sympy

0个回答
没有发现任何回复~