AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Interface policies for SLAM. More...
Classes | |
class | axom::slam::policies::VirtualInterface |
Policy to use a virtual interface with a given Slam type. More... | |
struct | axom::slam::policies::ConcreteInterface |
Namespaces | |
axom | |
axom::slam | |
axom::slam::policies | |
Interface policies for SLAM.
Interface policies, when used to instantiate supported SLAM types, allow for selecting between a virtual interface or a concrete interface.
Using a virtual interface has the advantage of being able to switch at runtime between different types that correspond to the same base interface. However, there may be some disadvantages:
Using a concrete interface trades the convenience of runtime polymorphism for improved performance by avoiding virtual function calls. For CUDA/HIP code, SLAM types instantiated with a concrete interface are usually able to cross a host/device boundary, i.e. when captured in a RAJA lambda-based loop.