The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Sim::OPT.

SYNOPSIS

  use Sim::OPT;
  opt;

DESCRIPTION

Sim::OPT is a set of tools for detailed metadesign of buildings. Its main components are an optimization module pursuing optimization by overlapping block coordinate descent and a morphing module which morphs building models by propagation of constraints through the ESP-r building performance simulation platform. Other components are retrieval and reporting modules and a module emitting parallel coordinates plots in 3D.

A working knowledge of ESP-r (http://www.esru.strath.ac.uk/Programs/ESP-r.htm) is presently necessary to use most functionalitues of OPT. (ESP-r must be compiled for text (not graphics) to be managed by OPT.)

To install OPT, the command <cpanm Sim::OPT> has to be issued. OPT can be loaded through the command <use Sim::OPT> in Perl. For that purpose, the batch file "opt" (which can be found packed in the "optw.tar.gz" file in "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's 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. That file must contain a suitable description of the operations to be accomplished pointing to an existing ESP-r model.

In "optw.tar.gz" there is an example of OPT configuration file ("v.pl"). That file may be decompacted and the resulting folder ("optw") may be used as a work folder for OPT, in which the ESP-r models to be worked may reside. The "$mypath" variable in the configuration file must be set to that work directory.

To run OPT without making it launch ESP-r, the setting <$exeonfiles = "n";> should be specified in the configuration file. This may only be aimed to inspect the commands that OPTS would give to ESP-r through the shell. (In the variable "$toshell" the path to the file that will receive the commands in place of the shell can be specified.) This is only useful for testing the morphing instruction contained in a configuration file before launching a real batch of simulations. Note that in that case the search path will be different from that driven by simulation results. If simulations are not launched, the optimal instance at each subspace search cannot indeed be selected. In its place, the base case will be kept by the program until completion. A sequential block search (Gauss-Seidel method) cannot indeed be run "dry".

If $exeonfiles is set to "y", OPT will give instruction to ESP-r via shell to make it modify the building model in the specified steps. 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, separate configuration files for propagation of constraints may be created. Those can be useful to give the morphing operations 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.

The ESP-r model folders and the result files that will be created in a parametric search will be named as the base building model, numbers and other characters to described an instance. For example, the 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".

The structure of the block searches is described through the variable "@sweeps". Each case is listed inside square brackets. And each search subspace (block) in them is listed inside square brakets, nested in cases. For example: a sequence constituted by two brute force searches, one regarding parameters 1, 2, 3 and the other regarding parameters 1, 4, 5, 7 would be described with: @sweeps = ( [ [ 1, 2, 3 ] ] , [ [ 1, 4, 5, 7 ] ] ). And a block search with the first subspace regarding parameters 1, 2, 3 and the second regarding parameters 3, 4, 5, 6 would be described with: @sweeps = ( [ [ 1, 2, 3 ] , [ 3, 4, 5, 6 ] ] ).

The number of iterations to be taken into account for each parameter for each case is specified in the "@varinumbers" variable. To specifiy that the parameters of the last example are to be tried for three values (iterations) each, @varinumbers has to be set to ( { 1 => 3, 2 => 3, 3 => 3, 4 => 3, 5 => 3, 6 => 3 } ).

Some functionalities of OPT are not specific to the ESP-r platform. Those functionalities are mainly contanined in the "Sim::OPT::Takechance" and "Sim::OPT::Parcoord3d" modules.

The "Sim::OPT::Takechance" module produces efficient search structures for block coordinate descent given some initialization blocks. A section of the configuration file for "Sim::OPT" is dedicated to the "Sim::OPT::Takechance" module.

The "Sim::OPT::Parcoord3d module when receiving as input the data for a bi-dimensional parallel coordinate plot in a cvs file produces as output an Autolisp file that can be used from Autocad or an Intellicad-derived 3D CAD program to obtain a 3D parallel coordinate plot (that may be subsequently saved in dwg, dxf or other formats). A section of the configuration file for "Sim::OPT" is dedicated to the "Sim::OPT::Parcoord3d" module.

Gian Luca Brunetti

gianluca.brunetti@polimi.it

EXPORT

"opt".

SEE ALSO

The available examples are collected in the "example" directory in this distribution.

AUTHOR

Gian Luca Brunetti, <gianluca.brunetti@polimi.it>

COPYRIGHT AND LICENSE

Copyright (C) 2008-2015 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.