# MATH2OPUS
"h2opus" - A matrix type for hierarchical matrices using the H2Opus package. 
## Options Database Keys

- ***-mat_type h2opus -*** matrix type to "h2opus" during a call to MatSetFromOptions()



## Notes
H2Opus implements hierarchical matrices in the H^2 flavour. It supports CPU or NVIDIA GPUs.

For CPU only builds, use ./configure --download-h2opus --download-thrust to install PETSc to use H2Opus.
In order to run on NVIDIA GPUs, use ./configure --download-h2opus --download-magma --download-kblas.




## Reference

- **** -*** "H2Opus: A distributed-memory multi-GPU software package for non-local operators", https://arxiv.org/abs/2109.05451



## See Also
 `MATH2OPUS`, `MATHTOOL`, `MATDENSE`, `MatCreateH2OpusFromKernel()`, `MatCreateH2OpusFromMat()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/mat/impls/h2opus/cuda/math2opus.cu.html#MATH2OPUS">src/mat/impls/h2opus/cuda/math2opus.cu</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/impls/h2opus/cuda/math2opus.cu)


[Index of all Mat routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
