Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Eppy fails then running large amount of IDF files

Hi

I am using eppy to run a series of premade IDF files. I have used the code segment described in "Running in parallel processes using Generators." in the eppy documentation. The code segment works perfectly for smaller series of IDF files, but I start getting errors, then I add up to 10000 plus IDF files in the queue. My error right now:

Program Version,EnergyPlus, Version 8.9.0-40101eaafd, YMD=2022.07.11 15:00, * Severe * <root> - Missing required property 'GlobalGeometryRules'. * Fatal * Errors occurred on processing input file. Preceding condition(s) cause termination. ...Summary of Errors that led to program termination: ..... Reference severe error count=1 ..... Last severe error=<root> - Missing required property 'GlobalGeometryRules'. *** Warning: Node connection errors not checked - most system input has not been read (see previous warning). *** Fatal error -- final processing. Program exited before simulations began. See previous error messages. *** EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors. *** EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors. *** EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 1 Severe Errors; Elapsed Time=00hr 00min 0.40sec multiprocessing.pool.RemoteTraceback: """ Traceback (most recent call last): File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\site-packages\eppy\runner\run_functions.py", line 374, in run check_call(cmd) File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 364, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['C:/EnergyPlusV8-9-0\energyplus.exe', '--weather', 'E:\BetweenBlinds\Between_LosAngeles__Beijing\LAX\EnergySim\LAX.epw', '--output-directory', 'E:\BetweenBlinds\Between_LosAngeles__Beijing\LAX\EnergySim\Unlimited\smallOffice__WFR10__NE__BetweenBlinds15__70__LOWE__2Layer__PO__300_Wm2\EnergyPlus', '--expandobjects', '--readvars', '--output-prefix', 'smallOffice__WFR10__NE__BetweenBlinds15__70__LOWE__2Layer__PO__300_Wm2', '--output-suffix', 'C', 'C:\Windows\system32\multi_runs\idf_45554\in.idf']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\multiprocessing\pool.py", line 125, in worker result = (True, func(args, *kwds)) File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\site-packages\eppy\runner\run_functions.py", line 215, in multirunner run(args[0], *args[1]) File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\site-packages\eppy\runner\run_functions.py", line 389, in run raise EnergyPlusRunError(message) eppy.runner.run_functions.EnergyPlusRunError:

But the GlobalGeometryRules are in the IDF files for the given file. Therefore I am inclined to believe the error is occurring. Then I run many IDF files (10000+). Therefore I would be interested if anyone knew how to catch these errors in the Eppy foundation before it crashes my program.

def make_eplaunch_options(idf):
"""Make options for run, so that it runs like EPLaunch on Windows"""
idfversion = idf.idfobjects['version'][0].Version_Identifier.split('.')
idfversion.extend([0] * (3 - len(idfversion)))
idfversionstr = '-'.join([str(item) for item in idfversion])
fname = idf.idfname
options = {
    'ep_version':idfversionstr, # runIDFs needs the version number
    'output_prefix':os.path.basename(fname).split('.')[0],
    'output_suffix':'C',
    'output_directory':os.path.dirname(fname),
    'readvars':True,
    'expandobjects':True
    }
return options

def energy_simulations(recipe, log, config, fnames):
"""
Run all no-MSF energy simulations
"""

iddfile = os.path.join(config.getValue('path', "energyplus"),"Energy+.idd") 
log.debug("Energyplus version:" + iddfile)
IDF.setiddname(iddfile)
epwfile = recipe.location_folder + "\\EnergySim\\{}.epw".format(recipe.IATA)

while len(fnames) > 0: 

    idfs = (IDF(fname, epwfile) for fname in fnames)
    runs = ((idf, make_eplaunch_options(idf) ) for idf in idfs)

    num_CPUs = recipe.threadcapacity
    log.debug("Cores in use:" + str(num_CPUs))
    runIDFs(runs, num_CPUs)

    #Checks that all simulation have runned if not they will be re-run
    problems = []
    for path in fnames:
        if not os.path.exists((path.split(".")[0] + ".csv")):
            problems.append(path)
    fnames = problems
    log.debug("Problems cases in No-MSF:" + str(fnames))

Please write if you need more information.

Best Rasmus

Eppy fails then running large amount of IDF files

Hi

I am using eppy to run a series of premade IDF files. I have used the code segment described in "Running in parallel processes using Generators." in the eppy documentation. The code segment works perfectly for smaller series of IDF files, but I start getting errors, then I add up to 10000 plus IDF files in the queue. My error right now:

Program Version,EnergyPlus, Version 8.9.0-40101eaafd, YMD=2022.07.11 15:00,
 * ** Severe  * ** <root> - Missing required property 'GlobalGeometryRules'.
 * **  Fatal  * ** Errors occurred on processing input file. Preceding condition(s) cause termination.
 ...Summary of Errors that led to program termination:
 ..... Reference severe error count=1
 ..... Last severe error=<root> - Missing required property 'GlobalGeometryRules'.
 *** ************* Warning:  Node connection errors not checked - most system input has not been read (see previous warning).
 *** ************* Fatal error -- final processing.  Program exited before simulations began.  See previous error messages.
 *** ************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.
 *** ************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors.
 *** ************* EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 1 Severe Errors; Elapsed Time=00hr 00min  0.40sec
 multiprocessing.pool.RemoteTraceback:  
"""
Traceback (most recent call last):
 File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\site-packages\eppy\runner\run_functions.py", line 374, in run
 check_call(cmd)
 File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 364, in check_call
 raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['C:/EnergyPlusV8-9-0\energyplus.exe', '['C:/EnergyPlusV8-9-0\\energyplus.exe', '--weather', 'E:\BetweenBlinds\Between_LosAngeles__Beijing\LAX\EnergySim\LAX.epw', 'E:\\BetweenBlinds\\Between_LosAngeles__Beijing\\LAX\\EnergySim\\LAX.epw', '--output-directory', 'E:\BetweenBlinds\Between_LosAngeles__Beijing\LAX\EnergySim\Unlimited\smallOffice__WFR10__NE__BetweenBlinds15__70__LOWE__2Layer__PO__300_Wm2\EnergyPlus', 'E:\\BetweenBlinds\\Between_LosAngeles__Beijing\\LAX\\EnergySim\\Unlimited\\smallOffice__WFR10__NE__BetweenBlinds15__70__LOWE__2Layer__PO__300_Wm2\\EnergyPlus', '--expandobjects', '--readvars', '--output-prefix', 'smallOffice__WFR10__NE__BetweenBlinds15__70__LOWE__2Layer__PO__300_Wm2', '--output-suffix', 'C', 'C:\Windows\system32\multi_runs\idf_45554\in.idf']' 'C:\\Windows\\system32\\multi_runs\\idf_45554\\in.idf']' returned non-zero exit status 1.

