pyMOTO 1.0.1__tar.gz → 1.0.2rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/PKG-INFO +10 -24
  2. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/README.md +9 -23
  3. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pyMOTO.egg-info/PKG-INFO +10 -24
  4. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pyMOTO.egg-info/SOURCES.txt +2 -5
  5. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/__init__.py +5 -3
  6. pyMOTO-1.0.2rc1/pymoto/common/mma.py +554 -0
  7. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/core_objects.py +23 -19
  8. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/modules/assembly.py +22 -10
  9. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/modules/generic.py +21 -0
  10. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/modules/linalg.py +87 -9
  11. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/routines.py +21 -62
  12. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/utils.py +8 -0
  13. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/tests/test_automod.py +8 -0
  14. pyMOTO-1.0.2rc1/tests/test_module_concatsignal.py +43 -0
  15. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/LICENSE +0 -0
  16. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pyMOTO.egg-info/dependency_links.txt +0 -0
  17. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pyMOTO.egg-info/requires.txt +0 -0
  18. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pyMOTO.egg-info/top_level.txt +0 -0
  19. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pyMOTO.egg-info/zip-safe +0 -0
  20. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/common/domain.py +0 -0
  21. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/common/dyadcarrier.py +0 -0
  22. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/common/solvers.py +0 -0
  23. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/common/solvers_dense.py +0 -0
  24. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/common/solvers_sparse.py +0 -0
  25. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/modules/autodiff.py +0 -0
  26. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/modules/complex.py +0 -0
  27. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/modules/filter.py +0 -0
  28. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pymoto/modules/io.py +0 -0
  29. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/pyproject.toml +0 -0
  30. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/setup.cfg +0 -0
  31. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/tests/test_complex.py +0 -0
  32. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/tests/test_core.py +0 -0
  33. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/tests/test_dyadcarrier.py +0 -0
  34. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/tests/test_module_eigensolve.py +0 -0
  35. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/tests/test_module_einsum.py +0 -0
  36. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/tests/test_module_mathgeneral.py +0 -0
  37. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/tests/test_solvers_dense.py +0 -0
  38. {pyMOTO-1.0.1 → pyMOTO-1.0.2rc1}/tests/test_solvers_sparse.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyMOTO
3
- Version: 1.0.1
3
+ Version: 1.0.2rc1
4
4
  Summary: Example package description
5
5
  Home-page: https://github.com/aatmdelissen/pyMOTO
6
6
  Author: Arnoud Delissen
@@ -15,6 +15,8 @@ Description-Content-Type: text/markdown
15
15
  Provides-Extra: dev
16
16
  License-File: LICENSE
17
17
 
