Skip to content

Commit 89234cb

Browse files
authored
Merge pull request #49 from bbopt/develop
Update master for Release 4.1
2 parents 75754f2 + 52886f9 commit 89234cb

4,053 files changed

Lines changed: 8622 additions & 349810 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@ XCode/
22
*.vscode
33
VisualStudio/**
44
build/
5+
build/release/**
56
builds/
67
dev_tests/*.txt
8+
Testing/
79
examples/**/*.exe
810
examples/**/cache.txt
9-
src/*.txt
1011
src/nbproject/
1112
*.swp
1213
src/Attribute/*.hpp
14+
examples/**/history*
15+
examples/**/sol*
16+
examples/**/stats*
17+
examples/**/runTestLog*
18+
integration_tests/**/*.exe
19+
integration_tests/**/stats*

CMakeLists.txt

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
cmake_minimum_required(VERSION 3.14 FATAL_ERROR)
77

88
# name of the project
9-
project (Nomad VERSION 4.0.2)
9+
project (Nomad VERSION 4.1.0)
1010

1111
# use standard compilers parameters for c++14
1212
SET(CMAKE_CXX_STANDARD 14 )
@@ -23,16 +23,21 @@ endif()
2323
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
2424
# require at least gcc 4
2525
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8)
26-
message(FATAL_ERROR "GCC version < 8 has not been tested for Nomad!")
26+
message(FATAL_ERROR "GCC version < 8 has not been tested for Nomad")
2727
endif()
2828
elseif (("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
2929
OR ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang"))
3030
# require at least clang 5
3131
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5)
32-
message(FATAL_ERROR "Clang version has not been tested for Nomad!")
32+
message(FATAL_ERROR "Clang version has not been tested for Nomad")
33+
endif()
34+
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
35+
# require at least 15.0 (MSVC 2017) for C++14 support
36+
if (MSVC_TOOLSET_VERSION VERSION_LESS 141)
37+
message(FATAL_ERROR "MSVC version ${CMAKE_CXX_COMPILER_VERSION} has not been tested for Nomad")
3338
endif()
3439
else()
35-
message(WARNING "You are using an unsupported compiler! Compilation has only been tested with Clang and GCC.")
40+
message(WARNING "You are using an unsupported compiler. Compilation has only been tested with Clang, GCC, and MSVC.")
3641
endif()
3742

3843
#options
@@ -63,7 +68,7 @@ message(STATUS " Installation prefix set to ${CMAKE_INSTALL_PREFIX}")
6368
#
6469
# Use sgtelib
6570
#
66-
set(USE_SGTELIB ON)
71+
option(USE_SGTELIB "Option to use the Sgtelib library" ON)
6772
if(USE_SGTELIB MATCHES ON)
6873
message(CHECK_START " Configuring for use of Sgtelib library")
6974

@@ -89,6 +94,7 @@ if(TIME_STATS MATCHES ON)
8994
add_compile_definitions(TIME_STATS)
9095
endif()
9196

97+
9298
#
9399
# Test openMP package
94100
#
@@ -119,16 +125,6 @@ else()
119125
message(STATUS " Examples NOT built")
120126
endif()
121127

122-
option(BUILD_INTEGRATION_TESTS "Option to build integration tests" OFF)
123-
if(BUILD_INTEGRATION_TESTS MATCHES ON)
124-
message(CHECK_START " Configuring build for integration tests")
125-
126-
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/integration_tests)
127-
message(CHECK_PASS " done")
128-
else()
129-
message(STATUS " Integration tests NOT built")
130-
endif()
131-
132128
#
133129
# Choose to build the interface
134130
#

