6.1. What Packages are Involved?¶
mirgecom
relies on a number of other packages to do its job, which
depend on each other as illustrated in this graph:
What do these packages do?
Package |
Description |
---|---|
Where the main science code lives (flow, combustion, walls). |
|
1/2/3D discontinuous Galerkin based on meshmode. |
|
(Unstructured, high-order) discontinuous piecewise polynomial discretizations. |
|
Creation of and operations on (lazy/GPU/…) arrays, array containers. |
|
A code generator for array-based code on CPUs and GPUs. |
|
OpenCL integration for Python. |
|
Modes and nodes for high-order discretizations. |
|
Expression tree and symbolic manipulation library. |
|
Lazily evaluated arrays in Python. |
|
pocl (GitHub) |
OpenCL runtime for CPUs and GPUs written in C. |
emirge (GitHub) |
Scripts to manage a mirgecom installation and its dependencies. |
The source repository (and current branch) of most of these packages in use is determined by the file requirements.txt in mirgecom.