2024-10-16 20:50:56 发布
网友
我试图用fipy来解决非线性偏微分方程,我有几个关于用法的问题。在
1-是否可以将grid1D对象设置为从特定数字开始而不是从0开始?在
2-是否可以使用系数变量x作为扩散系数(如果phi是t和x的函数)?怎么做呢?在
>>> m1 = fp.Grid1D(nx=10, dx=.5) + [[5.]] >>> print m1.cellCenters [[ 5.25 5.75 6.25 6.75 7.25 7.75 8.25 8.75 9.25 9.75]] >>> m2 = fp.Grid2D(nx=3, ny=2, dx=.2, dy=.7) + [[2.], [8.]] >>> print m2.cellCenters [[ 2.1 2.3 2.5 2.1 2.3 2.5 ] [ 8.35 8.35 8.35 9.05 9.05 9.05]]
mesh.cellCenters
CellVariable
mesh.faceCenters
FaceVariable
>>> x = mesh.cellCenters[0] >>> D = x**2 + 3.
因为FiPy将在单元中心定义的扩散系数插值到面中心,因此如果您自己在面中心定义系数,可能会得到更准确的结果
>>> X = mesh.faceCenters[0] >>> D = X**2 + 3.
(见https://www.ctcms.nist.gov/fipy/documentation/FAQ.html#why-the-distinction-between-cellvariable-and-facevariable-coefficients)
mesh.cellCenters
是CellVariable
,而mesh.faceCenters
是FaceVariable
,所以只需像编写其他表达式一样编写表达式:因为FiPy将在单元中心定义的扩散系数插值到面中心,因此如果您自己在面中心定义系数,可能会得到更准确的结果
(见https://www.ctcms.nist.gov/fipy/documentation/FAQ.html#why-the-distinction-between-cellvariable-and-facevariable-coefficients)
相关问题 更多 >
编程相关推荐