FiPy 设置初始网格值
FiPy Setting Initial Grid Values
我是一个用例,我需要将值从 2D Numpy 数组转置到 2D FiPy 网格,然后用于求解系统。
我的代码如下:
for x in range(0, size[0]):
for y in range(0, size[1]):
source.setValue(tmpSource.getGrid()[x][y], where=(X < x + 1) & (X > x) & (Y > y) & (Y < y + 1))
sink.setValue(tmpSink.getGrid()[x][y], where=(X < x + 1) & (X > x) & (Y > y) & (Y < y + 1))
其中tmpSource和tmpSink表示Numpy数组。
虽然这种方法有效,但 运行 非常慢。有人对可以加快速度的替代方法有任何建议吗?
谢谢!
你说 "transpose",但你的例子似乎是一个简单的数据传输,没有交换轴或数据范围。将值从 2D numpy 数组移动到 Grid2D 上定义的 FiPy CellVariable 应该像展平数组一样简单:
source.value = tmpSource.getGrid().flatten()
sink.value = tmpSink.getGrid().flatten()
我是一个用例,我需要将值从 2D Numpy 数组转置到 2D FiPy 网格,然后用于求解系统。
我的代码如下:
for x in range(0, size[0]):
for y in range(0, size[1]):
source.setValue(tmpSource.getGrid()[x][y], where=(X < x + 1) & (X > x) & (Y > y) & (Y < y + 1))
sink.setValue(tmpSink.getGrid()[x][y], where=(X < x + 1) & (X > x) & (Y > y) & (Y < y + 1))
其中tmpSource和tmpSink表示Numpy数组。
虽然这种方法有效,但 运行 非常慢。有人对可以加快速度的替代方法有任何建议吗?
谢谢!
你说 "transpose",但你的例子似乎是一个简单的数据传输,没有交换轴或数据范围。将值从 2D numpy 数组移动到 Grid2D 上定义的 FiPy CellVariable 应该像展平数组一样简单:
source.value = tmpSource.getGrid().flatten()
sink.value = tmpSink.getGrid().flatten()