当我设置风速参数时,它看起来不像是重建了FLORIS流场。
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我如何告诉弗洛里斯在我重新设定风速后重新计算风场?我期望旧的流场和新的流场之间的差别是非零的。
发布于 2019-05-14 14:27:47
这个答案是过时的,鉴于新版本的弗洛里斯,风速的变化,现在是通过调用再生流场。来自示例0005:
# 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)发布于 2018-10-17 21:57:26
这似乎是python如何定义变量的一个误解。具体来说,python中的变量实际上是指向内存的指针。在您的示例中,oldfield和newfield指向相同的内存地址。因此,当您更改wind_speed时,您将对这两个变量进行操作,因为它们实际上是相同的。
我打赌newfield is oldfield会返回True
在修改任何参数之前,尝试流场或floris对象的copy.deepcopy。
这里有一个关于python变量的很好的解释:http://scottlobdell.me/2013/08/understanding-python-variables-as-pointers/
https://stackoverflow.com/questions/52857589
复制相似问题