#define AGXPHYSICS_EXPORT
Interface for primarily Iterative Solvers that can execute on GPU and be coupled to AGX solvers.
int getDeviceIndex() const
Get index of backend GPU device.
virtual agx::Task * getCopyToGpuTask()
Optional staging task that can prepare and copy some data to GPU before the Solver should run.
virtual bool isSupported() const =0
Query if solver can execute on current hardware.
int getSolverBackendType() const
Get backend type for solver.
static void releaseSolver(SolverInterface *solver)
Pass solver back to its originating backend library where it can be freed if reference counting allow...
virtual agx::SolveKernel * getSolveKernel(int kernel)=0
Request kernel for a solve stage.
static SolverInterface * loadSolver(int backend, int device)
Try to dynamically load a GPU backend.
A component is an object containing other objects, enabling hierarchical structuring.
A representation of a generic task.
Funcionality and abstractions for GPU computation.