diff options
Diffstat (limited to 'python-pyamg.spec')
| -rw-r--r-- | python-pyamg.spec | 550 |
1 files changed, 550 insertions, 0 deletions
diff --git a/python-pyamg.spec b/python-pyamg.spec new file mode 100644 index 0000000..79e08df --- /dev/null +++ b/python-pyamg.spec @@ -0,0 +1,550 @@ +%global _empty_manifest_terminate_build 0 +Name: python-pyamg +Version: 4.2.3 +Release: 1 +Summary: PyAMG: Algebraic Multigrid Solvers in Python +License: MIT +URL: https://github.com/pyamg/pyamg +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/6d/1a/c6602b4e25093563c9f7a9b79fd462b2db9076043471588c96e307255fc2/pyamg-4.2.3.tar.gz + +Requires: python3-numpy +Requires: python3-scipy + +%description +[](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI+branch%3Amain) +[](https://pypi.python.org/pypi/pyamg/) +[](https://codecov.io/gh/pyamg/pyamg) + +# Installation +PyAMG requires `numpy` and `scipy` + +``` +pip install pyamg +``` + +or from source: + +``` +pip install . +``` + +(`python setup.py install` will no longer work) + +or with conda (see details below) + +``` +conda config --add channels conda-forge +conda install pyamg +``` + +# Introduction + +PyAMG is a library of **Algebraic Multigrid (AMG)** solvers with a convenient Python interface. + + + +PyAMG is currently developed by [Luke Olson](http://lukeo.cs.illinois.edu), and [Jacob Schroder](http://people.llnl.gov/schroder2). + +# Citing + +<pre> +@MISC{OlSc2018, + author = "Olson, L. N. and Schroder, J. B.", + title = "{PyAMG}: Algebraic Multigrid Solvers in {Python} v4.0", + year = "2018", + url = "https://github.com/pyamg/pyamg", + note = "Release 4.0" + } +</pre> + +# Getting Help + +- For documentation see [http://pyamg.readthedocs.io/en/latest/](http://pyamg.readthedocs.io/en/latest/). + +- Create an [issue](https://github.com/pyamg/pyamg/issues). + +- Look at the [Tutorial](https://github.com/pyamg/pyamg/wiki/Tutorial) or the [examples](https://github.com/pyamg/pyamg-examples) (for instance the [0_start_here](https://github.com/pyamg/pyamg-examples/blob/main/0_start_here/demo.py) example). + +- Run the unit tests (`pip install pytest`): + - With PyAMG installed and from a non-source directory: + ```python + import pyamg + pyamg.test() + ``` + - From the PyAMG source directory and installed (e.g. with `pip install -e .`): + ```python + pytest . + ``` + +# What is AMG? + + AMG is a multilevel technique for solving large-scale linear systems with optimal or near-optimal efficiency. Unlike geometric multigrid, AMG requires little or no geometric information about the underlying problem and develops a sequence of coarser grids directly from the input matrix. This feature is especially important for problems discretized on unstructured meshes and irregular grids. + +# PyAMG Features + +PyAMG features implementations of: + +- **Ruge-Stuben (RS)** or *Classical AMG* +- AMG based on **Smoothed Aggregation (SA)** + +and experimental support for: + +- **Adaptive Smoothed Aggregation (αSA)** +- **Compatible Relaxation (CR)** + +The predominant portion of PyAMG is written in Python with a smaller amount of supporting C++ code for performance critical operations. + +# Example Usage + +PyAMG is easy to use! The following code constructs a two-dimensional Poisson problem and solves the resulting linear system with Classical AMG. + +````python +import pyamg +import numpy as np +A = pyamg.gallery.poisson((500,500), format='csr') # 2D Poisson problem on 500x500 grid +ml = pyamg.ruge_stuben_solver(A) # construct the multigrid hierarchy +print(ml) # print hierarchy information +b = np.random.rand(A.shape[0]) # pick a random right hand side +x = ml.solve(b, tol=1e-10) # solve Ax=b to a tolerance of 1e-10 +print("residual: ", np.linalg.norm(b-A*x)) # compute norm of residual vector +```` + +Program output: + +<pre> +multilevel_solver +Number of Levels: 9 +Operator Complexity: 2.199 +Grid Complexity: 1.667 +Coarse Solver: 'pinv2' + level unknowns nonzeros + 0 250000 1248000 [45.47%] + 1 125000 1121002 [40.84%] + 2 31252 280662 [10.23%] + 3 7825 70657 [ 2.57%] + 4 1937 17971 [ 0.65%] + 5 483 4725 [ 0.17%] + 6 124 1352 [ 0.05%] + 7 29 293 [ 0.01%] + 8 7 41 [ 0.00%] + +residual: 1.24748994988e-08 +</pre> + +# Conda + +More information can be found at [conda-forge/pyamg-feedstock](https://github.com/conda-forge/pyamg-feedstock). + +*Linux:* +[](https://circleci.com/gh/conda-forge/pyamg-feedstock) + +*OSX:* +[](https://travis-ci.org/conda-forge/pyamg-feedstock) + +*Windows:* +[](https://ci.appveyor.com/project/conda-forge/pyamg-feedstock/branch/master) + +*Version:* +[](https://anaconda.org/conda-forge/pyamg) + +*Downloads:* +[](https://anaconda.org/conda-forge/pyamg) + +Installing `pyamg` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: + +``` +conda config --add channels conda-forge +``` + +Once the `conda-forge` channel has been enabled, `pyamg` can be installed with: + +``` +conda install pyamg +``` + +It is possible to list all of the versions of `pyamg` available on your platform with: + +``` +conda search pyamg --channel conda-forge +``` + + + + +%package -n python3-pyamg +Summary: PyAMG: Algebraic Multigrid Solvers in Python +Provides: python-pyamg +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +BuildRequires: python3-cffi +BuildRequires: gcc +BuildRequires: gdb +%description -n python3-pyamg +[](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI+branch%3Amain) +[](https://pypi.python.org/pypi/pyamg/) +[](https://codecov.io/gh/pyamg/pyamg) + +# Installation +PyAMG requires `numpy` and `scipy` + +``` +pip install pyamg +``` + +or from source: + +``` +pip install . +``` + +(`python setup.py install` will no longer work) + +or with conda (see details below) + +``` +conda config --add channels conda-forge +conda install pyamg +``` + +# Introduction + +PyAMG is a library of **Algebraic Multigrid (AMG)** solvers with a convenient Python interface. + + + +PyAMG is currently developed by [Luke Olson](http://lukeo.cs.illinois.edu), and [Jacob Schroder](http://people.llnl.gov/schroder2). + +# Citing + +<pre> +@MISC{OlSc2018, + author = "Olson, L. N. and Schroder, J. B.", + title = "{PyAMG}: Algebraic Multigrid Solvers in {Python} v4.0", + year = "2018", + url = "https://github.com/pyamg/pyamg", + note = "Release 4.0" + } +</pre> + +# Getting Help + +- For documentation see [http://pyamg.readthedocs.io/en/latest/](http://pyamg.readthedocs.io/en/latest/). + +- Create an [issue](https://github.com/pyamg/pyamg/issues). + +- Look at the [Tutorial](https://github.com/pyamg/pyamg/wiki/Tutorial) or the [examples](https://github.com/pyamg/pyamg-examples) (for instance the [0_start_here](https://github.com/pyamg/pyamg-examples/blob/main/0_start_here/demo.py) example). + +- Run the unit tests (`pip install pytest`): + - With PyAMG installed and from a non-source directory: + ```python + import pyamg + pyamg.test() + ``` + - From the PyAMG source directory and installed (e.g. with `pip install -e .`): + ```python + pytest . + ``` + +# What is AMG? + + AMG is a multilevel technique for solving large-scale linear systems with optimal or near-optimal efficiency. Unlike geometric multigrid, AMG requires little or no geometric information about the underlying problem and develops a sequence of coarser grids directly from the input matrix. This feature is especially important for problems discretized on unstructured meshes and irregular grids. + +# PyAMG Features + +PyAMG features implementations of: + +- **Ruge-Stuben (RS)** or *Classical AMG* +- AMG based on **Smoothed Aggregation (SA)** + +and experimental support for: + +- **Adaptive Smoothed Aggregation (αSA)** +- **Compatible Relaxation (CR)** + +The predominant portion of PyAMG is written in Python with a smaller amount of supporting C++ code for performance critical operations. + +# Example Usage + +PyAMG is easy to use! The following code constructs a two-dimensional Poisson problem and solves the resulting linear system with Classical AMG. + +````python +import pyamg +import numpy as np +A = pyamg.gallery.poisson((500,500), format='csr') # 2D Poisson problem on 500x500 grid +ml = pyamg.ruge_stuben_solver(A) # construct the multigrid hierarchy +print(ml) # print hierarchy information +b = np.random.rand(A.shape[0]) # pick a random right hand side +x = ml.solve(b, tol=1e-10) # solve Ax=b to a tolerance of 1e-10 +print("residual: ", np.linalg.norm(b-A*x)) # compute norm of residual vector +```` + +Program output: + +<pre> +multilevel_solver +Number of Levels: 9 +Operator Complexity: 2.199 +Grid Complexity: 1.667 +Coarse Solver: 'pinv2' + level unknowns nonzeros + 0 250000 1248000 [45.47%] + 1 125000 1121002 [40.84%] + 2 31252 280662 [10.23%] + 3 7825 70657 [ 2.57%] + 4 1937 17971 [ 0.65%] + 5 483 4725 [ 0.17%] + 6 124 1352 [ 0.05%] + 7 29 293 [ 0.01%] + 8 7 41 [ 0.00%] + +residual: 1.24748994988e-08 +</pre> + +# Conda + +More information can be found at [conda-forge/pyamg-feedstock](https://github.com/conda-forge/pyamg-feedstock). + +*Linux:* +[](https://circleci.com/gh/conda-forge/pyamg-feedstock) + +*OSX:* +[](https://travis-ci.org/conda-forge/pyamg-feedstock) + +*Windows:* +[](https://ci.appveyor.com/project/conda-forge/pyamg-feedstock/branch/master) + +*Version:* +[](https://anaconda.org/conda-forge/pyamg) + +*Downloads:* +[](https://anaconda.org/conda-forge/pyamg) + +Installing `pyamg` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: + +``` +conda config --add channels conda-forge +``` + +Once the `conda-forge` channel has been enabled, `pyamg` can be installed with: + +``` +conda install pyamg +``` + +It is possible to list all of the versions of `pyamg` available on your platform with: + +``` +conda search pyamg --channel conda-forge +``` + + + + +%package help +Summary: Development documents and examples for pyamg +Provides: python3-pyamg-doc +%description help +[](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI+branch%3Amain) +[](https://pypi.python.org/pypi/pyamg/) +[](https://codecov.io/gh/pyamg/pyamg) + +# Installation +PyAMG requires `numpy` and `scipy` + +``` +pip install pyamg +``` + +or from source: + +``` +pip install . +``` + +(`python setup.py install` will no longer work) + +or with conda (see details below) + +``` +conda config --add channels conda-forge +conda install pyamg +``` + +# Introduction + +PyAMG is a library of **Algebraic Multigrid (AMG)** solvers with a convenient Python interface. + + + +PyAMG is currently developed by [Luke Olson](http://lukeo.cs.illinois.edu), and [Jacob Schroder](http://people.llnl.gov/schroder2). + +# Citing + +<pre> +@MISC{OlSc2018, + author = "Olson, L. N. and Schroder, J. B.", + title = "{PyAMG}: Algebraic Multigrid Solvers in {Python} v4.0", + year = "2018", + url = "https://github.com/pyamg/pyamg", + note = "Release 4.0" + } +</pre> + +# Getting Help + +- For documentation see [http://pyamg.readthedocs.io/en/latest/](http://pyamg.readthedocs.io/en/latest/). + +- Create an [issue](https://github.com/pyamg/pyamg/issues). + +- Look at the [Tutorial](https://github.com/pyamg/pyamg/wiki/Tutorial) or the [examples](https://github.com/pyamg/pyamg-examples) (for instance the [0_start_here](https://github.com/pyamg/pyamg-examples/blob/main/0_start_here/demo.py) example). + +- Run the unit tests (`pip install pytest`): + - With PyAMG installed and from a non-source directory: + ```python + import pyamg + pyamg.test() + ``` + - From the PyAMG source directory and installed (e.g. with `pip install -e .`): + ```python + pytest . + ``` + +# What is AMG? + + AMG is a multilevel technique for solving large-scale linear systems with optimal or near-optimal efficiency. Unlike geometric multigrid, AMG requires little or no geometric information about the underlying problem and develops a sequence of coarser grids directly from the input matrix. This feature is especially important for problems discretized on unstructured meshes and irregular grids. + +# PyAMG Features + +PyAMG features implementations of: + +- **Ruge-Stuben (RS)** or *Classical AMG* +- AMG based on **Smoothed Aggregation (SA)** + +and experimental support for: + +- **Adaptive Smoothed Aggregation (αSA)** +- **Compatible Relaxation (CR)** + +The predominant portion of PyAMG is written in Python with a smaller amount of supporting C++ code for performance critical operations. + +# Example Usage + +PyAMG is easy to use! The following code constructs a two-dimensional Poisson problem and solves the resulting linear system with Classical AMG. + +````python +import pyamg +import numpy as np +A = pyamg.gallery.poisson((500,500), format='csr') # 2D Poisson problem on 500x500 grid +ml = pyamg.ruge_stuben_solver(A) # construct the multigrid hierarchy +print(ml) # print hierarchy information +b = np.random.rand(A.shape[0]) # pick a random right hand side +x = ml.solve(b, tol=1e-10) # solve Ax=b to a tolerance of 1e-10 +print("residual: ", np.linalg.norm(b-A*x)) # compute norm of residual vector +```` + +Program output: + +<pre> +multilevel_solver +Number of Levels: 9 +Operator Complexity: 2.199 +Grid Complexity: 1.667 +Coarse Solver: 'pinv2' + level unknowns nonzeros + 0 250000 1248000 [45.47%] + 1 125000 1121002 [40.84%] + 2 31252 280662 [10.23%] + 3 7825 70657 [ 2.57%] + 4 1937 17971 [ 0.65%] + 5 483 4725 [ 0.17%] + 6 124 1352 [ 0.05%] + 7 29 293 [ 0.01%] + 8 7 41 [ 0.00%] + +residual: 1.24748994988e-08 +</pre> + +# Conda + +More information can be found at [conda-forge/pyamg-feedstock](https://github.com/conda-forge/pyamg-feedstock). + +*Linux:* +[](https://circleci.com/gh/conda-forge/pyamg-feedstock) + +*OSX:* +[](https://travis-ci.org/conda-forge/pyamg-feedstock) + +*Windows:* +[](https://ci.appveyor.com/project/conda-forge/pyamg-feedstock/branch/master) + +*Version:* +[](https://anaconda.org/conda-forge/pyamg) + +*Downloads:* +[](https://anaconda.org/conda-forge/pyamg) + +Installing `pyamg` from the `conda-forge` channel can be achieved by adding `conda-forge` to your channels with: + +``` +conda config --add channels conda-forge +``` + +Once the `conda-forge` channel has been enabled, `pyamg` can be installed with: + +``` +conda install pyamg +``` + +It is possible to list all of the versions of `pyamg` available on your platform with: + +``` +conda search pyamg --channel conda-forge +``` + + + + +%prep +%autosetup -n pyamg-4.2.3 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-pyamg -f filelist.lst +%dir %{python3_sitearch}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 4.2.3-1 +- Package Spec generated |
