首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在农场实例化后改变风速?

如何在农场实例化后改变风速?
EN

Stack Overflow用户
提问于 2018-10-17 14:42:48
回答 2查看 166关注 0票数 2

当我设置风速参数时,它看起来不像是重建了FLORIS流场。

代码语言:javascript
复制
In [1]: %run example_optimization.py
8297477.650646916

In [2]: oldfield = floris.farm.flow_field.u_field

In [3]: floris.farm.wind_speed
Out[3]: 10.0

In [4]: floris.farm.wind_speed = 20

In [5]: newfield = floris.farm.flow_field.u_field

In [6]: np.sum(oldfield - newfield)
Out[6]: 0.0

我如何告诉弗洛里斯在我重新设定风速后重新计算风场?我期望旧的流场和新的流场之间的差别是非零的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-14 14:27:47

这个答案是过时的,鉴于新版本的弗洛里斯,风速的变化,现在是通过调用再生流场。来自示例0005:

代码语言:javascript
复制
# Initialize FLORIS model
fi = wfct.floris_utilities.FlorisInterface("example_input.json")

# Change wind speed to 8 m/s
fi.reinitialize_flow_field(wind_speed=8.0)
票数 3
EN

Stack Overflow用户

发布于 2018-10-17 21:57:26

这似乎是python如何定义变量的一个误解。具体来说,python中的变量实际上是指向内存的指针。在您的示例中,oldfieldnewfield指向相同的内存地址。因此,当您更改wind_speed时,您将对这两个变量进行操作,因为它们实际上是相同的。

我打赌newfield is oldfield会返回True

在修改任何参数之前,尝试流场或floris对象的copy.deepcopy

这里有一个关于python变量的很好的解释:http://scottlobdell.me/2013/08/understanding-python-variables-as-pointers/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52857589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档