Quickstart
##########
Dependencies
============
Htool-DDM's Python interface is based on `pybind11 `__ and Htool-DDM :ref:`C++ header-only library `. It requires
* C++ compiler with standard 14,
* Python 3,
* MPI implementation for distributed parallelism,
* BLAS, to perform algebraic dense operations,
* `pybind11`_ to define the python interface,
* `cmake`_ to build the python interface,
* `HPDDM`_ and its dependencies (BLAS, LAPACK) to use iterative solvers and DDM preconditioners,
.. note:: Htool-DDM :ref:`C++ header-only library `, HPDDM and pybind11 are git submodules of Htool-DDM python interface. Thus, users do not need to install them.
It also requires the following python packages
* `mpi4py`_ for using MPI via Python,
* `numpy`_ for basic linear algebra in Python.
And optionnally,
* `matplotlib`_ for visualisation.
Compilation
===========
First, you need to clone this repository with its submodules:
.. code-block:: bash
git clone --recurse-submodules https://github.com/htool-ddm/htool_python.git && cd htool_python
In the folder of this repository, do:
.. code-block:: bash
pip install .
In case you need to pass cmake variables, you can use
.. code-block:: bash
CMAKE_ARGS="-DCMAKE_VAR=VALUE1 -DCMAKE_VAR_2=VALUE2" pip install .
Hierarchical compression
========================
Coefficient generator
---------------------
Build a hierarchical matrix
---------------------------
Use a hierarchical matrix
-------------------------
DDM Solver
==========