Releases: hongyuanjia/eplusr
eplusr v0.16.2
eplusr v0.16.1
eplusr v0.16.0
New features
- Add support for EnergyPlus v22.1 (#517).
- Add support for EnergyPlus v22.2 (#530).
- Add support for EnergyPlus v23.1 (#548).
- Update weather database (#519).
- Add support
Space
inIdfGeometry
. Results fromIdfGeometry$area()
,IdfGeometry$tilt()
andIdfGeometry$azimuth()
now include a new columnspace
indicating the spaces where the surfaces are attached to.IdfGeometry$view()
andIdfViewer$show()
now can render by spaces (#535).
Bug fixes
IdfGeometry$convert()
now work for EnergyPlus v9.6 and above (#536).- Now IMF files can be handled correctly (#537).
- Now
idf$add()
,idf$set()
and other methods accept any list inputs on the
RHS instead of explicitly restricting tolist()
(#545).
Internal refactor
eplusr v0.15.3
Bug fixes
- Fix EPW parsing error due to an update of lubridate (#532).
eplusr v0.15.2
New features
- A new
encoding
parameter has been added inread_idf()
,use_idd()
and
read_epw()
. The default value isunknown
which indicates that the input
file is native encoded (#515). - Now
validate_level
option is respected when parsing EPW files. This makes it
possible to parse EPW files with non-standard EPW header values, which is
useful when only the core EPW data is needed (#520). E.g:with_option(list(validate_level = "none"), read_epw(YOUR_EPW_PATH))
Bug fixes
- Now
IdfGeometry$coord_system()
can correctly work. The coordinate system
type can also be"world"
."absolute"
input now is automatically converted
to"world"
to be compatible with EnergyPlus.IdfGeometry$coord_system()
now returns itself by default, instead of the parentIdf
object. This
enables to check the modified coordinate systems by printing theIdfGeometry
(#506 #507). - Fix
Idf$load()
when input is a single string without any new line (\n
)
(#510). - Fix
IdfViewer$snapshot()
for PNG output. A new parameterwebshot
has been
added inIdfViewer$snapshot()
with default value beingFALSE
(#509). - Now
IdfSchedule$... <- val
works (#512). - Fix the error of invalid datetime in
Epw$data()
when data of Feb 28 is from
a leap year while the EPW did not contain any leap year data (#522).
Documentation
- Regenerate package documentation to fix CRAN NOTES on HTML manuals (#525).
eplusr v0.15.1
Bug fixes
- Fix
ParametricJob$cases()
when multiple objects are specified on the LHS inParametricJob$param()
(#492). - Fix
install_eplus(9.1)
on Linux (#494, #495). - Now
ParametricJob$run()
can correctly use weather file when only one parametric model exists (#497).
Minor changes
- Compatibility changes for incoming {units} v0.8 (#499).
eplusr v0.15.0
New features
-
Idd$path()
is added to show the path of IDD parsed (#442). -
Add epw data sources from climate.onebuilding.org for
download_weather()
.type
will always be"all"
for those sources (#453). -
Add a new
"stat"
option intype
indownload_weather()
(#453). -
Idf$is_valid_id()
andIdf$is_valid_name()
gain a new argument namedclass
defaulting toNULL
to check the validity of object IDs and names again a specific class. -
Add support for EnergyPlus v9.5 (#438).
-
Add support for EnergyPlus v9.6 (#460).
-
Internal function
locate_eplus()
has been exported to enable user to find all available EnergyPlus without restarting R (#477). -
uninstall_eplus()
has been added to enable uninstall EnergyPlus from R on all platform (#477). -
Now force re-installation of EnergyPlus
install_eplus(force = TRUE)
has been updated to support all platforms, including macOS (#477). -
install_eplus()
has been updated to behave smarter on macOS (#477). -
run_idf()
andrun_multi()
have been refactored to mimick theEpl-run.bat
procedure. It supports to call theBasement
andSlab
processors. Now the requirement of EnergyPlus >=v8.3 for running simulations has been droppped Now simulations with FMU, including obFMU are supported. (#467). -
HVAC-Diagram
will be called when running simulations to make sure thesvg
output of HVAC diagram can be generated. Therefore,hvac_diagram()
has been deprecated and will be removed in next major version (#467). -
Functions
path_eplus()
andpath_eplus_*()
have been added to help specify file paths under EnergyPlus installation directory (#467). -
A new
Idf
method$external_deps()
is added to extra any external file resources specified in the IDF that are needed for simulation, e.g. schedule files (#467). -
Now
Idf$save(external = TRUE)
andIdf$run(copy_external)
save external file dependencies based on the results ofIdf$external_deps()
(#467). -
A new
EplusJob
method$list_files()
is added to list all inputs and output files for current simulation (#467). -
A new argument
readvars
can be specified inEplusJob$run()
andEplusGroupJob$run()
. Setting it toFALSE
will disable to run ReadVarsESO post-processor and thus no CSVs will be generated for Report variables and meters. This can speed up simulations significantly if there are hundreds of outputs in the model. Setting it toFALSE
will not affect any data extraction functionalities in eplusr, as it uses the SQLite output instead of the CSVs (#467). -
Now
.()
can also be used as an alias aslist()
inIdf$add()
andIdf$set()
(#445).idf$add(Output_Variable = .("*", "zone mean air temperature")) # is equivalent to idf$add(Output_Variable = list("*", "zone mean air temperature"))
-
A new argument
names
can be specified inParametricJob$models()
to rename the parametric models created (#487). -
A new interface for creating parametric models has been introduced using
ParametricJob$param()
. It takes parameter definitions in list format, which is similar toIdf$set()
except that each field is not assigned with a single value, but a vector of any length, indicating the levels of each parameter. For example, the code block below defines 3 parameters (#487):- Field
Fan Total Efficiency
in object namedSupply Fan 1
in classFan:VariableVolume
class, with 10 levels being 0.1 to 1.0 with a 0.1 step. - Field
Thickness
in all objects in classMaterial
, with 10 levels being 0.01 to 0.1 m with a 0.1 m step. - Field
Conductivity
in all objects in classMaterial
, with 10 levels being 0.1 to 1.0 W/m-K with a 0.1 W/m-K step.
param$param( `Supply Fan 1` = list(Fan_Total_Efficiency = seq(0.1, 1.0, 0.1)), Material := list(Thickness = seq(0.01, 0.1, 0.1), Conductivity = seq(0.1, 1.0, 0.1)) )
- Field
-
ParametricJob$cases()
is added to get a summary of parametric models and parameter values. It returns adata.table
giving you the indices and names of the parametric models, and all parameter values used to create those models.For parametric models created usingParametricJob$param()
, the column names will be the same as what you specified in.names
. For the case ofParametricJob$apply_measure()
, this will be the argument names of the measure functions (#487). -
Now
.names
inParametricJob$apply_measure()
can be a single character. In this case, it will be used as the prefix of all parametric models. The models will be named in the pattern.names_X
whereX
is the model index (#487).
Break changes
hvac_diagram()
has been deprecated asHVAC-Diagram
will always be called after EnergyPlus simulation. If you still want to generate HVACsvg
diagram manually, please useHVAC_Diagram()
instead (#467).
Minor changes
- When
type
is"all"
indownload_weather()
, the ZIP file will be downloaded instead of downloading bothEPW
andDDY
files (#453). EplusJob$output_dir()
now use backslash in the returned path on Windows (#467).- Better error message when no arguments are given to the measure function in
ParametricJob$apply_measure()
(#487).
Bug fixes
- Fix the year value calculation when first day of a run period is holiday (#450).
- Fix
download_weather()
file downloading URL (#452). - Fix
EplusSql$report_data(..., wide = TRUE)
whenDo HVAC Sizing Simulation for Sizing Periods
is set toYes
inSimulationControl
(#461). - Now
read_idf()
and other functions that read files from disk can usestringi::stri_enc_detect()
to fix encoding issue (#467). - Now
ParametricJob$run(dir = NULL)
will always use the seed model directory (#483).
eplusr v0.14.2
New features
-
IddObject$output()
is added to extract all possible outputs of current class. All outputs are extracted from the LaTeX source file of "Input Output Reference" for EnergyPlus v8.5.0 and later. So empty result will always be returned forIdd
version lower than v8.5. It is possible that there are some mistakes introduced when extracting the output variables. Also, some outputs are only available if certain fields are set. Even they are listed in the results, it does not mean that theIdf
can report all of them. It is strongly suggested to check the RDD and MDD file for correctness (#427). Example:idd <- use_idd(8.8) idd$Lights$outputs()
Break changes
- Autocompletion is enabled by registering a S3
.DollarNames
method. Optionautocomplete
is deprecated. A warning is issued if you try to set it ineplusr_option()
. Also,with_speed()
is deprecated and falls back towithout_checking()
when called (#417).
Bug fixes
- Fixed wrong transition of
FuelFactors
from v9.2 to v9.3 (#420). - Fixed
Idf$del
error when both sources and referees are given (#433).
Minor changes
eplusr v0.14.1
eplusr v0.14.0
New features
Epw$save()
gets a new optionformat_digit
. IfTRUE
, the trailing digits
in EPW data will be formatted in the same way as Weather Converter (#323).- Add EnergyPlus v9.3 and v9.4 support (#343, #347, #369).
- Now
ParametricJob$apply_measure()
will give a nice progress bar when
parametric models are creating (#378). - A new argument
separate
is added inEplusGroupJob$run()
and
ParametricJob$run()
with default value beingTRUE
. If set toFALSE
, all
models are saved indir
when simulation, instead of creating a folder for
each model and running simulation there (#381). - When extracting grouped simulation results using
$report_data_dict()
,
$report_data()
and etc inEplusGroupJob
andParametricJob
class, a new
columnindex
is added which contains the indices of simulated models (#388).
This is because when the same model runs with different weather files, the
originalcase
column cannot be used as an identifier.
Major changes
- Now eplusr will always use the SQLite output for data extraction instead of
using the CSV output. In EnergyPlus v9.3 and above, ReadVarsESO is deprecated
and EnergyPlus itself will generate CSV directly. CSVs for variables and
meters are always separated in this way. Together with the newly introduced
Output:Control:Files
which can be set to disable CSV output, it becomes
very cumbersome to continuously support the CSV for data extraction (#307).
Minor changes
- Now rgl and decido package has been moved from Imports to Suggests, since
they are only used in theIdfViewer
class for 3D visualization which is not
the main focus of this package (368). run_multi()
now gets a new argumentexpand_obj
to control whether
ExpandObjects
should be called before simulation or not. Because there is a
known issue ofExpandObjects
on Linux system
(NREL/EnergyPlus#8376), here we want to avoid
unnecessary calls ofExpandObjects
as possible. Also,EplusJob$run()
and
EplusGroupJob$run()
now will detect if there are anyHVACTemplate:*
objects and set theexpand_obj
flag properly (#377).
Bug fixes
- When
.empty
isFALSE
,Idf$set()
andIdf$update()
will keep fields if
there are not the last fields (#310). - Year fields are correctly calculated for EnergyPlus v9.1 and above (#312).
- Fix coordinate system alignment in
IdfGeometry
class (#314). - Fix time matching in
EplusSql$report_data()
(#315). - EPW
COMMENT1
andCOMMENT2
are now parsed as a single string (#318). - Preserve input year values in
Epw$set()
(#322). - Additional columns in
Epw$set()
andEpw$add()
input are now removed
(#320). - Now
Epw$abnormal_data()
can keep columns that contains abnormal data when
keep_all
isFALSE
(#326). Epw$save()
now formats the header in the same way as Weather Converter
(#328).Epw$comment1()
andEpw$comment2()
now acceptsNULL
as input, which will
remove the comments. AndNULL
is returned if no comments are found (#330).- Fix the error when the first field is not in the input in
Idf$update()
(#332). - Fix the error in
EplusJob$report_data()
caused by incomplete
EnvironmentPeriods
table in EnergyPlus SQL output (#336). - Make sure
Day of Week for Start Day
is reset to empty ifUseWeatherFile
was used in transition from v8.9 to v9.0 (#338). - Fix the error in
EplusJob$report_data()
when multiple reporting frequencies
exist in the CSV output (#340). - Fix simulation error when FMU files are given in relative paths (#344). Now
all objects that reference to external files can be correctly copied into
output directory whencopy_external
is set toTRUE
. - Fix the error when using an
Idf
as input inIdf$insert()
(#348). - Sub-hourly EPW files are supported (#351).
- Fix invalid references introduced by setting field values to empty (#355).
- Fix the error message in
EplusGroupJob
when no CSV output was found (#357). - Fix false positive warnings when resolving IDF external file dependencies
(#366). - Empty string input, e.g.
" "
inIdf$add()
andIdf$set()
are now
correctly converted toNA
s (#370). - Now empty comments are kept in
IdfObject$comment()
(#372). - Fix
IdfGeometry$print()
when no building object exists (#395). - Now
IdfGeometry$round_digits()
also applies toZone
class (#397). read_epw()
now accepts date rewind inTYPICAL/EXTREME PERIODS
header
(#401).- Fix
c.EpwDate()
error (#403). - Fix
IdfScheduleCompact$set()
evaluate issue when called in nested
environment (#405). - Now
IdfScheduleCompact$type_limits()
works properly when setting new type
limits (#407).