Skip to content
Snippets Groups Projects
Commit 88c2f4f1 authored by Mads M. Pedersen's avatar Mads M. Pedersen
Browse files

Move the split line between wake and blockage is set slightly downstream to...

Move the split line between wake and blockage is set slightly downstream to handle numerical inaccuracy in the trigonometric functions that calculates dw_ijlk
parent 8e0ccf07
No related branches found
No related tags found
No related merge requests found
...@@ -96,12 +96,17 @@ class EngineeringWindFarmModel(WindFarmModel): ...@@ -96,12 +96,17 @@ class EngineeringWindFarmModel(WindFarmModel):
def _calc_deficit(self, dw_ijlk, **kwargs): def _calc_deficit(self, dw_ijlk, **kwargs):
"""Calculate wake (and blockage) deficit""" """Calculate wake (and blockage) deficit"""
deficit = self.wake_deficitModel.calc_deficit(dw_ijlk=dw_ijlk, **kwargs) deficit = self.wake_deficitModel.calc_deficit(dw_ijlk=dw_ijlk, **kwargs)
# the split line between wake and blockage is set slightly downstream to handle
# numerical inaccuracy in the trigonometric functions that calculates dw_ijlk
rotor_pos = 1e-10
if self.blockage_deficitModel is None: if self.blockage_deficitModel is None:
deficit *= (dw_ijlk > 0) # delete upstream deficit
pass deficit *= (dw_ijlk > rotor_pos)
elif self.blockage_deficitModel != self: elif self.blockage_deficitModel != self:
deficit = deficit * (dw_ijlk > 0) + \ # downstream wake deficit + upstream blockage
(dw_ijlk < 0) * self.blockage_deficitModel.calc_deficit(dw_ijlk=dw_ijlk, **kwargs) deficit = ((dw_ijlk > rotor_pos) * deficit +
(dw_ijlk <= rotor_pos) * self.blockage_deficitModel.calc_deficit(dw_ijlk=dw_ijlk, **kwargs))
return deficit return deficit
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment