{"id":40669077,"url":"https://github.com/csiro-hydroinformatics/wila","last_synced_at":"2026-01-21T09:17:57.691Z","repository":{"id":88767092,"uuid":"41527813","full_name":"csiro-hydroinformatics/wila","owner":"csiro-hydroinformatics","description":"A C++ framework to couple optimisation tools and simulation models ","archived":false,"fork":false,"pushed_at":"2024-11-04T02:32:11.000Z","size":418,"stargazers_count":2,"open_issues_count":7,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-09-10T06:43:02.411Z","etag":null,"topics":["cpp","metaheuristics","optimisation"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/csiro-hydroinformatics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2015-08-28T04:51:59.000Z","updated_at":"2023-01-26T11:17:05.000Z","dependencies_parsed_at":"2025-09-10T05:17:27.260Z","dependency_job_id":"905691da-2d0e-4e63-af28-7f4e2dd7a00c","html_url":"https://github.com/csiro-hydroinformatics/wila","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/csiro-hydroinformatics/wila","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro-hydroinformatics%2Fwila","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro-hydroinformatics%2Fwila/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro-hydroinformatics%2Fwila/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro-hydroinformatics%2Fwila/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/csiro-hydroinformatics","download_url":"https://codeload.github.com/csiro-hydroinformatics/wila/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/csiro-hydroinformatics%2Fwila/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28630946,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","metaheuristics","optimisation"],"created_at":"2026-01-21T09:17:57.628Z","updated_at":"2026-01-21T09:17:57.683Z","avatar_url":"https://github.com/csiro-hydroinformatics.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# A simple metaheuristics framework to couple optimization and simulation models\n\nmaster: [![master build status](https://ci.appveyor.com/api/projects/status/9h5snds4ymuv4ynq/branch/master?svg=true)](https://ci.appveyor.com/project/jmp75/wila/branch/master) testing: [![testing build status](https://ci.appveyor.com/api/projects/status/9h5snds4ymuv4ynq/branch/testing?svg=true)](https://ci.appveyor.com/project/jmp75/wila/branch/devel)\n\n## Purpose\n\nThis framework is designed to incorporate the state of the art in metaheuristics software frameworks, yet limiting the software complexity to users who are interested in applying it without advanced knowledge of software or optimisation research. It has been used mainly to calibrate environmental models, mostly hydrology models.\n\nThe purpose of this framework is to define a set of programming interfaces, rather than replicate optimisation algorithms found in other optimisation frameworks.\n\n## License\n\nThis software is released under the CSIRO Open Source Software Licence Agreement (variation of the BSD / MIT License). See [LICENSE](./LICENSE).\n\n## Requirements\n\nThis is written in C++ using some features from the C++11 standard. It is known to compile with:\n\n* GCC version 4.8 or above\n* Visual C++ as from Visual Studio 2015, or above.\n\n## Getting started\n\nThis framework is (almost) header-only, so you do not build a shared binary library.\n\n### Setting dependencies\n\nYou will need the following dependencies available:\n\n#### Windows\n\n* [Boost](http://www.boost.org/). You may choose to set up boost on your machine as you wish and sort out the compilation/path settings as you wish. The following is but one approach, is prescriptive, albeit one based on experience to limit some annoyances.\n * Download the Boost installers from e.g. [1.61](https://sourceforge.net/projects/boost/files/boost-binaries/1.61.0) at the time of writing. You will find files such as boost_1_61_0-msvc-12.0-64.exe (or more recent than \"12.0\" depending on the version of visual studio you use. Download for 64 and/or 32 bits.\n * Install at least one of the boost binary distro, for instance (and most likely) the 64 bit one (boost_1_61_0-msvc-12.0-64.exe). Let's assume for the rest of this document that you install to F:\\local\\boost_1_61_0\\. \n * We will create a subset of Boost in a folder F:\\local\\boost.  The following batch script creates it with enough such that the 'wila' unit tests can be compiled.\n\n```\nset BOOST_VERSION=1_61\nset BOOST_DIR=F:\\local\\boost_%BOOST_VERSION%_0\\\nset LIB_BOOST=%BOOST_DIR%lib64-msvc-12.0\\\nset MYBOOST=F:\\local\\boost\\\nset MYBOOST_HDR=%MYBOOST%boost\\\nset MYBOOST_LIB=%MYBOOST%lib\\64\\ \nif not exist %MYBOOST_HDR% mkdir %MYBOOST_HDR%\nif not exist %MYBOOST_LIB% mkdir %MYBOOST_LIB%\n\nset MYCP=xcopy\n\nset COPYOPTIONS=/Y /R /D\n\n:: Copy the header files:\nrobocopy %BOOST_DIR%boost\\    %MYBOOST_HDR%   /MIR\n\n:: Copy necessary binaries:\n%MYCP% %LIB_BOOST%boost_thread-vc120-mt-%BOOST_VERSION%.dll          %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%boost_thread-vc120-mt-gd-%BOOST_VERSION%.dll       %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%libboost_thread-vc120-mt-%BOOST_VERSION%.lib       %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%libboost_thread-vc120-mt-gd-%BOOST_VERSION%.lib    %MYBOOST_LIB%   %COPYOPTIONS%\n                                                                    \n%MYCP% %LIB_BOOST%boost_system-vc120-mt-%BOOST_VERSION%.lib          %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%boost_system-vc120-mt-gd-%BOOST_VERSION%.dll       %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%libboost_system-vc120-mt-%BOOST_VERSION%.lib       %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%libboost_system-vc120-mt-gd-%BOOST_VERSION%.lib    %MYBOOST_LIB%   %COPYOPTIONS%\n                                                                    \n%MYCP% %LIB_BOOST%boost_date_time-vc120-mt-%BOOST_VERSION%.dll       %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%boost_date_time-vc120-mt-gd-%BOOST_VERSION%.dll    %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%libboost_date_time-vc120-mt-%BOOST_VERSION%.lib    %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%libboost_date_time-vc120-mt-gd-%BOOST_VERSION%.lib %MYBOOST_LIB%   %COPYOPTIONS%\n                                                                    \n%MYCP% %LIB_BOOST%boost_chrono-vc120-mt-%BOOST_VERSION%.dll          %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%boost_chrono-vc120-mt-gd-%BOOST_VERSION%.dll       %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%libboost_chrono-vc120-mt-%BOOST_VERSION%.lib       %MYBOOST_LIB%   %COPYOPTIONS%\n%MYCP% %LIB_BOOST%libboost_chrono-vc120-mt-gd-%BOOST_VERSION%.lib    %MYBOOST_LIB%   %COPYOPTIONS%\n```\n\n* You need to install Threadpool (http://threadpool.sourceforge.net/), You can fetch the source code from [this fork on github](https://github.com/jmp75/threadpool/tree/master) using git.\n\nYou will find in the top directory of wila the file [./wila.props.in](./wila.props.in). Copy it to a file named wila.props under \"My Documents\", and adjust the values BoostPath and BoostThreadPool to the relevant locations you chose.\n\n```xml\n  \u003cPropertyGroup Label=\"UserMacros\"\u003e\n    \u003cBoostPath\u003eF:/local/boost/\u003c/BoostPath\u003e\n    \u003cBoostThreadPool\u003eF:/src/github_jm/threadpool/\u003c/BoostThreadPool\u003e\n  \u003c/PropertyGroup\u003e\n```\n\nOpen \"wila\\tests\\mhcpptest.vcxproj\". Make sure you are in the appropriate configuration (Debug/x64) and it should compile.\n\n#### Linux\n\n* [Boost](http://www.boost.org/)\n* Threading Building Blocks (https://www.threadingbuildingblocks.org/). \n* Threadpool (http://threadpool.sourceforge.net/, You can fetch the source code from [this fork on github](https://github.com/jmp75/threadpool/tree/master) and place in the top of your source tree for CMake to find it)\n\n```sh\ncmake .\nmake package\n```\n\nAlternately build as a shared library:\n\n```sh\ncmake -DAS_SHARED_LIB=True .\nmake\nmake install\n```\n\n### Documentation\n\nYou can find some introductory sample [in the doc folder, Getting Started](./doc/GettingStarted.md)\n\n### Unit tests\n\nThe step above will also try and build the test application. To run the tests:\n\n```sh\n./wila_tests\n```\n\n### Further Documentation\n\nTODO will probably set up a github page\n\n## What's the name of the repo about\n\nThis is from Slavic mythology, as the description was a metaphor somewhat appropriate for the field of optimisation.\n\n\"In Slavic mythology, there is a form of nymph which lies somewhere between a ghost and a fairy. \\[...\\] They can either blend into the wind as incorporeal shapes — translucent and intangible — or they can become solid, touching, and being touched, by the natural world around them. \\[...\\] If such an easily enticed man were to go searching for a Wila, he would most likely find her in places similar to those which the fairies and nymphs prefer—on hill tops or mounds, or in the center of a ring of trees.\"\n\n* Ryan Stone, [Beware the Wandering Wilas](http://www.ancient-origins.net/myths-legends-europe/beware-wandering-wilas-002273)\n* [Supernatural beings in Slavic folklore - Vila](https://en.wikipedia.org/wiki/Supernatural_beings_in_Slavic_folklore#Vila) on wikipedia.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsiro-hydroinformatics%2Fwila","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsiro-hydroinformatics%2Fwila","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsiro-hydroinformatics%2Fwila/lists"}