我想用fick定律做上面的模拟,用有限差分法。我的问题是整个问题的开始。
我将列出文件中的一些值和声明,以及我如何实现这些值和声明。
物理特性:
在这里,我做了:
V0 = ... # just a variable
V = sc.zeros(5)
V[0] = ... # this goes for Viw0边界条件:
在这里,我做了:
C = sc.zeros(5)
C[0] = ... #this goes for Ci0
C7 = ...Fick的第一定律:
F = -D * dc/dx
F截面每单位的传输速率c扩散物质的浓度,与剖面正常测量的空间坐标。
在这里,我不知道函数的论点是什么:
def F(what to put here?):
dc = 0.1 # I don't know what to do with the dc!
return -(D*dc)/dx另外,如何实现有限差分法?(我有一个实现方法的类)。
以下是与该文件的链接:
第1页
第2页
第3页
第4页
发布于 2012-01-15 15:11:48
你没有说过集中度是否是系统的自由度,也没有说过你将如何模拟质量传输或其他任何东西,也没有提到问题的时间特征(即。你是想分析瞬态还是稳态问题?)。因此,试图建议如何构造代码来解决这样一个描述不善的问题是不成熟的,也是徒劳的。
要回答问题中唯一有意义的部分,要计算通量项的一阶一维有限差分近似,您可以这样做:
import numpy as np
def F(c,D,x):
"""Assume c and x are numpy arrays of equal size and D is a scalar"""
# differencing of the concentration field
deltac = np.diff(c)
deltax = np.diff(x)
return -D * deltac / deltax根据实际的微分方程组及其性质,选择适当的差分顺序和方向有许多微妙之处,但这远远超出了这个问题的范围和已经给出的有关这个问题的信息。
发布于 2012-01-14 18:18:21
如果我理解你的问题,你似乎想要写一个程序来帮助可视化这些不同细胞的扩散。动画GIF on The Fick's Law 维基百科页面应该帮助我们思考这样的图/图/梯度可能是什么样子。我并不是说您需要创建一个动画,但我相信您的部分工作可能是将各种扩散梯度(底部行)显示为给定单元格的属性(即浓度、空间坐标和/或D值)的函数。
因此,经过一些搜索,我认为这篇论文可能有助于把这个问题看作一个游戏:“扩散博弈”--运用符号数学软件进行大规模博弈 (pdf)。菲克定律开始于报纸的一半左右。
但是,如果要创建梯度图,就应该看看这个问题中提到的matplotlib模 for Python:渐变面色图条图。
最后,为了帮助回答你的问题,如果你只想要原始数据(即数字),我相信你想要创建一个扩散物质浓度c和空间坐标x的可能值的向量。否则,使用matplotlib作为可视化表示。在Python中,浓度参数的值向量可能如下所示:
c = [round(i*0.1, 2) for i in range(0, 10)] # not sure of the typical range这是一个返回[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]的列表理解。(我使用round(),因为我看到0.300000004是其中一个数字。)您可以对值x和/或D进行同样的操作,以便将F定义为c、x和D值变化的矩阵。
https://stackoverflow.com/questions/8862825
复制相似问题