NumSA¶
NumSA is a highly modular numerical analysis toolbox I developed during my stay at, King Abdullah University Of Science and Technology 2020. NumSA rely on the following dependencies to work: - PyBind11, this it the C++ Python binder, more info here, - Eigen, this is the linear algebra library we decied to use, more info here,
Getting Started¶
PyBind11¶
To compile pybind11 move in the pybind11 folder (dep/pybind11) and use the following commands,
mkdir build
cd build
cmake ..
make check -j 4
Eigen¶
To compile QHull move in the pybind11 folder (dep/QHull) and use the following commands,
mkdir build
cd build
cmake ..
make install
last operation might require root privileges. An other possibility in Debian system is to install the package using the following command,
apt-get install libeigen3-dev
last operation might require root privileges.
TFHessian¶
The TFHessian package inside NumSA require tensorflow, numpy and scipy to work. When installing NumSA python package with the option Hessian pip will take care of installing all requirements. To install NumSA with the Hessian option run the following command inside the py folder,
pip install -e .[Hessian]
FEM¶
Suggested PETSc configuration,
./configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-fblaslapack --download-openmpi --download-mumps --download-scalapack --download-parmetis --download-metis --with-petsc4py=1
make all
make check
while SLEPc suggested configuration,
./configure --with-slepc4py=1
Bibliography¶
Halko, N., Martinsson, P.G. and Tropp, J.A., 2011. Finding structure with randomness: Probabilistic algorithms for constructing approximate matrix decompositions. SIAM review, 53(2), pp.217-288.
Safaryan, M., Islamov, R., Qian, X. and Richtárik, P., 2021. FedNL: Making Newton-Type Methods Applicable to Federated Learning. arXiv preprint arXiv:2106.02969.
He, J., Li, L., Xu, J. and Zheng, C., 2018. Relu deep neural networks and linear finite elements. arXiv preprint arXiv:1807.03973.
Yu, B., 2017. The deep Ritz method: a deep learning-based numerical algorithm for solving variational problems. arXiv preprint arXiv:1710.00211.