hpcflow.sdk.core.loop_cache.LoopCache#

class hpcflow.sdk.core.loop_cache.LoopCache(element_dependents, elements, zeroth_iters, data_idx, iterations, task_iterations)#

Bases: object

Class to store a cache for use in Workflow.add_empty_loop and WorkflowLoop.add_iterations.

Parameters:
element_dependents#

Keys are element IDs, values are dicts whose keys are element IDs that depend on the key element ID (via Element.get_dependent_elements_recursively), and whose values are dicts with keys: group_names, which is a tuple of the string group names associated with the dependent element’s element set.

Type:

Dict[int, Dict]

elements#

Keys are element IDs, values are dicts with keys: input_statuses, input_sources, and task_insert_ID.

Type:

Dict[int, Dict]

zeroth_iters#

Keys are element IDs, values are data associated with the zeroth iteration of that element, namely a tuple of iteration ID and ElementIteration.data_idx.

Type:

Dict[int, Tuple]

data_idx#

Keys are element IDs, values are data associated with all iterations of that element, namely a dict whose keys are the iteration loop index as a tuple, and whose values are data indices via ElementIteration.get_data_idx().

Type:

Dict[int, Dict]

iterations#

Keys are iteration IDs, values are tuples of element ID and iteration index within that element.

Type:

Dict[int, Tuple]

task_iterations#

Keys are task insert IDs, values are list of all iteration IDs associated with that task.

Type:

Dict[int, List[int]]

Methods

add_iteration

Update the cache to include a newly added iteration.

build

Build a cache of data for use in adding loops and iterations.

get_iter_IDs

Retrieve a list of iteration IDs belonging to a given loop.

get_iter_loop_indices

update_loop_indices

Attributes

element_dependents

elements

zeroth_iters

data_idx

iterations

task_iterations

add_iteration(iter_ID, task_insert_ID, element_ID, loop_idx, data_idx)#

Update the cache to include a newly added iteration.

classmethod build(workflow, loops=None)#

Build a cache of data for use in adding loops and iterations.

Parameters:
data_idx: Dict[int, Dict]#
element_dependents: Dict[int, Dict]#
elements: Dict[int, Dict]#
get_iter_IDs(loop)#

Retrieve a list of iteration IDs belonging to a given loop.

Parameters:

loop (Loop) –

Return type:

List[int]

get_iter_loop_indices(iter_IDs)#
Parameters:

iter_IDs (List[int]) –

Return type:

List[Dict[str, int]]

iterations: Dict[int, Tuple]#
task_iterations: Dict[int, List[int]]#
update_loop_indices(new_loop_name, iter_IDs)#
Parameters:
  • new_loop_name (str) –

  • iter_IDs (List[int]) –

zeroth_iters: Dict[int, Tuple]#