CONTRIBUTING.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Guidelines for contributing to NOMAD - A blackbox optimization software.
2+
3+
### NOMAD 4
4+
For questions, bugs, feature requests and other issues, please open a new issue at https://github.com/bbopt/nomad/issues.
5+
To add a feature, especially if it involves algorithmic developments, or to otherwise suggest changes to the code, do [contact us](mailto:nomad@gerad.ca) for more information.
6+
7+
### NOMAD 3
8+
NOMAD 3 is still available. It is not on GitHub. For any question or issue specific to NOMAD 3, [email us](mailto:nomad@gerad.ca).
9+
10+
### Questions
11+
We are happy to help. An issue may be opened with the question, or you can [email us](mailto:nomad@gerad.ca).
12+
13+
### Bugs
14+
Make sure to include these informations:
15+
* A clear description of the bug, with the expected behavior
16+
* Steps to reproduce
17+
* OS / platform
18+
* NOMAD version
19+
* It may be useful to have a trace of the output with the parameter `DISPLAY_DEGREE 4`
20+
21+
### Features / Enhancements
22+
If the feature is already in the list of issues, input should be added to that issue. Otherwise, a new issue may be opened. Please check the [roadmap](https://github.com/bbopt/nomad/ROADMAP.md) for upcoming features.
23+
24+
### Pull requests
25+
We will review carefully pull requests, but we will not merge them directly. Our current development path involves a private repository that we may update with the suggested changes before updating the public repository.
26+

CONTRIBUTORS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ Solène Kojtych
55
Guillaume Lameynardie
66
Wim Lavrijsen
77
Alexis Montoison
8+
Ferdinand Mosca
89
Caroline Rocha
910
Ludovic Salomon
1011
Renaud Saltet

README.txt

Lines changed: 26 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,17 @@
55
#---------------------------------------------------------------------------------#
66
# NOMAD - Nonlinear Optimization by Mesh Adaptive Direct Search - #
77
# #
8-
# NOMAD - Version 4.0 has been created by #
8+
# NOMAD - Version 4 has been created by #
99
# Viviane Rochon Montplaisir - Polytechnique Montreal #
1010
# Christophe Tribes - Polytechnique Montreal #
1111
# #
12-
# The copyright of NOMAD - version 4.0 is owned by #
12+
# The copyright of NOMAD - version 4 is owned by #
1313
# Charles Audet - Polytechnique Montreal #
1414
# Sebastien Le Digabel - Polytechnique Montreal #
1515
# Viviane Rochon Montplaisir - Polytechnique Montreal #
1616
# Christophe Tribes - Polytechnique Montreal #
1717
# #
18-
# NOMAD v4 has been funded by Rio Tinto, Hydro-Québec, Huawei-Canada, #
18+
# NOMAD 4 has been funded by Rio Tinto, Hydro-Québec, Huawei-Canada, #
1919
# NSERC (Natural Sciences and Engineering Research Council of Canada), #
2020
# InnovÉÉ (Innovation en Énergie Électrique) and IVADO (The Institute #
2121
# for Data Valorization) #
@@ -69,18 +69,27 @@ CONTACT:
6969
nomad@gerad.ca
7070

7171

72+
VERSION WARNING:
73+
74+
This repository is for NOMAD 4. NOMAD 3 is not on GitHub.
75+
NOMAD 4 is similar in usage to NOMAD 3. It does not have all
76+
functionalities from NOMAD 3 yet. NOMAD 4 has a new software
77+
architecture, uses OpenMP to run evaluations in parallel,
78+
and also has some new functionalities.
79+
80+
7281
COMPILATION (Release):
7382

7483
On Linux, Unix, Windows and Mac OS X, NOMAD can be compiled using CMake.
7584
The minimum version of CMake is 3.14. Older versions will trigger
76-
an error. A recent C++ compiler is also required.
85+
an error. A recent C++ compiler is also required.
7786

7887
The procedure is the following. On the command line in the
7988
$NOMAD_HOME directory:
8089

81-
cmake -S . -B build/release ---> Create the CMake files and directories for
90+
cmake -S . -B build/release ---> Create the CMake files and directories for
8291
building (-B) in build/release.
83-
The source (-S) CMakeLists.txt file is in
92+
The source (-S) CMakeLists.txt file is in
8493
the $NOMAD_HOME directory.
8594
To enable time stats build:
8695
cmake -DTIME_STATS=ON -S . -B build/release
@@ -92,18 +101,18 @@ cmake -S . -B build/release ---> Create the CMake files and directories for
92101
cmake -DTEST_OPENMP=OFF -S . -B build/release
93102

94103

95-
cmake --build build/release ---> Build all the libraries and applications
104+
cmake --build build/release ---> Build all the libraries and applications
96105
Option --parallel xx can be added for faster
97106
build.
98-
Option --config Release should be used on
99-
*Windows* to compile in Release configuration.
107+
Option --config Release should be used on
108+
*Windows* to compile Release configuration.
100109
The default configuration is Debug.
101110

102-
cmake --install build/release ---> Copy binaries and headers in
111+
cmake --install build/release ---> Copy binaries and headers in
103112
build/release/[bin, include, lib]
104113
and in the examples/tests directories.
105114
Option --config Release should be used on
106-
Windows to install in Release configuration.
115+
Windows to install Release configuration.
107116
The default configuration is Debug.
108117

109118
The executable "nomad" will installed into the directory:
@@ -119,20 +128,20 @@ cmake --install $NOMAD_HOME/build/release
119128

120129
COMPILATION (Debug):
121130

122-
The procedure to build the debug version is the following.
131+
The procedure to build the debug version is the following.
123132
On the command line in the $NOMAD_HOME directory:
124133

125134
cmake -S . -B build/debug -D CMAKE_BUILD_TYPE=Debug
126135
---> On Windows, all 4 configurations are always build
127136
Debug, RelWithDebugInfo, MinSizeRel, Release);
128137
flag CMAKE_BUILD_TYPE is ignored.
129138