1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
 File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\multiprocessing\pool.py", line 125, in worker
 result = (True, func(args, *kwds))
  func(*args, **kwds))
File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\site-packages\eppy\runner\run_functions.py", line 215, in multirunner
    run(args[0], *args[1])
  run(*args[0], **args[1])
File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\site-packages\eppy\runner\run_functions.py", line 389, in run
 raise EnergyPlusRunError(message)
eppy.runner.run_functions.EnergyPlusRunError: 

eppy.runner.run_functions.EnergyPlusRunError:

But the GlobalGeometryRules are in the IDF files for the given file. Therefore I am inclined to believe the error is occurring. Then I run many IDF files (10000+). Therefore I would be interested if anyone knew how to catch these errors in the Eppy foundation before it crashes my program.

def make_eplaunch_options(idf):
"""Make options for run, so that it runs like EPLaunch on Windows"""
idfversion = idf.idfobjects['version'][0].Version_Identifier.split('.')
idfversion.extend([0] * (3 - len(idfversion)))
idfversionstr = '-'.join([str(item) for item in idfversion])
fname = idf.idfname
options = {
    'ep_version':idfversionstr, # runIDFs needs the version number
    'output_prefix':os.path.basename(fname).split('.')[0],
    'output_suffix':'C',
    'output_directory':os.path.dirname(fname),
    'readvars':True,
    'expandobjects':True
    }
return options

def energy_simulations(recipe, log, config, fnames):
"""
Run all no-MSF energy simulations
"""

iddfile = os.path.join(config.getValue('path', "energyplus"),"Energy+.idd") 
log.debug("Energyplus version:" + iddfile)
IDF.setiddname(iddfile)
epwfile = recipe.location_folder + "\\EnergySim\\{}.epw".format(recipe.IATA)

while len(fnames) > 0: 

    idfs = (IDF(fname, epwfile) for fname in fnames)
    runs = ((idf, make_eplaunch_options(idf) ) for idf in idfs)

    num_CPUs = recipe.threadcapacity
    log.debug("Cores in use:" + str(num_CPUs))
    runIDFs(runs, num_CPUs)

    #Checks that all simulation have runned if not they will be re-run
    problems = []
    for path in fnames:
        if not os.path.exists((path.split(".")[0] + ".csv")):
            problems.append(path)
    fnames = problems
    log.debug("Problems cases in No-MSF:" + str(fnames))

Please write if you need more information.