18
+ [![10.5281/zenodo.7708738](https://zenodo.org/badge/DOI/10.5281/zenodo.7708738.svg)](https://doi.org/10.5281/zenodo.7708738)
19
+
18
20
  # pyMOTO
19
21
 
20
22
  * [Link to Documentation](https://pymoto.readthedocs.io)
@@ -54,35 +56,19 @@ A local installation for development in `pyMOTO` can be done by first downloadin
54
56
  * **SymPy** - Symbolic differentiation for `MathGeneral` module
55
57
  * **Matplotlib** - Plotting and visualisation
56
58
  * (optional) **SAO** - Sequential approximated optimizers
57
- * (optional) **opt_einsum** - Optimized function for `EinSum` module
59
+ * (optional) [**opt_einsum**](https://optimized-einsum.readthedocs.io/en/stable/install.html) - Optimized function for `EinSum` module
58
60
 
59
61
  For fast linear solvers for sparse matrices:
60
- * (optional) **scikit-umfpack** - Fast LU linear solver based on UMFPACK
61
- * (optional) **sksparse** - Fast Cholesky solver based on CHOLMOD
62
- * (optional) **CVXopt** - Another fast Cholesky solver based on CHOLMOD
63
- * (optional) **Intel OneAPI** - Non-python library with a fast PARDISO solver
62
+ * (optional) [**pypardiso**](https://github.com/haasad/PyPardisoProject) - Uses the Intel OneAPI PARDISO solver (recommended)
63
+ * (optional) [**scikit-umfpack**](https://scikit-umfpack.github.io/scikit-umfpack/install.html) - Fast LU linear solver based on UMFPACK
64
+ * (optional) [**scikit-sparse**](https://github.com/scikit-sparse/scikit-sparse) - Fast Cholesky solver based on CHOLMOD
65
+ * (optional) [**cvxopt**](https://cvxopt.org/install/index.html) - Another fast Cholesky solver based on CHOLMOD
64
66
 
65
67
  __Note on linear solvers for sparse matrices:__ Scipy implements a version of LU which is quite slow. To increase the
66
- speed of the optimization, `Intel OneAPI` is recommended as it contains a very robust and flexible solver for symmetric
68
+ speed of the optimization, `pypardiso` is recommended as it contains a very robust and flexible solver for symmetric
67
69
  and asymmetric matrices. An alternative is `scikit-umfpack` which provides a fast LU factorization. For symmetric
68
70
  matrices a Cholesky factorization is recommended (not provided with Scipy), which can be used by either installing
69
- `sksparse` or `cvxopt`.
70
-
71
-
72
- ## How to make Python fast with Intel OneAPI
73
- Intel provides a toolkit with many fast math operations and solvers called OneAPI (basekit).
74
- It can easily be installed on Linux by for instance following the steps described in https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/apt.html
75
- For other OSes installation can be found in https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html
76
-
77
- The nice thing about OneAPI is that it also includes an optimized version of Python. To use it follow the next steps (Linux)
78
-
79
- 1. `source <intel install location>/intel/oneapi/setvars.sh` (usually installed in `/opt/intel` or `/opt/ud/intel`). This loads the Intel OneAPI package.
80
- 2. `conda create --name <venv_name> --clone base` to create a new conda virtual environment to work in.
81
- 3. `conda activate <venv_name>` to activate the virtual environment.
82
-
83
- ### Usage of multi-thread linear solvers
84
- Intel has a Pardiso type linear solver for fast solution of large systems.
85
- To use it.....
71
+ `scikit-sparse` or `cvxopt`.
86
72
 
87
73
  # License
88
74
  pyMOTO is available under te [MIT License](https://opensource.org/licenses/MIT).
@@ -1,3 +1,5 @@
1
+ [![10.5281/zenodo.7708738](https://zenodo.org/badge/DOI/10.5281/zenodo.7708738.svg)](https://doi.org/10.5281/zenodo.7708738)
2
+
1
3
  # pyMOTO
2
4
 
3
5
  * [Link to Documentation](https://pymoto.readthedocs.io)
@@ -37,35 +39,19 @@ A local installation for development in `pyMOTO` can be done by first downloadin
37
39
  * **SymPy** - Symbolic differentiation for `MathGeneral` module
38
40
  * **Matplotlib** - Plotting and visualisation
39
41
  * (optional) **SAO** - Sequential approximated optimizers
40
- * (optional) **opt_einsum** - Optimized function for `EinSum` module
42
+ * (optional) [**opt_einsum**](https://optimized-einsum.readthedocs.io/en/stable/install.html) - Optimized function for `EinSum` module
41
43
 
42
44
  For fast linear solvers for sparse matrices:
43
- * (optional) **scikit-umfpack** - Fast LU linear solver based on UMFPACK
44
- * (optional) **sksparse** - Fast Cholesky solver based on CHOLMOD
45
- * (optional) **CVXopt** - Another fast Cholesky solver based on CHOLMOD
46
- * (optional) **Intel OneAPI** - Non-python library with a fast PARDISO solver
45
+ * (optional) [**pypardiso**](https://github.com/haasad/PyPardisoProject) - Uses the Intel OneAPI PARDISO solver (recommended)
46
+ * (optional) [**scikit-umfpack**](https://scikit-umfpack.github.io/scikit-umfpack/install.html) - Fast LU linear solver based on UMFPACK
47
+ * (optional) [**scikit-sparse**](https://github.com/scikit-sparse/scikit-sparse) - Fast Cholesky solver based on CHOLMOD
48
+ * (optional) [**cvxopt**](https://cvxopt.org/install/index.html) - Another fast Cholesky solver based on CHOLMOD
47
49
 
48
50
  __Note on linear solvers for sparse matrices:__ Scipy implements a version of LU which is quite slow. To increase the
49
- speed of the optimization, `Intel OneAPI` is recommended as it contains a very robust and flexible solver for symmetric
51
+ speed of the optimization, `pypardiso` is recommended as it contains a very robust and flexible solver for symmetric
50
52
  and asymmetric matrices. An alternative is `scikit-umfpack` which provides a fast LU factorization. For symmetric
51
53
  matrices a Cholesky factorization is recommended (not provided with Scipy), which can be used by either installing
52
- `sksparse` or `cvxopt`.
53
-
54
-
55
- ## How to make Python fast with Intel OneAPI
56
- Intel provides a toolkit with many fast math operations and solvers called OneAPI (basekit).
57
- It can easily be installed on Linux by for instance following the steps described in https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/apt.html
58
- For other OSes installation can be found in https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html
59
-
60
- The nice thing about OneAPI is that it also includes an optimized version of Python. To use it follow the next steps (Linux)
61
-
62
- 1. `source <intel install location>/intel/oneapi/setvars.sh` (usually installed in `/opt/intel` or `/opt/ud/intel`). This loads the Intel OneAPI package.
63
- 2. `conda create --name <venv_name> --clone base` to create a new conda virtual environment to work in.
64
- 3. `conda activate <venv_name>` to activate the virtual environment.
65
-
66
- ### Usage of multi-thread linear solvers
67
- Intel has a Pardiso type linear solver for fast solution of large systems.
68
- To use it.....
54
+ `scikit-sparse` or `cvxopt`.
69
55
 
70
56
  # License
71
57
  pyMOTO is available under te [MIT License](https://opensource.org/licenses/MIT).
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pyMOTO
3
- Version: 1.0.1
3
+ Version: 1.0.2rc1
4
4
  Summary: Example package description
5
5
  Home-page: https://github.com/aatmdelissen/pyMOTO
6
6
  Author: Arnoud Delissen
@@ -15,6 +15,8 @@ Description-Content-Type: text/markdown
15
15
  Provides-Extra: dev
16
16
  License-File: LICENSE
17
17
 
18
+ [![10.5281/zenodo.7708738](https://zenodo.org/badge/DOI/10.5281/zenodo.7708738.svg)](https://doi.org/10.5281/zenodo.7708738)
19
+
18
20
  # pyMOTO
19
21
 
20
22
  * [Link to Documentation](https://pymoto.readthedocs.io)
@@ -54,35 +56,19 @@ A local installation for development in `pyMOTO` can be done by first downloadin
54
56
  * **SymPy** - Symbolic differentiation for `MathGeneral` module
55
57
  * **Matplotlib** - Plotting and visualisation
56
58
  * (optional) **SAO** - Sequential approximated optimizers
57
- * (optional) **opt_einsum** - Optimized function for `EinSum` module
59
+ * (optional) [**opt_einsum**](https://optimized-einsum.readthedocs.io/en/stable/install.html) - Optimized function for `EinSum` module
58
60
 
59
61
  For fast linear solvers for sparse matrices:
60
- * (optional) **scikit-umfpack** - Fast LU linear solver based on UMFPACK
61
- * (optional) **sksparse** - Fast Cholesky solver based on CHOLMOD
62
- * (optional) **CVXopt** - Another fast Cholesky solver based on CHOLMOD
63
- * (optional) **Intel OneAPI** - Non-python library with a fast PARDISO solver
62
+ * (optional) [**pypardiso**](https://github.com/haasad/PyPardisoProject) - Uses the Intel OneAPI PARDISO solver (recommended)
63
+ * (optional) [**scikit-umfpack**](https://scikit-umfpack.github.io/scikit-umfpack/install.html) - Fast LU linear solver based on UMFPACK
64
+ * (optional) [**scikit-sparse**](https://github.com/scikit-sparse/scikit-sparse) - Fast Cholesky solver based on CHOLMOD
65
+ * (optional) [**cvxopt**](https://cvxopt.org/install/index.html) - Another fast Cholesky solver based on CHOLMOD
64
66
 
65
67
  __Note on linear solvers for sparse matrices:__ Scipy implements a version of LU which is quite slow. To increase the
66
- speed of the optimization, `Intel OneAPI` is recommended as it contains a very robust and flexible solver for symmetric
68
+ speed of the optimization, `pypardiso` is recommended as it contains a very robust and flexible solver for symmetric
67
69
  and asymmetric matrices. An alternative is `scikit-umfpack` which provides a fast LU factorization. For symmetric
68
70
  matrices a Cholesky factorization is recommended (not provided with Scipy), which can be used by either installing
69
- `sksparse` or `cvxopt`.
70
-
71
-
72
- ## How to make Python fast with Intel OneAPI
73
- Intel provides a toolkit with many fast math operations and solvers called OneAPI (basekit).
74
- It can easily be installed on Linux by for instance following the steps described in https://www.intel.com/content/www/us/en/develop/documentation/installation-guide-for-intel-oneapi-toolkits-linux/top/installation/install-using-package-managers/apt.html
75
- For other OSes installation can be found in https://www.intel.com/content/www/us/en/developer/articles/guide/installation-guide-for-oneapi-toolkits.html
76
-
77
- The nice thing about OneAPI is that it also includes an optimized version of Python. To use it follow the next steps (Linux)
78
-
79
- 1. `source <intel install location>/intel/oneapi/setvars.sh` (usually installed in `/opt/intel` or `/opt/ud/intel`). This loads the Intel OneAPI package.
80
- 2. `conda create --name <venv_name> --clone base` to create a new conda virtual environment to work in.
81
- 3. `conda activate <venv_name>` to activate the virtual environment.
82
-
83
- ### Usage of multi-thread linear solvers
84
- Intel has a Pardiso type linear solver for fast solution of large systems.
85
- To use it.....
71
+ `scikit-sparse` or `cvxopt`.
86
72
 
87
73
  # License
88
74
  pyMOTO is available under te [MIT License](https://opensource.org/licenses/MIT).
@@ -12,13 +12,9 @@ pymoto/__init__.py
12
12
  pymoto/core_objects.py
13
13
  pymoto/routines.py
14
14
  pymoto/utils.py
15
- pymoto.egg-info/PKG-INFO
16
- pymoto.egg-info/SOURCES.txt
17
- pymoto.egg-info/dependency_links.txt
18
- pymoto.egg-info/requires.txt
19
- pymoto.egg-info/top_level.txt
20
15
  pymoto/common/domain.py
21
16
  pymoto/common/dyadcarrier.py
17
+ pymoto/common/mma.py
22
18
  pymoto/common/solvers.py
23
19
  pymoto/common/solvers_dense.py
24
20
  pymoto/common/solvers_sparse.py
@@ -33,6 +29,7 @@ tests/test_automod.py
33
29
  tests/test_complex.py
34
30
  tests/test_core.py
35
31
  tests/test_dyadcarrier.py
32
+ tests/test_module_concatsignal.py
36
33
  tests/test_module_eigensolve.py
37
34
  tests/test_module_einsum.py
38
35
  tests/test_module_mathgeneral.py
@@ -1,4 +1,4 @@
1
- __version__ = '1.0.1'
1
+ __version__ = '1.0.2-rc1'
2
2
 
3
3
  from .core_objects import Signal, Module, Network, make_signals
4
4
  from .routines import finite_difference, minimize_oc, minimize_mma
@@ -6,13 +6,14 @@ from .routines import finite_difference, minimize_oc, minimize_mma
6
6
  # Imports from common
7
7
  from .common.dyadcarrier import DyadCarrier
8
8
  from .common.domain import DomainDefinition
9
+ from .common.mma import MMA
9
10
  from .common.solvers import matrix_is_complex, matrix_is_diagonal, matrix_is_symmetric, matrix_is_hermitian, \
10
11
  LinearSolver, LDAWrapper
11
12
  from .common.solvers_dense import SolverDiagonal, SolverDenseQR, SolverDenseLU, SolverDenseCholesky, SolverDenseLDL
12
13
  from .common.solvers_sparse import SolverSparsePardiso, SolverSparseLU, SolverSparseCholeskyScikit, SolverSparseCholeskyCVXOPT
13
14
 
14
15
  # Import from modules
15
- from .modules.generic import MathGeneral, EinSum
16
+ from .modules.generic import MathGeneral, EinSum, ConcatSignal
16
17
  from .modules.linalg import Inverse, LinSolve, EigenSolve
17
18
  from .modules.assembly import AssembleGeneral, AssembleStiffness, AssembleMass
18
19
  from .modules.filter import FilterConv, Filter, DensityFilter, OverhangFilter
@@ -24,6 +25,7 @@ __all__ = [
24
25
  'Signal', 'Module', 'Network', 'make_signals',
25
26
  'finite_difference', 'minimize_oc', 'minimize_mma',
26
27
  # Common
28
+ 'MMA',
27
29
  'DyadCarrier',
28
30
  'DomainDefinition',
29
31
  'matrix_is_complex', 'matrix_is_diagonal', 'matrix_is_symmetric', 'matrix_is_hermitian',
@@ -31,7 +33,7 @@ __all__ = [
31
33
  'SolverDiagonal', 'SolverDenseQR', 'SolverDenseLU', 'SolverDenseCholesky', 'SolverDenseLDL',
32
34
  'SolverSparsePardiso', 'SolverSparseLU', 'SolverSparseCholeskyScikit', 'SolverSparseCholeskyCVXOPT',
33
35
  # Modules
34
- "MathGeneral", "EinSum",
36
+ "MathGeneral", "EinSum", "ConcatSignal",
35
37
  "Inverse", "LinSolve", "EigenSolve",
36
38
  "AssembleGeneral", "AssembleStiffness", "AssembleMass",
37
39
  "FilterConv", "Filter", "DensityFilter", "OverhangFilter",