| run_idf {eplusr} | R Documentation |
Run simulations of EnergyPlus models.
Description
Run simulations of EnergyPlus models.
Usage
run_idf(
model,
weather,
output_dir,
design_day = FALSE,
annual = FALSE,
expand_obj = TRUE,
wait = TRUE,
echo = TRUE,
eplus = NULL
)
run_multi(
model,
weather,
output_dir,
design_day = FALSE,
annual = FALSE,
expand_obj = TRUE,
wait = TRUE,
echo = TRUE,
eplus = NULL
)
Arguments
model |
A path (for |
weather |
A path (for |
output_dir |
Output directory path (for |
design_day |
Force design-day-only simulation. For |
annual |
Force annual simulation. For |
expand_obj |
Whether to run ExpandObject preprocessor before simulation. Default: TRUE. |
wait |
If |
echo |
Only applicable when |
eplus |
An acceptable input (for |
Details
run_idf() is a wrapper of EnergyPlus itself, plus various pre-processors
and post-processors which enables to run EnergyPlus model with different
options.
run_multi() provides the functionality of running multiple models in
parallel.
It is suggested to run simulations using EplusJob class and EplusGroupJob class, which provide much more detailed controls on the simulation and also methods to extract simulation outputs.
Value
For
run_idf(), ifwaitisTRUE, a named list of 11 elements:
| No. | Column | Type | Description |
| 1 | idf | character(1) | Full path of input IDF file |
| 2 | epw | character(1) or NULL | Full path of input EPW file |
| 3 | version | character(1) | Version of called EnergyPlus |
| 4 | exit_status | integer(1) or NULL | Exit status of EnergyPlus. NULL if terminated or wait is FALSE |
| 5 | start_time | POSIXct(1) | Start of time of simulation |
| 6 | end_time | POSIXct(1) or NULL | End of time of simulation. NULL if wait is FALSE |
| 7 | output_dir | character(1) | Full path of simulation output directory |
| 8 | energyplus | character(1) | Full path of called EnergyPlus executable |
| 9 | stdout | character(1) or NULL | Standard output of EnergyPlus during simulation |
| 10 | stderr | character(1) or NULL | Standard error of EnergyPlus during simulation |
| 11 | process | r_process | A process object which called EnergyPlus and ran the simulation |
If wait is FALSE, the R process is directly returned.
You can get the results by calling result <- proc$get_result() (proc is
the returned process). Please note that in this case, result$process will
alwasy be NULL. But you can easily assign it by running result$process <- proc
For
rum_multi(), ifwaitis TRUE, a data.table of 12 columns:No. Column Type Description 1 indexintegerIndex of simulation 2 statuscharacterSimulation status 3 idfcharacterFull path of input IDF file 4 epwcharacterFull path of input EPW file. NAfor design-day-only simulation5 versioncharacterVersion of EnergyPlus 6 exit_statusintegerExit status of EnergyPlus. NAif terminated7 start_timePOSIXctStart of time of simulation 8 end_timePOSIXctEnd of time of simulation. 9 output_dircharacterFull path of simulation output directory 10 energypluscharacterFull path of called EnergyPlus executable 11 stdoutlistStandard output of EnergyPlus during simulation 12 stderrlistStandard error of EnergyPlus during simulation For column
status, there are 4 possible values:-
"completed": the simulation job is completed successfully -
"failed": the simulation job ended with error -
"terminated": the simulation job started but was terminated -
"cancelled": the simulation job was cancelled, i.e. did not start at all
-
For
run_multi(), ifwaitisFALSE, a r_process object of background R process which handles all simulation jobs is returned. You can check if the jobs are completed using$is_alive()and get the final data.table using$get_result()method.
Note
If your input model has external file dependencies, e.g. FMU, schedule files,
etc. run_idf() and run_multi() will not work if the output directory is
different that where the input mode lives. If this is the case, parse the
model using read_idf() and use Idf$run() or eplus_job() instead.
They are able to automatically change the paths of external files to absolute
paths or copy them into the output directory, based on your choice.
Author(s)
Hongyuan Jia
References
Running EnergyPlus from Command Line (EnergyPlus GitHub Repository)
See Also
EplusJob class and ParametricJob class which provide a more friendly interface to run EnergyPlus simulations and collect outputs.
Examples
## Not run:
idf_path <- system.file("extdata/1ZoneUncontrolled.idf", package = "eplusr")
if (is_avail_eplus("8.8")) {
# run a single model
epw_path <- file.path(
eplus_config("8.8")$dir,
"WeatherData",
"USA_CA_San.Francisco.Intl.AP.724940_TMY3.epw"
)
run_idf(idf_path, epw_path, output_dir = tempdir())
# run multiple model in parallel
idf_paths <- file.path(eplus_config("8.8")$dir, "ExampleFiles",
c("1ZoneUncontrolled.idf", "1ZoneUncontrolledFourAlgorithms.idf")
)
epw_paths <- rep(epw_path, times = 2L)
output_dirs <- file.path(tempdir(), tools::file_path_sans_ext(basename(idf_paths)))
run_multi(idf_paths, epw_paths, output_dir = output_dirs)
}
## End(Not run)