Best Rasmus Rasmus

Eppy fails then running large amount of IDF files

Hi

I am using eppy to run a series of premade IDF files. I have used the code segment described in "Running in parallel processes using Generators." in the eppy documentation. The code segment works perfectly for smaller series of IDF files, but I start getting errors, then I add up to 10000 plus IDF files in the queue. My error right now:

Program Version,EnergyPlus, Version 8.9.0-40101eaafd, YMD=2022.07.11 15:00,
** Severe  ** <root> - Missing required property 'GlobalGeometryRules'.
**  Fatal  ** Errors occurred on processing input file. Preceding condition(s) cause termination.
...Summary of Errors that led to program termination:
..... Reference severe error count=1
..... Last severe error=<root> - Missing required property 'GlobalGeometryRules'.
************* Warning:  Node connection errors not checked - most system input has not been read (see previous warning).
************* Fatal error -- final processing.  Program exited before simulations began.  See previous error messages.
************* EnergyPlus Warmup Error Summary. During Warmup: 0 Warning; 0 Severe Errors.
************* EnergyPlus Sizing Error Summary. During Sizing: 0 Warning; 0 Severe Errors.
************* EnergyPlus Terminated--Fatal Error Detected. 0 Warning; 1 Severe Errors; Elapsed Time=00hr 00min  0.40sec

multiprocessing.pool.RemoteTraceback: 

"""
Traceback (most recent call last):
File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\site-packages\eppy\runner\run_functions.py", line 374, in run
check_call(cmd)
File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\subprocess.py", line 364, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['C:/EnergyPlusV8-9-0\\energyplus.exe', '--weather', 'E:\\BetweenBlinds\\Between_LosAngeles__Beijing\\LAX\\EnergySim\\LAX.epw', '--output-directory', 'E:\\BetweenBlinds\\Between_LosAngeles__Beijing\\LAX\\EnergySim\\Unlimited\\smallOffice__WFR10__NE__BetweenBlinds15__70__LOWE__2Layer__PO__300_Wm2\\EnergyPlus', '--expandobjects', '--readvars', '--output-prefix', 'smallOffice__WFR10__NE__BetweenBlinds15__70__LOWE__2Layer__PO__300_Wm2', '--output-suffix', 'C', 'C:\\Windows\\system32\\multi_runs\\idf_45554\\in.idf']' returned non-zero exit status 1.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\multiprocessing\pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\site-packages\eppy\runner\run_functions.py", line 215, in multirunner
run(*args[0], **args[1])
File "C:\Users\ms-admin\AppData\Local\Programs\Python\Python38\lib\site-packages\eppy\runner\run_functions.py", line 389, in run
raise EnergyPlusRunError(message)
eppy.runner.run_functions.EnergyPlusRunError:

But the GlobalGeometryRules are in the IDF files for the given file. Therefore I am inclined to believe the error is occurring. Then I run many IDF files (10000+). Therefore I would be interested if anyone knew how to catch these errors in the Eppy foundation before it crashes my program.

def make_eplaunch_options(idf):
"""Make options for run, so that it runs like EPLaunch on Windows"""
idfversion = idf.idfobjects['version'][0].Version_Identifier.split('.')
idfversion.extend([0] * (3 - len(idfversion)))
idfversionstr = '-'.join([str(item) for item in idfversion])
fname = idf.idfname
options = {
    'ep_version':idfversionstr, # runIDFs needs the version number
    'output_prefix':os.path.basename(fname).split('.')[0],
    'output_suffix':'C',
    'output_directory':os.path.dirname(fname),
    'readvars':True,
    'expandobjects':True
    }
return options

def energy_simulations(recipe, log, config, fnames):
"""
Run all no-MSF energy simulations
"""

iddfile = os.path.join(config.getValue('path', "energyplus"),"Energy+.idd") 
log.debug("Energyplus version:" + iddfile)
IDF.setiddname(iddfile)
epwfile = recipe.location_folder + "\\EnergySim\\{}.epw".format(recipe.IATA)

while len(fnames) > 0: 

    idfs = (IDF(fname, epwfile) for fname in fnames)
    runs = ((idf, make_eplaunch_options(idf) ) for idf in idfs)

    num_CPUs = recipe.threadcapacity
    log.debug("Cores in use:" + str(num_CPUs))
    runIDFs(runs, num_CPUs)

    #Checks that all simulation have runned if not they will be re-run
    problems = []
    for path in fnames:
        if not os.path.exists((path.split(".")[0] + ".csv")):
            problems.append(path)
    fnames = problems
    log.debug("Problems cases in No-MSF:" + str(fnames))

Please write if you need more information.

Best Rasmus