Peano
Loading...
Searching...
No Matches
FuseSteps.py File Reference

Go to the source code of this file.

Namespaces

namespace  peano4
 
namespace  peano4.api
 
namespace  peano4.api.taskgraph
 The task graph abstraction allows users to formalise their solver steps over small task graphs which are then lowered into a sequence of Peano mesh traversals.
 
namespace  peano4.api.taskgraph.compiler
 Compilers are simple functions.
 
namespace  peano4.api.taskgraph.compiler.FuseSteps
 

Functions

List["peano4.api.solversteps.Step"] peano4.api.taskgraph.compiler.FuseSteps.translate (Graph graph, str identifier, "peano4.api.Project" peano_project, Optional[List[Tuple[Task, Task]]] non_fusable_task_pairs=None)
 Task graph compiler which fuses tasks into as few mesh traversals as possible.
 
bool peano4.api.taskgraph.compiler.FuseSteps._have_conflicting_data (List[Task] tasks, List[Task] further_tasks, bool include_cell_data=False, bool respect_entity_order=False)
 Check whether two sets of tasks can not share one mesh traversal due to their face or vertex data, or can not run in parallel.
 
str peano4.api.taskgraph.compiler.FuseSteps._task_name (Task task)
 Turn every whitespace-separated word into its own name segment, capitalising only its first letter - a blind .title() would also lower-case the rest of the word, which mangles existing camel case and acronyms (e.g.
 
"Task.DataAccess" peano4.api.taskgraph.compiler.FuseSteps._merge_data_access (List["Task.DataAccess"] accesses)
 Merge the qualifiers several fused tasks attach to one submodel into one.
 
"peano4.api.solversteps.Step" peano4.api.taskgraph.compiler.FuseSteps._create_step (List[List[Task]] nodes, str identifier)
 Create one step from a group of fused nodes.
 
bool peano4.api.taskgraph.compiler.FuseSteps._is_parallel_node (List[Task] node)
 A node is parallel if it holds more than one task and each task holds exactly one action set.