#  <br> McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization
Thank you for using the beta version 0.3.0 of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the "Issues"
functionality in [GitLab](https://git.rwth-aachen.de/avt.svt/public/maingo.git) or send an e-mail to MAiNGO@avt.rwth-aachen.de.
## How to cite
Please cite the latest [MAiNGO report](http://permalink.avt.rwth-aachen.de/?id=729717):<br>
Bongartz, D., Najman, J., Sass, S., & Mitsos, A. (2018). MAiNGO - **M**cCormick-based **A**lgorithm for mixed-**i**nteger **N**onlinear **G**lobal **O**ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University.
# <img src="doc/images/MAiNGO.png" alt="MAiNGO" width="300"/> <br> McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization
Thank you for using the beta version of MAiNGO! If you have any issues, concerns, or comments, please communicate them using the ["Issues"
functionality in GitLab](https://git.rwth-aachen.de/avt.svt/public/maingo/-/issues) or send an e-mail to [MAiNGO@avt.rwth-aachen.de](mailto:MAiNGO@avt.rwth-aachen.de).
## About
...
...
@@ -23,20 +17,12 @@ The MAiNGO git repository contains submodules for all dependencies. Hence, to ob
$ git submodule init
$ git submodule update -j 1
Make sure that you navigate to the git MAiNGO directory before executing the `init` and `update` commands.
For Windows users, we recommend to use https and for Linux OS users, we recommend SSH to avoid multiple username and password inputs.
If you want to switch from https to SSH or do the reverse, simply execute the shell script `switchToSsh` or `switchToHttps`**after** executing the `git submodule init` command.
If you want to switch from between HTTPS (default) and SSH protocols for obtaining the submodules, simply execute the shell scripts (only for Linux or MacOS) `switchToSsh` or `switchToHttps`**after** executing the `git submodule init` command.
For more information on SSH keys, please refer to the git documentation on SSH authentication which can be found under `Help -> SSH authentication` in your GitLab.
If you are having https authentication problems on Windows, please make sure that your credential manager has stored the correct settings. The Windows credential manager can be found at
`Control Panel -> User Accounts -> Manage your credentials`.
If you want to check if the above has worked, you can check that each subfolder in the `dep` folder is non-empty.
In case that the above DID NOT work properly, use the following commands.
$ git submodule foreach git checkout master
$ git submodule foreach git pull
A note for users more familiar with git: `git submodule update` is executed without the `--recursive` option.
This avoids instantiating any indirect dependencies; in the repository design of MAiNGO, all dependencies (including indirect ones) are present in `dep`. Additionally, it is executed using only one process `-j 1` to avoid input failures.
...
...
@@ -45,13 +31,10 @@ This avoids instantiating any indirect dependencies; in the repository design of
If you want to update to the latest MAiNGO version, use the following git commands
$ git pull
$ git submodule update
If you changed any of the source files in MAiNGO or any dependency, found in the `dep` folder, you should restore the original state of MAiNGO by first saving a copy of the files you changed (or use `git stash`) and then executing
$ git checkout .
$ git submodule update -j 1
in the MAiNGO repository and/or in any dependency repositories you edited. Then, update the MAiNGO repository with the `pull` and `submodule update` commands. Finally, you can replace the files of interest by your saved copies (or retrieve them via `git stash pop`).
If you changed any of the source files in MAiNGO or any dependency found in the <tt>dep/</tt> folder, you should restore the original state of MAiNGO and the dependencies by running <tt>git stash</tt> in the corresponding repository.
Then, update the MAiNGO repository with the <tt>git pull</tt> and <tt>git submodule update</tt> commands. Finally, you can retrieve your changes via <tt>git stash pop</tt>.
## First steps
...
...
@@ -74,13 +57,19 @@ MAiNGO works particularly well for problems which can be formulated in a reduced
MAiNGO holds specialized relaxations for functions found in the field of process engineering ([Najman & Mitsos 2016](https://www.sciencedirect.com/science/article/pii/B9780444634283502721), [Najman et al. 2019](https://www.sciencedirect.com/science/article/abs/pii/S0098135419309494), [Bongartz et al. 2020](https://link.springer.com/article/10.1007/s11081-020-09502-1)).
All implemented specialized intrinsic functions can be found at `doc/implementedFunctions/Implemented_functions.pdf`.
## How to cite
If you use MAiNGO, please cite the latest MAiNGO report:<br>
Bongartz, D., Najman, J., Sass, S., & Mitsos, A. (2018). MAiNGO - **M**cCormick-based **A**lgorithm for mixed-**i**nteger **N**onlinear **G**lobal **O**ptimization. Technical Report, Process Systems Engineering (AVT.SVT), RWTH Aachen University. [http://permalink.avt.rwth-aachen.de/?id=729717](http://permalink.avt.rwth-aachen.de/?id=729717).
## References
Bongartz, D., Najman, J., Sass, S., & Mitsos, A. (2018). [MAiNGO - **M**cCormick-based **A**lgorithm for mixed-**i**nteger **N**onlinear **G**lobal **O**ptimization](http://permalink.avt.rwth-aachen.de/?id=729717). *Technical Report*, Process Systems Engineering (AVT.SVT), RWTH Aachen University.<br><br>
Bongartz, D., & Mitsos, A. (2017a). [Deterministic global optimization of process flowsheets in a reduced space using McCormick relaxations](https://link.springer.com/article/10.1007/s10898-017-0547-4). *Journal of Global Optimization*, 69(4), 761-796.<br><br>
Bongartz, D., & Mitsos, A. (2017b). [Infeasible path global flowsheet optimization using McCormick relaxations](https://www.sciencedirect.com/science/article/pii/B9780444639653501070). In *Computer Aided Chemical Engineering* (Vol. 40, pp. 631-636). Elsevier.<br><br>
Bongartz, D., & Mitsos, A. (2019). [Deterministic global flowsheet optimization: Between equation‐oriented and sequential‐modular methods](https://aiche.onlinelibrary.wiley.com/doi/full/10.1002/aic.16507). *AIChE Journal*, 65(3), 1022-1034.<br><br>
Bongartz, D., Najman, J., & Mitsos, A. (2020). [Deterministic global optimization of steam cycles using the IAPWS‑IF97 model](https://link.springer.com/article/10.1007/s11081-020-09502-1). *Optimization & Engineering*, in press.<br><br>
Bongartz, D., & Mitsos, A. (2019). [Deterministic global flowsheet optimization: Between equation-oriented and sequential-modular methods](https://aiche.onlinelibrary.wiley.com/doi/full/10.1002/aic.16507). *AIChE Journal*, 65(3), 1022-1034.<br><br>
Bongartz, D., Najman, J., & Mitsos, A. (2020). [Deterministic global optimization of steam cycles using the IAPWS-IF97 model](https://link.springer.com/article/10.1007/s11081-020-09502-1). *Optimization & Engineering*, in press.<br><br>
Huster, W. R., Schweidtmann, A. M., & Mitsos, A. (2019a). [Impact of accurate working fluid properties on the globally optimal design of an organic Rankine cycle](https://www.sciencedirect.com/science/article/pii/B9780128185971500680). In *Computer Aided Chemical Engineering* (Vol. 47, pp. 427-432). Elsevier.<br><br>
Huster, W. R., Schweidtmann, A. M., & Mitsos, A. (2019b). [Working fluid selection for organic rankine cycles via deterministic global optimization of design and operation](https://link.springer.com/article/10.1007/s11081-019-09454-1). *Optimization and Engineering*, 1-20.<br><br>
Najman, J., & Mitsos, A. (2016). [Convergence order of McCormick relaxations of LMTD function in heat exchanger networks](https://www.sciencedirect.com/science/article/pii/B9780444634283502721). In *Computer Aided Chemical Engineering* (Vol. 38, pp. 1605-1610). Elsevier.<br><br>
message(FATAL_ERROR "Error: Could not find CMakeLists.txt at ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}. Did you initialize and update all submodules (cf. Readme.md or doc/html/index.html)?")