Skip to content

Commit

Permalink
Documentation of the libraries
Browse files Browse the repository at this point in the history
  • Loading branch information
otvam committed Mar 7, 2023
1 parent a021752 commit 1cf6cb3
Show file tree
Hide file tree
Showing 7 changed files with 38 additions and 52 deletions.
11 changes: 4 additions & 7 deletions conda.yaml
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
# Definition of the Conda Environment.
#
# WARNING: The GPU libraries (CUDA, CuPy) should be installed separately.
# These libraries are not included in the Conda Environment.
# The GPU support is extremely platform/version dependent.
#
# WARNING: Jupyter is not included in the Conda Environment.
#
# WARNING: FFTW and UMFPACK are not included in the Conda Environment.
# WARNING: Only the required packages are in the environment.
# The following optional libraries are not installed:
# - Jupyter and Trame
# - CuPy, FFTW, UMFPACK, and MKL/PARDISO
#
# (c) Thomas Guillod - Dartmouth College

Expand Down
22 changes: 13 additions & 9 deletions docs/technical.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,20 @@ Afterwards, a custom configuration (JSON or YAML) file can be set:
> **Warning**: The plotting code is likely sensitive to the environment (platform and the version of the libraries).
> More particularly, the interactions between **Qt/PyVista/Matplotlib** and **Jupyter/PyVista/Matplotlib**.
> Therefore, the Qt/Jupyter dependencies are minimized and insulated from the rest of the code.
> The plotting code (viewer and plotter) is separated from the simulation code (mesher and solver).
> **Warning**: The optional **GPU libraries** (CUDA, CuPy) should be installed separately.
> These libraries are not included in the package dependencies and environments.
> The GPU support is extremely platform/version dependent (GPU type and CUDA version).
> **Warning**: **Jupyter** is not included in the package dependencies.
> For Jupyter, PyVista has to be installed with the optional Trame support.
> Jupyter support is optional, PyPEEC is fully functional without Jupyter.
> **Warning**: **Jupyter** is not included in the package dependencies and environments.
> **Warning**: The **GPU** libraries (CUDA, CuPy) are not included in the package dependencies.
> The GPU support is extremely hardware/platform/version dependent).
> GPU support is optional, PyPEEC is fully functional without GPU support.
> **Warning**: The optional **UMFPACK** library is known to be difficult to install on MS Windows.
> **Warning**: The optional **FFTW** library should be compiled with multithreading support.
> **Warning**: **FFTW**, **UMFPACK**, and **MKL/PARDISO** are not included in the package dependencies.
> These libraries can be tricky to install, especially on MS Windows.
> Make sure that these libraries are compiled with multithreading support.
> FFTW, UMFPACK, and MKL/PARDISO are optional, PyPEEC is fully functional without them.
# General Warnings

Expand All @@ -92,5 +96,5 @@ Afterwards, a custom configuration (JSON or YAML) file can be set:
> Only load Pickle files that you trust.
> Do not commit the Pickle files in the Git repository.
> **Warning**: Some dependencies are under copyleft licences.
> Make sure to respect these licenses if you package these libraries.
> **Warning**: Some dependencies are under various licences (including copyleft and non-free).
> Make sure to respect these licenses if you package and/or distribute these libraries.
4 changes: 2 additions & 2 deletions examples/run_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -297,8 +297,8 @@ def get_data_tolerance():
factorization_options = {
# matrix factorization options
# - SuperLU is typically slower but is always available (integrated with SciPy)
# - UMFPACK is typically faster but has to be installed separately
# - PARDISO is typically faster but has to be installed separately
# - UMFPACK is typically faster than SuperLU (with SciKits)
# - PARDISO is typically faster than UMFPACK (with Pydiso)
# - GCROT is quite unstable but has low memory requirements (integrated with SciPy)
# - BICG is quite unstable but has low memory requirements (integrated with SciPy)
# - GMRES is quite unstable but has low memory requirements (integrated with SciPy)
Expand Down
6 changes: 3 additions & 3 deletions pypeec/lib_matrix/fourier_transform.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
"""
Module for computer FFT/iFFT of tensors.
This module is used as a common interface for different FFT libraries:
- NumPy FFT library
- SciPy FFT library
- FFTW FFT library (available through pyFFTW)
WARNING: Not all versions of FFTW are compiled with multithreading support.
- CuPy FFT library (computation with GPUs)
"""

__author__ = "Thomas Guillod"
Expand Down
23 changes: 7 additions & 16 deletions pypeec/lib_matrix/matrix_factorization.py
Original file line number Diff line number Diff line change
@@ -1,22 +1,13 @@
"""
Module for factorizing sparse matrix.
This module is used as a common interface for different solvers:
- SuperLU: built-in library (with SciPy)
- UMFPACK: extra library (with SciKits)
- PARDISO: extra library (with Pydiso)
- GCROT: built-in library (with SciPy)
- BICG: built-in library (with SciPy)
- GMRES: built-in library (with SciPy)
SuperLU is available on all platforms and easy to install.
UMFPACK and PARDISO need to be installed separately.
GCROT, BICG, and GMRES are iterative solvers and are used without preconditioner.
Therefore, these solvers are typically unstable and should only be used for particular problems.
WARNING: UMFPACK is difficult to install on MS Windows.
WARNING: PARDISO is difficult to install on MS Windows.
This module is used as a common interface for different solvers:
- SuperLU is typically slower but is always available (integrated with SciPy)
- UMFPACK is typically faster than SuperLU (with SciKits)
- PARDISO is typically faster than UMFPACK (with Pydiso)
- GCROT is quite unstable but has low memory requirements (integrated with SciPy)
- BICG is quite unstable but has low memory requirements (integrated with SciPy)
- GMRES is quite unstable but has low memory requirements (integrated with SciPy)
"""

__author__ = "Thomas Guillod"
Expand Down
11 changes: 4 additions & 7 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
# Definition of the Python Virtual Environment.
#
# WARNING: The GPU libraries (CUDA, CuPy) should be installed separately.
# These libraries are not included in the Python Virtual Environment.
# The GPU support is extremely platform/version dependent.
#
# WARNING: Jupyter is not included in the Python Virtual Environment.
#
# WARNING: FFTW and UMFPACK are not included in the Python Virtual Environment.
# WARNING: Only the required packages are in the environment.
# The following optional libraries are not installed:
# - Jupyter and Trame
# - CuPy, FFTW, UMFPACK, and MKL/PARDISO
#
# (c) Thomas Guillod - Dartmouth College

Expand Down
13 changes: 5 additions & 8 deletions setup.cfg
Original file line number Diff line number Diff line change
@@ -1,18 +1,15 @@
# Configuration file for defining the package data.
#
# WARNING: The GPU libraries (CUDA, CuPy) should be installed separately.
# These libraries are not included in the package dependencies.
# The GPU support is extremely platform/version dependent.
#
# WARNING: Jupyter is not included in the Python Virtual Environment.
#
# WARNING: FFTW and UMFPACK are not included in the Python Virtual Environment.
# WARNING: Only the required packages are listed as the package dependencies.
# The following optional libraries are not installed:
# - Jupyter and Trame
# - CuPy, FFTW, UMFPACK, and MKL/PARDISO
#
# (c) Thomas Guillod - Dartmouth College

[metadata]
name = pypeec
description = PyPEEC - 3D PEEC Solver
description = PyPEEC - 3D PEEC Solve
license = All rights reserved
author = Thomas Guillod
author_email = [email protected]
Expand Down

0 comments on commit 1cf6cb3

Please sign in to comment.