- Now you can directly download EnergyPus Weather File (.epw) and Design Day
File (.ddy) using new function
download_weather()
. It takes a regular expression as input, searches through EnergyPlus weather data base (stored in this package), download corresponding files and return the saved paths. Below are some examples:- Search locations that contains string
"los angeles"
and"tmy"
, return a menu to select which one(s) to download. Once selected, download both corresponding weather file(s) and design day file(s):download_weather("los angeles.*tmy", type = "all", ask = TRUE)
- Same as above, expect that all files will be renamed to
la.epw(ddy)
,la_1.epw(ddy)
,la_2.epw(ddy)
:download_weather("los angeles.*tmy", filename = "la", type = "all", ask = TRUE)
- Search locations that contains string
"beijing"
and"cswd"
. If no more than 3 results found, directly download all weather files and save them to temperory directory.download_weather("beijing.*cswd", dir = tempdir(), type = "epw", ask = FALSE, max_match = 3)
- Search locations that contains string
- Now
clean_wd()
is run before every call to EnergyPlus.
-
$clone()
method has been refactored forIdf
andIdd
class. This fix the issue that internal shared environments were not cloned in version 0.9.3. -
Fix the error that
$save()
and$string()
inIdf
class did not respectformat
argument. -
Fix the error that
$apply_measure()
inParametricJob
class did not respect.names
argument.
- Add support for EnergyPlus v9.0.0.
- Remove duplicates when update value references (#20).
- Clean up the dirty code that manually modifies
$clone()
method in R6 in order to be compatible with (#19). After this,deep
has to be set toTRUE
if a completed cloned copy is desired. Also, documentations on$clone()
method inEpw
,EplusJob
,ParametricJob
have been added.
clean_wd()
is called internally when running EnergyPlus models. This guarantees that the old output file from last simulation is cleaned up before the new simulation starts.
- A new class
EplusSql
has been added. This makes it possible to directly retrieve simulation results without creating anEplusJob
object which can only get simulation outputs after the job was successfully run before. It can be easily created usingeplus_sql()
function. However, it should be noted that, unlikeEplusJob
, there is no checking on whether the simulation is terminated or completed unsuccessfully, or the parent Idf has been changed since last simulation. This means that you may encounter some problems when retrieve data from an unsuccessful simulation. It is suggested to carefully go through the.err
file to make sure the output data in the SQLite is correct and reliable. Currently, there are only few methods inEplusSql
class which have some overlaps with theses inEplusJob
, but more methods may be added in the future. For more details, please see the documentation ofEplusSql
.
- Fix the error of missing Idf file when
dir
is notNULL
in$run()
inIdf
class.
- Long lines in err files now will be wrapped when printed.
-
Fix the error when checking invalid extensible fields in value validation.
-
Fix the error that value references did not get updated when setting values to
NA
in$set_value()
inIdfObject
and$set_object()
inIdf
.
-
parallel_backend
argument inrun_multi()
has been removed, due to the reason that supporting remote parallel computing is out of the scope of this package. This makes it possible to remove bothfuture
andfurrr
package dependencies. The default behavior ofrun_multi()
does not change if running on local machine, as it still runs multiple EnergyPlus instances in parallel. -
In
run_idf()
andrun_multi()
,eplus
argument has been moved to be the last argument with default value setting toNULL
. This will make them a little bit more convenient to run EnergyPlus without explicitly specify the version. IfNULL
, the version of EnergyPlus is automatically detected using the version field of input model. For example:# before run_idf(8.8, model.idf, weather.epw) # after run_idf(model.idf, weather.epw)
-
Both argument
echo
andwait
have been added torun_idf()
andrun_multi()
. Unlike the behavior in eplusr 0.8.3 whenecho
isTRUE
inrun_idf()
, right nowecho
only control whether to show the output from EnergyPlus command line interface. Please usewait
to control whether to wait until the simulation is complete or not.
-
Package documentation has been heavily updated. Examples of every exported class and most functions have been added. Also, an example IDF file
"1ZoneUncontrolled.idf"
from EnergyPus v8.8.0 is included in the package, which makes it possible to run most examples without installing EnergyPlus. Of cause, for examples inEplusJob
andParametricJob
class, EnergyPlus installation is needed to run them successfully. -
The brilliant package crayon is used to support colorful printing of
Idd
,Idf
,IddObject
,IdfObject
,Epw
,EplusJob
andParametricJob
classes. -
A new type of
"character"
validation has been added, which will check if field values should be characters but are not. -
A new option
copy_external
has been added in$run()
inIdf
class. IfTRUE
, the external files will also be copied into the output directory. Currently, onlySchedule:File
class is supported. This ensures that the output directory will have all files needed for the model to run. -
$validate()
inIdf
andIdfObject
class will also check incomplete extensible groups. Extensible groups that only contain any empty field are treated as invalid. -
New methods
$field_reference()
and$field_possible()
have been added intoIddObject
class.$field_possible()
is basically the same as the$possible_value()
inIdfObject
class. This makes it possible to show all available references for a class that does not have any object yet.$field_reference()
only returns all available reference values for specified fields. NOTE:$field_reference()
and$field_possible()
can only be used inIddObject
s that are created using$definition()
inIdf
class andIdfObject
class, and cannot be used inIddObject
s that are created using$object()
or equivalent inIdd
class. This is because both methods need shared Idf value data to collect all reference values.
-
use_eplus()
now returns an invisible list of EnergyPlus configure data instead ofNULL
. -
The default value of
dir
argument indownload_eplus()
has been removed, which enforce the user to explicitly specify the directory to save EnergyPlus installer file, as per CRAN reviewer comment. -
A new option
"auto"
fordownload
argument inuse_idd()
has been added, which will automatically download corresponding EnergyPlus IDD file if the file or Idd object is currently not available. -
The
dir
argument ininstall_eplus()
has been removed, as per CRAN reviewer comments. The EnergyPlus installer file will be saved intotempdir()
. -
The default value of
dir
argument in$run()
inIdf
class has been removed, as per CRAN reviewer comments. Users can explicitly setdir
toNULL
if they want to use the directory of input IDF file. -
The default value of
echo
inrun_idf()
has been changed toTRUE
, which will always show EnergyPlus simulation process to the console. -
Fix the error of
output_dir
argument checking inrum_multi()
. -
Now an informative error message is given when there is no SQL output found when tring to read simulation output using
$report_data()
,$report_data_dict
andtabular_data()
inEplusJob
class. -
run_idf()
andrun_multi()
now does not callclean_wd()
as this is automatically handled by EnergyPlus itself.
-
Fix errors when try to get units
$field_name()
,$field_unit()
and$field_default()
inIddObject
class. -
Fix the error that
$get_value()
and$table()
inIdfObject
class did not return all field values evenall
was set toTRUE
. -
Fix the error that
$table()
inIdfObject
class did not return field units evenunit
was set toTRUE
. -
Fix the error that
$replace_value()
inIdf
class did not update object names. -
Fix the error when
unit
is set toTRUE
in$get_data()
inEpw
class. -
Fix the error that
$state_province
inEpw
class always returnsNULL
. -
Fix the error of missing expanded IDF files which occured randomly in
run_multi()
.
-
A new method
$possible_value()
has been added intoIdfObject
class, which will return all possible values for selected fields, including auto-value (autosize or autocalculate), default, range, choices and references. -
New parameter
dir
has been added toinstall_eplus()
, which makes it possible for keeping the downloaded EnergyPlus installation file. -
$dup_object()
inIdf
class now can duplicate one object multiple times.
-
The names of returned list of
$get_value()
inIdfObject
is "underscore" name, not lower name. This makes its behavior being consistent with$object()
inIdf
class. -
When
wait
isFALSE
,$run()
inEplusJob
andParametricJob
will return itself instead of the time when simulation started. -
A clear message will be given when trying to run
$kill()
inParametricJob
, which inform the user that currently$kill()
does not for parametric simulations. -
A warning will be given if no configuration data found in
eplus_config()
. -
Now the names of returned list from
$search_object()
inIdf
class will also be underscore-style object names, which makes its behavior being consistent with$object()
and$object_in_class()
. Also, if no results found,$search_object()
now will return invisibleNULL
and give a message. -
$dup_object()
will give an error if givennew_name
is the an existing object name.
-
Fix errors in
$status()
,$output_dir()
and$locate_output()
inParametricJob
class whenwhich
arg is not given (#12). -
Fix idf input version parsing in
param_job
(#13). -
Fix EnergyPlus downloading and installing errors on Linux and macOS (#14, #17).
-
Fix
run_idf()
andrun_multi()
errors on Linux and macOS (#14). -
Fix missing name attribute in class
NodeList
(#16). -
Fix errors in
use_eplus()
when input is an EnergyPlus installation path (#18).
$get_value()
inIdfObject
class new has a new argumentsimplify
. IfTRUE
, a character vecotr will be returned instead of a named list. Default isFALSE
.
- The names of returned list of
$get_value()
inIdfObject
is "underscore" name, not lower name. This makes its behavior being consistent with$object()
inIdf
class.
-
Fix warning messages of column type coercion from data.table in
Idf
andIdfObject
. -
$set_value()
inIdfObject
and$set_object()
inIdf
now will delete empty fields with empty value. This fix the error when trying to reassign only some empty fields which have been deleted before.
- Add package logo.
- Add Epw, EplusJob and ParametricJob class and methods.
- Add IdfObject and IddObject class and methods.
- Refactor Idf and Idd class methods.