summaryrefslogtreecommitdiff
path: root/python-pyamg.spec
diff options
context:
space:
mode:
Diffstat (limited to 'python-pyamg.spec')
-rw-r--r--python-pyamg.spec550
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
+[![CI](https://github.com/pyamg/pyamg/workflows/CI/badge.svg)](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI+branch%3Amain)
+[![PyPi](https://img.shields.io/pypi/pyversions/pyamg.svg?style=flat-square)](https://pypi.python.org/pypi/pyamg/)
+[![codecov](https://codecov.io/gh/pyamg/pyamg/branch/main/graph/badge.svg?token=JpRo1gdALC)](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.
+
+![](https://raw.githubusercontent.com/pyamg/pyamg/main/docs/logo/pyamg_logo_withtext.png)
+
+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:*
+[![Circle CI](https://circleci.com/gh/conda-forge/pyamg-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/pyamg-feedstock)
+
+*OSX:*
+[![TravisCI](https://travis-ci.org/conda-forge/pyamg-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/pyamg-feedstock)
+
+*Windows:*
+[![AppVeyor](https://ci.appveyor.com/api/projects/status/github/conda-forge/pyamg-feedstock?svg=True)](https://ci.appveyor.com/project/conda-forge/pyamg-feedstock/branch/master)
+
+*Version:*
+[![Anaconda-Server Badge](https://anaconda.org/conda-forge/pyamg/badges/version.svg)](https://anaconda.org/conda-forge/pyamg)
+
+*Downloads:*
+[![Anaconda-Server Badge](https://anaconda.org/conda-forge/pyamg/badges/downloads.svg)](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
+[![CI](https://github.com/pyamg/pyamg/workflows/CI/badge.svg)](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI+branch%3Amain)
+[![PyPi](https://img.shields.io/pypi/pyversions/pyamg.svg?style=flat-square)](https://pypi.python.org/pypi/pyamg/)
+[![codecov](https://codecov.io/gh/pyamg/pyamg/branch/main/graph/badge.svg?token=JpRo1gdALC)](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.
+
+![](https://raw.githubusercontent.com/pyamg/pyamg/main/docs/logo/pyamg_logo_withtext.png)
+
+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:*
+[![Circle CI](https://circleci.com/gh/conda-forge/pyamg-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/pyamg-feedstock)
+
+*OSX:*
+[![TravisCI](https://travis-ci.org/conda-forge/pyamg-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/pyamg-feedstock)
+
+*Windows:*
+[![AppVeyor](https://ci.appveyor.com/api/projects/status/github/conda-forge/pyamg-feedstock?svg=True)](https://ci.appveyor.com/project/conda-forge/pyamg-feedstock/branch/master)
+
+*Version:*
+[![Anaconda-Server Badge](https://anaconda.org/conda-forge/pyamg/badges/version.svg)](https://anaconda.org/conda-forge/pyamg)
+
+*Downloads:*
+[![Anaconda-Server Badge](https://anaconda.org/conda-forge/pyamg/badges/downloads.svg)](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
+[![CI](https://github.com/pyamg/pyamg/workflows/CI/badge.svg)](https://github.com/pyamg/pyamg/actions?query=workflow%3ACI+branch%3Amain)
+[![PyPi](https://img.shields.io/pypi/pyversions/pyamg.svg?style=flat-square)](https://pypi.python.org/pypi/pyamg/)
+[![codecov](https://codecov.io/gh/pyamg/pyamg/branch/main/graph/badge.svg?token=JpRo1gdALC)](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.
+
+![](https://raw.githubusercontent.com/pyamg/pyamg/main/docs/logo/pyamg_logo_withtext.png)
+
+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:*
+[![Circle CI](https://circleci.com/gh/conda-forge/pyamg-feedstock.svg?style=shield)](https://circleci.com/gh/conda-forge/pyamg-feedstock)
+
+*OSX:*
+[![TravisCI](https://travis-ci.org/conda-forge/pyamg-feedstock.svg?branch=master)](https://travis-ci.org/conda-forge/pyamg-feedstock)
+
+*Windows:*
+[![AppVeyor](https://ci.appveyor.com/api/projects/status/github/conda-forge/pyamg-feedstock?svg=True)](https://ci.appveyor.com/project/conda-forge/pyamg-feedstock/branch/master)
+
+*Version:*
+[![Anaconda-Server Badge](https://anaconda.org/conda-forge/pyamg/badges/version.svg)](https://anaconda.org/conda-forge/pyamg)
+
+*Downloads:*
+[![Anaconda-Server Badge](https://anaconda.org/conda-forge/pyamg/badges/downloads.svg)](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