Mixed execution spaces
The IPPL types now forward variadic parameters to their internal views, allowing the user to choose the behavior of each component. It is also possible for users to disable particle IDs if these are not needed for the application.
This MR also makes IPPL dependent on C++20, so compilation for Gwendolen will not be possible after merging unless the machine is updated. The CMakeLists
is updated to reflect this. Warnings about host functions are also suppressed for debug builds to remove warnings about assertions in device functions.
Some of the indicated changes are just formatting changes. These are also present in !176 (merged). Once this is merged, the number of changes reported for this MR should also decrease.
The Landau damping mini-app is updated to use standard library threading to achieve concurrent execution on CPUs and GPUs (data logging occurs on CPUs in parallel to GPU timestepping; requires an additional command line argument). Timer fences are controlled via command line parameter and are disabled by default if multiple accelerators are present in the build.
Closes #175 (closed).