Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 球形催化剂中的反应扩散(边界条件、奇点和初始猜测)_Python_Ode_Boundary - Fatal编程技术网

Python 球形催化剂中的反应扩散(边界条件、奇点和初始猜测)

Python 球形催化剂中的反应扩散(边界条件、奇点和初始猜测),python,ode,boundary,Python,Ode,Boundary,我在求解球形催化剂中的反应扩散方程时遇到了问题。 我很难定义bc,我不知道如何定义一个好的初始猜测。 任何帮助都将不胜感激。该问题具有psi’(0)=0和psi(1)=1的neumann条件 以下是迄今为止的代码: from scipy.integrate import odeint, solve_bvp from scipy.interpolate import interp1d import numpy as np import matplotlib.pyplot as plt #param

我在求解球形催化剂中的反应扩散方程时遇到了问题。 我很难定义bc,我不知道如何定义一个好的初始猜测。 任何帮助都将不胜感激。该问题具有psi’(0)=0和psi(1)=1的neumann条件 以下是迄今为止的代码:

from scipy.integrate import odeint, solve_bvp
from scipy.interpolate import interp1d
import numpy as np
import matplotlib.pyplot as plt
#parameters values
k = 0.000533
De = 1.16E-8
#Ke = 3.6;
#KA = 0.0002;
#KB = 0.0004;
KC = 0.00001
#KD = 0.0000001;
rop = 863000
R = 0.002
CAO= 4.850
uL = 0.63e-2
tetb = 1.67

def pellet(x,y): 
    psi = y[0] #psi is the adimensional concentration and x is the adimensional radius
    dpsi = y[1]
    return [y[1], -(2/x)*y[1]+(fi**2)*y[0]*((((tetb-X[i])/(1-X[i])-1+y[0])/(1+KC*CAO*(1-X[i])* 
((X[i]/(1-X[i]))+1-y[0]))))]

def bc(ya, yb):
    psi0, dpsi0 = ya
    psi1, dpsi1 = yb
    return [ya[1], yb[0]-1]
Xmax=1
npontos=500 
dX=Xmax/npontos; #dx = infinitesimal conversion of reactant 
X = [0]
for i in range(npontos):
    if i == 250: 
        fi = R*(((rop*k*CAO*(1-X[i]))/De)**(0.5))
        x = np.linspace(0.01,1)
        psi_ini = np.zeros((2, x.size))
        sol = solve_bvp(pellet, bc, x, psi_ini)
        plt.plot(x, sol.sol(x)[0])
        plt.xlabel('raio adimensional')
        plt.ylabel('concentraçao adimensional')
        plt.show()
    X.append(X[i] + dX)