dedalus.core.evaluator
¶
Class for centralized evaluation of expression trees.
Module Contents¶
-
FILEHANDLER_MODE_DEFAULT
¶
-
FILEHANDLER_PARALLEL_DEFAULT
¶
-
FILEHANDLER_TOUCH_TMPFILE
¶
-
logger
¶
-
class
Evaluator
(domain, vars)¶ Coordinates evaluation of operator trees through various handlers.
Parameters: - domain (domain object) – Problem domain
- vars (dict) – Variables for parsing task expression strings
-
add_dictionary_handler
(self, **kw)¶ Create a dictionary handler and add to evaluator.
-
add_system_handler
(self, **kw)¶ Create a system handler and add to evaluator.
-
add_file_handler
(self, filename, **kw)¶ Create a file handler and add to evaluator.
-
add_handler
(self, handler)¶ Add a handler to evaluator.
-
evaluate_group
(self, group, **kw)¶ Evaluate all handlers in a group.
-
evaluate_scheduled
(self, wall_time, sim_time, iteration, **kw)¶ Evaluate all scheduled handlers.
-
evaluate_handlers
(self, handlers, id=None, **kw)¶ Evaluate a collection of handlers.
-
require_coeff_space
(self, fields)¶ Move all fields to coefficient layout.
-
static
get_fields
(tasks)¶ Get field set for a collection of tasks.
-
static
attempt_tasks
(tasks, **kw)¶ Attempt tasks and return the unfinished ones.
-
class
Handler
(domain, vars, group=None, wall_dt=np.inf, sim_dt=np.inf, iter=np.inf)¶ Group of tasks with associated scheduling data.
Parameters: - domain (domain object) – Problem domain
- vars (dict) – Variables for parsing task expression strings
- group (str, optional) – Group name for forcing selected handelrs (default: None)
- wall_dt (float, optional) – Wall time cadence for evaluating tasks (default: infinite)
- sim_dt (float, optional) – Simulation time cadence for evaluating tasks (default: infinite)
- iter (int, optional) – Iteration cadence for evaluating tasks (default: infinite)
-
add_task
(self, task, layout='g', name=None, scales=None)¶ Add task to handler.
-
add_tasks
(self, tasks, **kw)¶ Add multiple tasks.
-
add_system
(self, system, **kw)¶ Add fields from a FieldSystem.
-
class
DictionaryHandler
(*args, **kw)¶ Bases:
dedalus.core.evaluator.Handler
Handler that stores outputs in a dictionary.
-
process
(self, **kw)¶ Reference fields from dictionary.
-
-
class
SystemHandler
¶ Bases:
dedalus.core.evaluator.Handler
Handler that sets fields in a FieldSystem.
-
build_system
(self)¶ Build FieldSystem and set task outputs.
-
process
(self, **kw)¶ Gather fields into system.
-
-
class
FileHandler
(base_path, *args, max_writes=np.inf, max_size=2**30, parallel=None, mode=None, **kw)¶ Bases:
dedalus.core.evaluator.Handler
Handler that writes tasks to an HDF5 file.
Parameters: - base_path (str) – Base path for analyis output folder
- max_writes (int, optional) – Maximum number of writes per set (default: infinite)
- max_size (int, optional) – Maximum file size to write to, in bytes (default: 2**30 = 1 GB). (Note: files may be larger after final write.)
- parallel (bool, optional) – Perform parallel writes from each process to single file (True), or separately write to individual process files (False). Default behavior set by config option.
- mode (str, optional) – ‘overwrite’ to delete any present analysis output with the same base path. ‘append’ to begin with set number incremented past any present analysis output. Default behavior set by config option.
-
current_path
¶
-
check_file_limits
(self)¶ Check if write or size limits have been reached.
-
get_file
(self)¶ Return current HDF5 file, creating if necessary.
-
create_current_file
(self)¶ Generate new HDF5 file in current_path.
-
setup_file
(self, file)¶
-
process
(self, world_time, wall_time, sim_time, timestep, iteration, **kw)¶ Save task outputs to HDF5 file.
-
get_write_stats
(self, layout, scales, constant, index)¶ Determine write parameters for nonconstant subspace of a field.
-
get_hdf5_spaces
(self, layout, scales, constant, index)¶ Create HDF5 space objects for writing nonconstant subspace of a field.