Skip to content
Snippets Groups Projects
Commit 171cb79b authored by Jaromil Najman's avatar Jaromil Najman
Browse files

Release version v0.2.1

parent 412b0438
No related branches found
No related tags found
No related merge requests found
[submodule "dep/mcpp"]
path = dep/mcpp
url = https://git.rwth-aachen.de/avt.svt/public/thirdparty/mcpp.git
[submodule "dep/filib"]
path = dep/filib
url = https://git.rwth-aachen.de/avt.svt/public/thirdparty/filib.git
......@@ -34,9 +31,12 @@
[submodule "dep/clp"]
path = dep/clp
url = https://git.rwth-aachen.de/avt.svt/public/thirdparty/clp.git
[submodule "dep/libale"]
path = dep/libale
url = https://git.rwth-aachen.de/avt.svt/public/libale.git
[submodule "dep/babbase"]
path = dep/babbase
url = https://git.rwth-aachen.de/avt.svt/public/babbase.git
[submodule "dep/mcpp"]
path = dep/mcpp
url = https://git.rwth-aachen.de/avt.svt/public/thirdparty/mcpp.git
[submodule "dep/libale"]
path = dep/libale
url = https://git.rwth-aachen.de/avt.svt/public/libale.git
......@@ -84,9 +84,10 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
function(add_dependency_subdir DEPENDENCY)
if(EXISTS ${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY}/CMakeLists.txt)
add_subdirectory(${PROJECT_SOURCE_DIR}/dep/${DEPENDENCY})
message("${DEPENDENCY} done.")
message("${DEPENDENCY} OK.")
message("=================================================================")
else()
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)?")
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)?")
endif()
endfunction(add_dependency_subdir DEPENDENCY)
add_dependency_subdir(babbase)
......@@ -114,7 +115,7 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
# --------------- MAiNGO executable (using ALE parser) ---------------------------
if (MAiNGO_build_parser)
add_executable(MAiNGO
${PROJECT_SOURCE_DIR}/exampleAleParser/mainAleParser.cpp
${PROJECT_SOURCE_DIR}/examples/mainAleParser.cpp
)
target_link_libraries(MAiNGO maingo-core)
set_target_properties(MAiNGO PROPERTIES CXX_STANDARD 17)
......@@ -143,10 +144,7 @@ if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
# --------------- Standalone MAiNGO executable (for C++ API) ---------------------------
if (MAiNGO_build_standalone)
add_executable(MAiNGOcpp
${PROJECT_SOURCE_DIR}/exampleCppApi/mainCppApi.cpp
)
target_include_directories(MAiNGOcpp
PRIVATE ${PROJECT_SOURCE_DIR}/example
${PROJECT_SOURCE_DIR}/examples/mainCppApi.cpp
)
target_link_libraries(MAiNGOcpp maingo-core)
set_target_properties(MAiNGOcpp PROPERTIES CXX_STANDARD 14)
......
# MAiNGO - McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization
# ![MAiNGO](doc/images/MAiNGO.png) <br> McCormick-based Algorithm for mixed-integer Nonlinear Global Optimization
Thank you for using the beta version 0.2.1 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.
Thank you for using the beta version 0.2.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.
## About
General information about the capabilities and main algorithmic features of MAiNGO can be found in our technical report available on [our website](http://permalink.avt.rwth-aachen.de/?id=729717). For a more detailed description of the algorithm, a complete list of available options, and an installation guide please refer to the documentation in the git at `doc/html/index.html`.
General information about the capabilities and main algorithmic features of MAiNGO can be found in our technical report available on [our website](http://permalink.avt.rwth-aachen.de/?id=729717).
For a detailed installation guide, description of the algorithm, and a complete list of available options, please clone the repository first and then refer to the documentation found at `doc/html/index.html` in the MAiNGO repository.
## Obtaining MAiNGO
The MAiNGO git repository contains submodules for all dependencies. Hence, to obtain MAiNGO, you need to use the following commands (on Windows, you might need to get Git Bash first).
$ git clone https://git.rwth-aachen.de/avt.svt/public/MAiNGO.git <directory>
$ cd <directory>
$ git submodule init
$ git submodule update -j 1
$ git clone https://git.rwth-aachen.de/avt.svt/public/maingo.git <directory>
$ cd <directory>
$ git submodule init
$ git submodule update -j 1
Make sure that you change to the git MAiNGO directory before executing the `init` and `update` commands.
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, simply execute the shellscript `switchToSsh` and `switchToHttps` for switching from SSH to https. For more info on SSH keys, see 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 the correct settings. The Windows credential manager can be found at
`Control Panel->User Accounts->Manage your credentials`.
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.
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 make sure that the above worked, you can check that each dependency folder is non-empty.
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`. It is also executed using only one process `-j 1` to avoid input failures.
\ No newline at end of file
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.
## Updating MAiNGO
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 .
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`).
## First steps
If you are new to MAiNGO, we recommend looking at the following documents in this order after having cloned the repository:
* `doc/html/index.html`: This is the manual for MAiNGO. It includes information on how to install and execute MAiNGO.
* `examples/01_BasicExample`: This folder contains the most basic example for solving problems with MAiNGO.
## Example applications
MAiNGO has been successfully applied to flowsheet-optimization problems ([Bongartz & Mitsos 2017a](https://link.springer.com/article/10.1007/s10898-017-0547-4), [Bongartz & Mitsos 2017b](https://www.sciencedirect.com/science/article/pii/B9780444639653501070), [Bongartz & Mitsos 2019](https://aiche.onlinelibrary.wiley.com/doi/full/10.1002/aic.16507)),
optimization problems with artificial neural networks ([Rall et al. 2018](https://www.sciencedirect.com/science/article/pii/S0376738818324293), [Schweidtmann & Mitsos 2018](https://link.springer.com/article/10.1007/s10957-018-1396-0), [Rall et al. 2020](https://doi.org/10.1016/j.memsci.2020.117860)),
hybrid mechanistic models ([Schweidtmann et al. 2019a](https://www.sciencedirect.com/science/article/abs/pii/S009813541830886X), [Schweidtmann et al. 2019b](https://www.sciencedirect.com/science/article/pii/B9780128186343501570), [Huster et al. 2019a](https://www.sciencedirect.com/science/article/pii/B9780128185971500680), [Huster et al. 2019b](https://link.springer.com/article/10.1007/s11081-019-09454-1)),
and nonlinear scheduling with artificial neural networks embedded ([Schäfer et al. 2020](https://doi.org/10.1016/j.compchemeng.2019.106598)).
![Applications](doc/images/applications.png)
MAiNGO works particularly well for problems which can be formulated in a reduced-space manner ([Bongartz & Mitsos 2017a](https://link.springer.com/article/10.1007/s10898-017-0547-4)).
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)).
All implemented specialized intrinsic functions can be found at `doc/implementedFunctions/Implemented_functions.pdf`.
## 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>
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>
Najman, J., Bongartz, D., & Mitsos, A. (2019). [Relaxations of thermodynamic property and costing models in process engineering](https://www.sciencedirect.com/science/article/abs/pii/S0098135419309494). *Computers & Chemical Engineering*, 130, 106571.<br><br>
Rall, D., Menne, D., Schweidtmann, A. M., Kamp, J., von Kolzenberg, L., Mitsos, A., & Wessling, M. (2019). [Rational design of ion separation membranes](https://www.sciencedirect.com/science/article/pii/S0376738818324293). *Journal of membrane science*, 569, 209-219.<br><br>
Rall, D., Schweidtmann, A. M., Aumeier, B. M., Kamp, J., Karwe, J., Ostendorf, K., Mitsos, A., & Wessling, M. (2020). [Simultaneous rational design of ion separation membranes and processes](https://doi.org/10.1016/j.memsci.2020.117860 ). *Journal of Membrane Science*, 117860.<br><br>
Schäfer, P., Schweidtmann, A. M., Lenz, P. H., Markgraf, H. M., & Mitsos, A. (2020). [Wavelet-based grid-adaptation for nonlinear scheduling subject to time-variable electricity prices](https://doi.org/10.1016/j.compchemeng.2019.106598). *Computers & Chemical Engineering*, 132, 106598.<br><br>
Schweidtmann, A. M., & Mitsos, A. (2018) [Deterministic Global Optimization with Artificial Neural Networks Embedded](https://link.springer.com/article/10.1007/s10957-018-1396-0). *Journal of Optimization Theory and Applications*, 180, 925–948.<br><br>
Schweidtmann, A. M., Huster, W. R., Lüthje, J. T., & Mitsos, A. (2019a). [Deterministic global process optimization: Accurate (single-species) properties via artificial neural networks](https://www.sciencedirect.com/science/article/abs/pii/S009813541830886X). *Computers & Chemical Engineering*, 121, 67-74.<br><br>
Schweidtmann, A. M., Bongartz, D., Huster, W. R., & Mitsos, A. (2019b). [Deterministic Global Process Optimization: Flash Calculations via Artificial Neural Networks](https://www.sciencedirect.com/science/article/pii/B9780128186343501570). In *Computer Aided Chemical Engineering* (Vol. 46, pp. 937-942). Elsevier.<br><br>
Release version 0.2.1 (February 17th, 2020):
- Examples & Documentation:
- Updates in readmes and manual
- Moved example problems to folder 'examples' & added readmes for example
- Bi-objective optimization:
- Added utility for plotting Pareto fronts
- Added examples for epsilon-constraint method for bi-objective problems
- Improved output of MAiNGO (e.g., for Branch-and-Bound; missing input files; ...) and CMake
- MAiNGO algorithm:
- Added new intrinsic functions (for more details, see doc/implementedFunctions/Implemented_functions.pdf):
- covariance functions for Gaussian processes
- function 'regnormal'
- Gaussian PDF functions
- Fixes in algorithms
- Fixes in parser
- Fixes in computation of relaxations (through update of MC++).
- MAiNGO_Reader_Writer utility:
- Now reading dict.txt file generated by GAMS convert to retain original variable and equation names (or similar).
Release version 0.2.0 (November 8th, 2019):
- Initial release
\ No newline at end of file
Subproject commit fc3e739bac4f944a37c1a779e63e05db373c0cbb
Subproject commit dcf8e1e4492fd71f79e3ce1348696c0ea622b57b
Subproject commit e84df232c629dbc81f62f1aa1e28399f06d0e8ac
Subproject commit a56017d8aa7acae3f2d28579c6b908dbe18a8f30
Subproject commit 4696b908f11e7181d591628cf7fc90a76942ead6
Subproject commit 6472d5b4079026fdaaebaef94ba95876fac54625
Subproject commit 6c688a155c95836d336b875cb00cb1c8d0727084
Subproject commit a2b5a021354f68a72bf71955b4bb1ab2e39fe90c
Subproject commit b74a7e1ca076136fd956e38b342aca991038f070
Subproject commit 15cd1f39d3812b0677790e2b04a5e0ab62ee78a7
Subproject commit 54b21bd2505026dc30557989d3a7db2c8b4e95bd
Subproject commit b910f32000a74b5351dbe9221e71c437196fb4e0
Subproject commit d0d0b6e40a854beeb7d599190c3e9e4beca7b1ee
Subproject commit 168944cfd2fa0e412c22c73025fc857a2ad5d957
Subproject commit b740b08589a698b08503a9d6095366836a204041
Subproject commit 647d9b1f08fd4617f66a4de68f43a058534654d2
Subproject commit 4bb79934b046c965190bfa7e35584f6e95716ca3
Subproject commit 369be0232c22e6d9b28eceb1a1c4daf987fe26e7
Subproject commit 8d2a4307ca166733303a993e3522f06e755f2db2
Subproject commit 9f66ada0e835f4bde8f933dce8c72082df4a0ab4
Subproject commit cfb6ea682f0dd4c1dd92cb32a45c70edcfeab9a9
Subproject commit 0586d758851e5ed5792dc75839d97eccc2032a86
doc/html/CMakeGenerator.PNG

171 KiB

doc/html/VS_Release.PNG

2.55 KiB

......@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MAiNGO: U:/Projects/RankineOpt/Code/tmpMAiNGO/src/MAiNGO.cpp File Reference</title>
<title>MAiNGO: U:/Projects/RankineOpt/Code/maingo/src/MAiNGO.cpp File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
......
......@@ -5,7 +5,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.15"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>MAiNGO: U:/Projects/RankineOpt/Code/tmpMAiNGO/inc/MAiNGO.h File Reference</title>
<title>MAiNGO: U:/Projects/RankineOpt/Code/maingo/inc/MAiNGO.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
......@@ -93,7 +93,8 @@ $(document).ready(function(){initNavTree('_m_ai_n_g_o_8h.html','');});
<div class="title">MAiNGO.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_omodel_8h_source.html">MAiNGOmodel.h</a>&quot;</code><br />
<div class="textblock"><code>#include &quot;<a class="el" href="_m_ai_n_g_odebug_8h_source.html">MAiNGOdebug.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_m_ai_n_g_omodel_8h_source.html">MAiNGOmodel.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="constraint_8h_source.html">constraint.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="logger_8h_source.html">logger.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="manual_8h_source.html">manual.h</a>&quot;</code><br />
......
Source diff could not be displayed: it is too large. Options to address this: view the blob.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment