MCPcopy Create free account
hub / github.com/DedalusProject/dedalus / add_task

Method add_task

dedalus/core/evaluator.py:278–308  ·  view source on GitHub ↗

Add task to handler.

(self, task, layout='g', name=None, scales=None)

Source from the content-addressed store, hash-verified

276 return scheduled
277
278 def add_task(self, task, layout='g', name=None, scales=None):
279 """Add task to handler."""
280 # Default name
281 if name is None:
282 name = str(task)
283 # Create operator
284 if isinstance(task, str):
285 op = FutureField.parse(task, self.vars, self.dist)
286 elif isinstance(task, Field):
287 op = Copy(task)
288 else:
289 op = task
290 # Check scales
291 if isinstance(op, (LockedField, FutureLockedField)):
292 if scales is None:
293 scales = op.domain.dealias
294 else:
295 scales = self.dist.remedy_scales(scales)
296 if scales != op.domain.dealias:
297 scales = op.domain.dealias
298 logger.warning("Cannot specify non-delias scales for LockedFields")
299 else:
300 scales = self.dist.remedy_scales(scales)
301 # Build task dictionary
302 task = dict()
303 task['operator'] = op
304 task['layout'] = self.dist.get_layout_object(layout)
305 task['name'] = name
306 task['scales'] = scales
307 task['dtype'] = op.dtype
308 self.tasks.append(task)
309
310 def add_tasks(self, tasks, **kw):
311 """Add multiple tasks."""

Callers 15

add_tasksMethod · 0.95
shear_flow.pyFile · 0.45
shallow_water.pyFile · 0.45
rayleigh_benard.pyFile · 0.45
libration.pyFile · 0.45
test_cartesian_outputFunction · 0.45

Calls 4

CopyClass · 0.85
parseMethod · 0.80
remedy_scalesMethod · 0.80
get_layout_objectMethod · 0.80

Tested by 7

test_cartesian_outputFunction · 0.36
test_cartesian_outputFunction · 0.36
test_polar_outputFunction · 0.36
test_spherical_outputFunction · 0.36