Skip to content

Commit 735edf6

Browse files
Performance testing: Removing particle.__setattr__ [BREAKING]
1 parent 488e3fb commit 735edf6

2 files changed

Lines changed: 4 additions & 25 deletions

File tree

parcels/kernel.py

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -378,28 +378,7 @@ def evaluate_particle(self, p, endtime):
378378
dt :
379379
computational integration timestep
380380
"""
381-
while p.state in [StatusCode.Evaluate, StatusCode.Repeat]:
382-
pre_dt = p.dt
383-
384-
sign_dt = np.sign(p.dt).astype(int)
385-
if sign_dt * (endtime - p.time_nextloop) <= np.timedelta64(0, "ns"):
386-
return p
387-
388-
# TODO implement below later again
389-
# try: # Use next_dt from AdvectionRK45 if it is set
390-
# if abs(endtime - p.time_nextloop) < abs(p.next_dt) - 1e-6:
391-
# p.next_dt = abs(endtime - p.time_nextloop) * sign_dt
392-
# except AttributeError:
393-
if abs(endtime - p.time_nextloop) <= abs(p.dt):
394-
p.dt = abs(endtime - p.time_nextloop) * sign_dt
395-
res = self._pyfunc(p, self._fieldset, p.time_nextloop)
396-
397-
if res is None:
398-
if p.state == StatusCode.Success:
399-
if sign_dt * (p.time - endtime) > np.timedelta64(0, "ns"):
400-
p.state = StatusCode.Evaluate
401-
else:
402-
p.state = res
403-
404-
p.dt = pre_dt
381+
# TODO: this is breaking change for performance checking
382+
self._pyfunc(p, self._fieldset, endtime)
383+
405384
return p

parcels/particle.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def __setattr__(self, name, value):
121121
if name in ["_data", "_index"]:
122122
object.__setattr__(self, name, value)
123123
else:
124-
self._data[name][self._index] = value
124+
pass # TODO this is a breaking change, just for checking performance
125125

126126
def delete(self):
127127
"""Signal the particle for deletion."""

0 commit comments

Comments
 (0)