Welcome to Coyote’s documentation!¶
Content
Note
This project is under development
You can find the code in the GitLab repository.
What is coyote?¶
Coyote is the COmmon Yac Output Toolkit Environment that can be used as a library (or python package) to write a highly customized output component using the YAC coupler.
Task queue¶
Internally coyote maintains a prioritized task queue and a thread pool. The task of the main thread is to receive data (calling yac_cget_async). Once it has received a timestep of a field it creates 2 tasks. One for calling yac_put for that field to move the data to potentially downstream components, and another one which calls the user-provided operator to proceed the data. The tasks are picked up and handled by the worker threads. (If ntasks=1, i.e., only the main thread exists, the main thread also looks for tasks and handles them alternating with checking yac_ctest for all fields.)