Skip to content

Commit

Permalink
added numpy, scipy, matplotlib citations.
Browse files Browse the repository at this point in the history
  • Loading branch information
victoraalves committed Feb 6, 2024
1 parent 2211cd6 commit 2f3be29
Show file tree
Hide file tree
Showing 2 changed files with 187 additions and 1 deletion.
2 changes: 1 addition & 1 deletion paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ of industrial processes, which are inherently with loss of generality. The use o
is generalizable to any process, as long as a mathematical model of the given application is available.
Hence, the introduction of ``opyrability`` in Python, a widely used and freely available programming language, is a significant advancement in the process operability field. Being open-source and hosted in a community-driven environment, it offers a valuable resource to the process systems engineering, computational catalysis and material sciences communities that would benefit from operability direct/inverse mappings. This package empowers researchers and practitioners to easily investigate the operability aspects of both emerging and existing large-scale industrial processes. Additionally, on a lab scale, it can aid in the examination of material properties that guide design decisions, such as reactions rate and membrane parameters that would be needed to reach certain product specifications.

Moreover, ``opyrability`` is built on well-known and developed packages such as (i) [numpy](https://numpy.org/) and (ii) [scipy](https://scipy.org/) for linear algebra and scientific computing; (iii) [matplotlib](https://matplotlib.org/) for visualizing the operable regions in 2D/3D; (iv) [cvxopt](https://cvxopt.org/) that allows access to
Moreover, ``opyrability`` is built on well-known and developed packages such as (i) numpy [@Harris2020] and (ii) scipy [@Virtanen2020] for linear algebra and scientific computing; (iii) matplotlib [@Hunter2007]for visualizing the operable regions in 2D/3D; (iv) [cvxopt](https://cvxopt.org/) that allows access to
[glpk](https://www.gnu.org/software/glpk/) for linear programming; (v) [polytope](https://tulip-control.github.io/polytope/) that enables efficient polytopic calculations; and (vi) [cyipopt](https://cyipopt.readthedocs.io/en/latest/?badge=latest) that allows access to IPOPT [@Wachter2006], a state-of-the-art
nonlinear programming solver, enabling efficient inverse mapping operations within the operability framework. The inverse mapping task is further extended with full support for automatic differentiation, powered by JAX [@jax2018github]. This effort thus facilitates the
dissemination of operability concepts and calculations in process systems engineering and other fields. \autoref{fig:fig1}
Expand Down
186 changes: 186 additions & 0 deletions paper/references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -516,4 +516,190 @@ @article{alves22
author = {Victor Alves and Vitor Gazzaneo and Fernando V. Lima},
keywords = {Process operability, Machine learning, Kriging, Gaussian process regression, Surrogate modeling},
abstract = {The objective in this work is to develop a machine learning-based framework for process operability using surrogate responses based on Kriging (also known as Gaussian Process Regression). Currently, the available operability approaches for nonlinear systems are limited by the problem dimensionality that they can address, not being computationally tractable for high-dimensional systems. The proposed approach will use Kriging-based models to substitute the developed first-principles or process simulation-based models. The built surrogate models can generate responses that are comparable to the first-principles nonlinear models in terms of accuracy, while reducing the computational effort. To achieve this goal, a framework for the systematic analysis of highly nonlinear, large-dimensional systems at steady state is developed. The proposed approach is benchmarked against current operability methods and provides a new direction in the process operability field employing Kriging models. Two case studies associated with natural/shale gas conversion are addressed to illustrate the effectiveness of the proposed methods, namely a membrane reactor for direct methane conversion to fuels and chemicals and a natural gas combined cycle power plant. It is shown that the computational time for operability calculations is significantly decreased when using the developed approach, with reductions of up to four orders of magnitude, while the relative errors with respect to the output responses is below 0.3\% for the worst-case scenario considering all cases. This work thus contributes to machine learning formulations and algorithms for process operability to enable the improved design, operations and manufacturing of chemical and energy systems.}
}


@Article{Harris2020,
author={Harris, Charles R.
and Millman, K. Jarrod
and van der Walt, St{\'e}fan J.
and Gommers, Ralf
and Virtanen, Pauli
and Cournapeau, David
and Wieser, Eric
and Taylor, Julian
and Berg, Sebastian
and Smith, Nathaniel J.
and Kern, Robert
and Picus, Matti
and Hoyer, Stephan
and van Kerkwijk, Marten H.
and Brett, Matthew
and Haldane, Allan
and del R{\'i}o, Jaime Fern{\'a}ndez
and Wiebe, Mark
and Peterson, Pearu
and G{\'e}rard-Marchant, Pierre
and Sheppard, Kevin
and Reddy, Tyler
and Weckesser, Warren
and Abbasi, Hameer
and Gohlke, Christoph
and Oliphant, Travis E.},
title={Array programming with NumPy},
journal={Nature},
year={2020},
month={Sep},
day={01},
volume={585},
number={7825},
pages={357-362},
abstract={Array programming provides a powerful, compact and expressive syntax for accessing, manipulating and operating on data in vectors, matrices and higher-dimensional arrays. NumPy is the primary array programming library for the Python language. It has an essential role in research analysis pipelines in fields as diverse as physics, chemistry, astronomy, geoscience, biology, psychology, materials science, engineering, finance and economics. For example, in astronomy, NumPy was an important part of the software stack used in the discovery of gravitational waves1 and in the first imaging of a black hole2. Here we review how a few fundamental array concepts lead to a simple and powerful programming paradigm for organizing, exploring and analysing scientific data. NumPy is the foundation upon which the scientific Python ecosystem is constructed. It is so pervasive that several projects, targeting audiences with specialized needs, have developed their own NumPy-like interfaces and array objects. Owing to its central position in the ecosystem, NumPy increasingly acts as an interoperability layer between such array computation libraries and, together with its application programming interface (API), provides a flexible framework to support the next decade of scientific and industrial analysis.},
issn={1476-4687},
doi={10.1038/s41586-020-2649-2},
url={https://doi.org/10.1038/s41586-020-2649-2}
}


@Article{Virtanen2020,
author={Virtanen, Pauli
and Gommers, Ralf
and Oliphant, Travis E.
and Haberland, Matt
and Reddy, Tyler
and Cournapeau, David
and Burovski, Evgeni
and Peterson, Pearu
and Weckesser, Warren
and Bright, Jonathan
and van der Walt, St{\'e}fan J.
and Brett, Matthew
and Wilson, Joshua
and Millman, K. Jarrod
and Mayorov, Nikolay
and Nelson, Andrew R. J.
and Jones, Eric
and Kern, Robert
and Larson, Eric
and Carey, C. J.
and Polat, {\.{I}}lhan
and Feng, Yu
and Moore, Eric W.
and VanderPlas, Jake
and Laxalde, Denis
and Perktold, Josef
and Cimrman, Robert
and Henriksen, Ian
and Quintero, E. A.
and Harris, Charles R.
and Archibald, Anne M.
and Ribeiro, Ant{\^o}nio H.
and Pedregosa, Fabian
and van Mulbregt, Paul
and Vijaykumar, Aditya
and Bardelli, Alessandro Pietro
and Rothberg, Alex
and Hilboll, Andreas
and Kloeckner, Andreas
and Scopatz, Anthony
and Lee, Antony
and Rokem, Ariel
and Woods, C. Nathan
and Fulton, Chad
and Masson, Charles
and H{\"a}ggstr{\"o}m, Christian
and Fitzgerald, Clark
and Nicholson, David A.
and Hagen, David R.
and Pasechnik, Dmitrii V.
and Olivetti, Emanuele
and Martin, Eric
and Wieser, Eric
and Silva, Fabrice
and Lenders, Felix
and Wilhelm, Florian
and Young, G.
and Price, Gavin A.
and Ingold, Gert-Ludwig
and Allen, Gregory E.
and Lee, Gregory R.
and Audren, Herv{\'e}
and Probst, Irvin
and Dietrich, J{\"o}rg P.
and Silterra, Jacob
and Webber, James T.
and Slavi{\v{c}}, Janko
and Nothman, Joel
and Buchner, Johannes
and Kulick, Johannes
and Sch{\"o}nberger, Johannes L.
and de Miranda Cardoso, Jos{\'e} Vin{\'i}cius
and Reimer, Joscha
and Harrington, Joseph
and Rodr{\'i}guez, Juan Luis Cano
and Nunez-Iglesias, Juan
and Kuczynski, Justin
and Tritz, Kevin
and Thoma, Martin
and Newville, Matthew
and K{\"u}mmerer, Matthias
and Bolingbroke, Maximilian
and Tartre, Michael
and Pak, Mikhail
and Smith, Nathaniel J.
and Nowaczyk, Nikolai
and Shebanov, Nikolay
and Pavlyk, Oleksandr
and Brodtkorb, Per A.
and Lee, Perry
and McGibbon, Robert T.
and Feldbauer, Roman
and Lewis, Sam
and Tygier, Sam
and Sievert, Scott
and Vigna, Sebastiano
and Peterson, Stefan
and More, Surhud
and Pudlik, Tadeusz
and Oshima, Takuya
and Pingel, Thomas J.
and Robitaille, Thomas P.
and Spura, Thomas
and Jones, Thouis R.
and Cera, Tim
and Leslie, Tim
and Zito, Tiziano
and Krauss, Tom
and Upadhyay, Utkarsh
and Halchenko, Yaroslav O.
and V{\'a}zquez-Baeza, Yoshiki
and 1.0 Contributors, SciPy},
title={SciPy 1.0: fundamental algorithms for scientific computing in Python},
journal={Nature Methods},
year={2020},
month={Mar},
day={01},
volume={17},
number={3},
pages={261-272},
abstract={SciPy is an open-source scientific computing library for the Python programming language. Since its initial release in 2001, SciPy has become a de facto standard for leveraging scientific algorithms in Python, with over 600 unique code contributors, thousands of dependent packages, over 100,000 dependent repositories and millions of downloads per year. In this work, we provide an overview of the capabilities and development practices of SciPy 1.0 and highlight some recent technical developments.},
issn={1548-7105},
doi={10.1038/s41592-019-0686-2},
url={https://doi.org/10.1038/s41592-019-0686-2}
}


@Article{Hunter2007,
Author = {Hunter, J. D.},
Title = {Matplotlib: A 2D graphics environment},
Journal = {Computing in Science \& Engineering},
Volume = {9},
Number = {3},
Pages = {90--95},
abstract = {Matplotlib is a 2D graphics package used for Python for
application development, interactive scripting, and publication-quality
image generation across user interfaces and operating systems.},
publisher = {IEEE COMPUTER SOC},
doi = {10.1109/MCSE.2007.55},
year = 2007
}

0 comments on commit 2f3be29

Please sign in to comment.