NAME
Sim::OPT is a tool for detailed metadesign managing parametric explorations through the ESP-r building performance simulation platform and performing optimization by block coordinate descent.
SYNOPSIS
use Sim::OPT;
opts;
DESCRIPTION
Sim::OPT it a tool for detailed metadesign. It morphs models by propagation of constraints through the ESP-r building performance simulation platform and performs optimization by overlapping block coordinate descent.
A working knowledge of ESP-r is necessary to use OPT. Information about ESP-r can be found at http://www.esru.strath.ac.uk/Programs/ESP-r.htm.
To install OPT, the command <cpanm Sim::OPT> has to be issued. Perl will take care to install all dependencies. OPT can be loaded through the command <use Sim::OPT> in Perl. For that purpose, the "Devel::REPL" module can be used. As an alternative, the batch file "opt" (which can be found in the "example" folder in this distribution) may be copied in a work directory and the command <opt> may be issued. That command will activate the OPT functions, following the settings specified in a previously prepared configuration file. When launched, OPT will ask the path to that file. Its activity will start after receiving that information. The OPT configuration file has to contain a suitable description of the operations to be accomplished pointing to an existing ESP-r model. The OPT configuration file is extended by other files in which the search structures to be searched into or to be generated are specified. Those files are designated with the "$casefile", "$chancefile", "$caseed" and "$chanceseed" variables. But if wanted the variables contained in those files can be written directly in the main configuration file.
In this distribution there is a set of commented template files and an example of OPT configuration file. The example has been written for a previous version of OPT and will not work with the present one due to changes in the header variables. The complete set of files linked to that configuration file may be downloaded athttp://figshare.com/articles/Dataset_of_a_computational_research_on_block_coordinate_search_based_on_building_performance_simulations/1158993 .
To run OPT without making it act on model files, the setting <$exeonfiles = "n";> should be specified in the configuration file. (Note that this can only be aimed to inspect the command that OPTS will give to ESP-r through the shell: the search obtained will be very likely to be different from the one obtained from simulations. This is because if simulations are not launched, the optimal instance at each subspace (block) search cannot be selected. In its place, the base case will be then kept by the program, just to bring the output to completion and examine the operations deriving from the search structure. A sequential block search (Gauss-Seidel method) cannot be run "dry". Only the first sweep of a parallell one (Jacobi method) could.) By setting the variable "$toshell" to the chosen path, the path for the text file that will receive the commands in place of the shell should be specified.
OPT will give instruction to ESP-r via shell to make it modify the building model in different copies. Then, if asked, it will run simulations, retrieve the results, extract some information from them and order it as requested.
Besides an OPT configuration file, also configuration files for propagation of constraints may be created. This will give to the morphing operations much greater flexibility. Propagation of constraints can regard the geometry of a model, solar shadings, mass/flow network, and/or controls; and also, how those pieces of information affect each other and daylighting (calculated through the Radiance lighting simulation program). Example of configuration files for propagation of constraints are included in this distribution.
The ESP-r model folders and the result files that will be created in a parametric search will be named as the root model, followed by a "_" character, followed by a variable number referred to the first morphing phase, followed by a "-" character, followed by an iteration number for the variable in question, and so on for all morphing phases. For example, the model instance produced in the first iteration for a root model named "model" in a search constituted by 3 morphing phases and 5 iteration steps each will be named "model_1-1_2-1_3-1"; and the last one "model_1-5_2-5_3-5".
1) To describe a block search, the first option is to describe the subspace searches via subarrays in an array with parameters numbered. The array variable is @sweeps. Two brute force searches, one having 1, 2 3 as parameters and the other having 1, 4, 5, 7 would have to be described with @sweeps = ( [ [1, 2, 3] ] , [ 1, 4, 5, 7 ] ] ). A block search with the first subspace having 1, 2, 3 as parameters and the second subspace having 3, 4, 5, 6 would have to be described with @sweeps = ( [ [ 1, 2, 3 ] , [ 3, 4, 5, 6 ] ] ).
The blocks are of different size (i.e. each composed by a different number of parameters).
OPT is a program I have written as a side project since 2008 with no funding. It was the first real program I attempted to write. From time to time I add some parts to it. The parts of it that have been written earlier or later are the ones that are coded in the strangest manner.
EXPORT
"opts".
SEE ALSO
The available examples are collected in the "example" directory in this distribution and at the figshare address specified above.
AUTHOR
Gian Luca Brunetti, <gianluca.brunetti@polimi.it>
COPYRIGHT AND LICENSE
Copyright (C) 2008-2014 by Gian Luca Brunetti and Politecnico di Milano. This is free software. You can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2 or later.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 926:
Non-ASCII character seen before =encoding in 'at http://www.esru.strath.ac.uk/Programs/ESP-r.htm.'. Assuming UTF-8