130-
cmake --build build/debug ---> Build the libraries and applications
139+
cmake --build build/debug ---> Build the libraries and applications
131140
Option --parallel xx can be added for faster
132141
build.
133142
On Windows, the default configuration is Debug.
134143

135-
cmake --install build/debug ---> Copy binaries and headers in
144+
cmake --install build/debug ---> Copy binaries and headers in
136145
build/debug/[bin, include, lib]
137146
and in the examples/tests directories
138147

@@ -141,13 +150,13 @@ EXAMPLES OF OPTIMIZATION:
141150

142151
Batch Mode:
143152
There are examples in batch mode in examples/basic/batch/.
144-
In each directory, the blackbox (usually named bb) are compiled by default.
153+
In each directory, the blackbox functions (usually named bb) are compiled by default.
145154
The problem may be resolved using NOMAD and the parameter file:
146155
nomad param.txt
147156

148157
Library Mode:
149158
There are examples in library mode in examples/basic/library/.
150-
In each directory, the executable may be compiled when building
151-
Nomad application. The problems may be resolved by execution,
159+
In each directory, the executable may be compiled when building
160+
Nomad application. The problems may be resolved by execution,
152161
for instance:
153162
example_lib.exe

ROADMAP.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
## Next releases
2+
3+
### v4.1 - July 2021
4+
5+
* Windows version of the nomad executable
6+
7+
* Static surrogate may be used for sorting or for optimizing
8+
9+
* Variable Neighborhood Search (VNS)
10+
11+
* Poll direction ORTHO N+1 NEG added
12+
13+
### v4.2 - October 2021
14+
15+
These are the features we consider for 4.2:
16+
17+
* Improvements to VNS
18+
19+
* Poll direction ORTHO N+1 MODEL
20+
21+
* Use models for sorting
22+
23+
* Matlab interface
24+
25+
* Python interface on Windows
26+
27+
* Periodic variables
28+
29+
* Coordinate search algorithm
30+
31+
* Functionality to interrupt the resolution to show the current best solution, and then resume
32+
33+
34+

doc/doxygen/Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ PROJECT_NAME = "NOMAD Source"
3838
# could be handy for archiving the generated documentation or if some version
3939
# control system is used.
4040

41-
PROJECT_NUMBER = "Version 4.0.0 Beta"
41+
PROJECT_NUMBER = "Version 4.1"
4242

4343
# Using the PROJECT_BRIEF tag one can provide an optional one line description
4444
# for a project that appears at the top of each page and should give viewer a

doc/doxygen/html/_algo_stop_reasons_8cpp.html

Lines changed: 0 additions & 103 deletions
This file was deleted.

0 commit comments

Comments
 (0)