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

Yi Zhang's profile - activity

2019-12-07 08:14:37 -0600 edited answer jEplus (1.7.2 and 2.0) stop responding after all jobs are done

Hi Vitor, It is hard to know why jEPlus has stopped. As the journal shows it is at the start of collecting simulation r

2019-12-07 08:14:09 -0600 answered a question jEplus (1.7.2 and 2.0) stop responding after all jobs are done

Hi Vitor, It is hard to know why jEPlus has stopped. As the journal shows it is at the start of collecting simulation r

2019-11-13 11:20:00 -0600 marked best answer Does IDF+ (by Matt Doiron) support Mac yet?

I was looking for an E+ model editor for a Mac user and remembered IDF+. It is a new implementation of the IDFEditor in Python by Matt Doiron, a number of important features that are absent in the original: https://bitbucket.org/mattdoiron/idfp...

My question is whether it supports Mac? I cannot see why not but would be grateful if someone can confirm it before recommending it to the person. Thanks!

2019-11-13 11:20:00 -0600 received badge  Scholar (source)
2019-11-13 11:19:54 -0600 commented answer Does IDF+ (by Matt Doiron) support Mac yet?

Wonderful. Thanks!

2019-11-09 11:07:12 -0600 received badge  Student (source)
2019-11-09 10:32:50 -0600 asked a question Does IDF+ (by Matt Doiron) support Mac yet?

Does IDF+ (by Matt Doiron) support Mac yet? I was looking for an E+ model editor for a Mac user and remembered IDF+. It

2019-11-09 09:59:49 -0600 answered a question how to perform multi-objective optimization with jEPlus?

Copied from jack_l's comment, just to have an answer on the record: "Did you have a look at jEPlus+EA? It's a tool where

2019-11-09 09:55:33 -0600 answered a question How can I load previously saved workspace and continue the optimization from where it was left off with the same configurations of population size and mutation generation on jEPLUS+EA?

Hi, it is probably too late to answer this question... It must be an issue with jEPlus+EA. Just remember to change the E

2019-10-07 04:45:05 -0600 answered a question how to set the environmental variable DISPLAYINPUTINAUDIT=YES for jeplus

If Line 3 "##set1 ..." is the first line in the file to contain a macro definition, it could be that you did not change

2019-05-26 10:47:23 -0600 answered a question How to extract comfortable data from jeplus+EA

The SQL statement you have shown is to get Cat 2 for the space F3:Corridor. Change the zone name in the RowName field fo

2019-05-26 10:26:46 -0600 edited answer JE Plus not working with Energy Plus v9.0+?

Hi Adam, Thanks for raising this question! From E+ v8.9, the output frequency "Annual" and "RunPeriod" have been given

2019-05-26 10:25:56 -0600 answered a question JE Plus not working with Energy Plus v9.0+?

Hi Adam, Thanks for raising this question! From E+ v8.9, the output frequency "Annual" and "RunPeriod" have been given

2017-11-30 17:06:32 -0600 commented question How to include weather related objects in my parametric E+ model?

:-) that's exactly what I was to suggest!

2017-11-29 11:24:59 -0600 commented question How to include weather related objects in my parametric E+ model?

For 3-5 climates, you can probably run them as separate projects :-) Does the climate-dependent group of objects themsel

2017-11-29 08:30:08 -0600 commented question How to include weather related objects in my parametric E+ model?

Hmm, it is a tough one! If running each weather file as a separate project is not an option for you, the only workaround

2017-05-22 12:14:26 -0600 commented answer Producing cost estimate for a VRF System in EnergyPlus for use in jEplus

Uh, I am not completely sure about what jEPlus will do in case of an expected field in the eplustbl.csv is missing. But

2017-05-22 11:00:26 -0600 commented answer Producing cost estimate for a VRF System in EnergyPlus for use in jEplus

What will happen if the model has no VRF and the expected part of the sizing report is void? If jEPlus return value '0',

2017-05-22 03:43:30 -0600 answered a question Producing cost estimate for a VRF System in EnergyPlus for use in jEplus

Hi Jonathan, I guess the VRF cost is linked to the auto sizing outcome. If this is the case, what you really need is to

2016-08-03 12:09:17 -0600 answered a question Using Eppy to extract fenestration from IDF and replace with WWR-derived formulas

Hi Andrea,

We have added Python support in the model preparation stage in jEPlus. Ivan has also made an example script using Eppy to apply WWR to each and every window in the external walls. Below is the script.

You can find further details on how to use Python pre-processing in jEPlus, and download the new version, here: http://www.jeplus.org/wiki/doku.php?i...


# python script for pre-processing: This script takes WWR value from the argument list and modifies all the windows in the IDF model
# This script is designed to work with jEPlus v1.6.4 and later, with the @python? syntax
# @author: Dr Ivan Korolija [ivan.korolija@gmail.com]
# Arguments:
#   sys.argv[1]  -  project's base folder where the project files are located
#   sys.argv[2]  -  folder of the current case where in.idf is located
#   sys.argv[3]  -  Other arguments specified in the parameter definition. They are passed in as a ',' delimited string
#   sys.argv[4]  -  folder of the binary files of the simulation program, e.g. the location of Energy+.idd

import os
from eppy.modeleditor import IDF
import sys
import math

# function for calculating wall width and height
def wall_width_height(coordinates):
    ulc = coordinates[0]  # upper left corner coordinates
    blc = coordinates[1]  # bottom left corner coordinates
    brc = coordinates[2]  # bottom right corner coordinates

    # calculate wall width and height by using the Euclidean distance
    w = math.sqrt(math.pow(
        (brc[0] - blc[0]), 2) + math.pow((brc[1] - blc[1]), 2) +
        math.pow((brc[2] - blc[2]), 2))
    h = math.sqrt(math.pow(
        (ulc[0] - blc[0]), 2) + math.pow((ulc[1] - blc[1]), 2) +
        math.pow((ulc[2] - blc[2]), 2))
    return w, h  # return wall width and height
# End 


# path to E+ idd file (required by eppy)
iddfile = os.path.join(sys.argv[4], 'Energy+.idd')
IDF.setiddname(iddfile)

# path to energyplus input file within each simulated folder
idf = os.path.join(sys.argv[2], 'in.idf')

# glazing ratio convert to integer
gr = int(sys.argv[3])

idf = IDF(idf)  # read idf file to eppy
# extract window and wall objects
window_objects = idf.idfobjects['Window'.upper()]
wall_object = idf.idfobjects['BuildingSurface:Detailed'.upper()]

# loop through window objects
for window in window_objects:
    # find the base surface for the window
    win_base_surface = window.Building_Surface_Name

    # loop through the wall objects
    for wall in wall_object:
        # when wall name equals to the window base surface name extract coords
        if wall.Name == win_base_surface:
            coord = wall.coords
            # calculate wall width and height
            w, h = wall_width_height(coord)
            # calculate wall length and height as a function of glazing ratio
            wl = w * math.sqrt(gr / 100)  # window length
            wh = h * math.sqrt(gr / 100)  # window height
            # starting X/Z coordinates relative to the wall bottom left corner
            x = (w - wl) / 2
            z = (h - wh) / 2

    # coords and window H/L converted into strings and applied to window object
    window.Starting_X_Coordinate = '%.2f' % x
    window.Starting_Z_Coordinate = '%.2f' % z
    window.Length = '%.2f' % wl
    window.Height = '%.2f' % wh

# save the updated idf file
idf.saveas('in.idf')

# Done
2016-08-03 11:47:19 -0600 commented answer Using Eppy to extract fenestration from IDF and replace with WWR-derived formulas

Hi Jamie, excellent demonstration of Eppy/Python and how they can work with EP-Macro and jEPlus! Inspiring!

2016-07-29 10:23:05 -0600 commented answer JEPlus WWR displaces window from surface help

Yes, I think so. Cheers.

2016-07-29 05:18:38 -0600 commented answer JEPlus WWR displaces window from surface help

Hi Dan, I think the issue is with the jEPlus example. It was given for Surface:Detailed objects where full coordinates are used. It did start with calculating the coordinates of the lower left corner. For simple surfaces whose starting corner defaults to the upper left, the calculation needs to be adjusted, apparently.

2016-07-14 06:12:56 -0600 answered a question JEPlus WWR displaces window from surface help

Yes, it is quite easy to make mistakes when editing the geometry of the window... You can post the section of the IDF file that you are editing, including the wall surface, here to have it checked.

Yi

2016-06-13 18:19:07 -0600 commented answer Using EPMacro with JEplus

Ah, I see what you mean, now... "!- " is a comment line. You can put as many as you wish in the IDF and the file should remain valid. Did your second code example give you errors?

2016-06-13 18:16:20 -0600 commented answer Using EPMacro with JEplus

Andrea, I don't quite get your question. Could you explain further what do you mean by "division of CONSTRUCTION from one class to a few"? Anyway you can use ##include, of course. Just put the relevant segments in separate IDFs and then include the required pieces... I am just saying that you don't need to do this with constructions as all different types can exist happily in the same IDF, as long as you give them different names.

2016-06-13 12:16:00 -0600 answered a question Using EPMacro with JEplus

Hi Andrea, you don't even need Macro (##include) to deal with construction/material or insulation thickness. All construction and material definitions can be put in the IDF model, as long as you name them differently. In the model, you assign a construction to a surface by referencing its name; so these assignments can be controlled with jEPlus parameters.

By the way, ##include within an included file will not work. However, you can put jEPlus parameters in the included files, and jEPlus will see them.

Regards,

Yi

2016-06-07 08:19:42 -0600 commented answer JEplus - painful transition from rvi to rvx

Ah, are you using the "csvs" object? It is for reading results from the eplustbl.csv file. If not, just delete the whole "csvs" part and the preceding comma.

2016-06-07 06:20:24 -0600 commented answer JEplus - painful transition from rvi to rvx

There are probably syntax error in your RVX file. It is quite easy to miss a comma here or there. Copy and paste the contents of the RVX to here: http://jsonlint.com/, it will tell you what's wrong.

2016-06-07 02:57:45 -0600 commented answer jeplus - maximum number of jobs - memory usage

This is not a job for parametrics. You can set up the project in jEPlus and then run it with jEPlus+EA. Suggest you read about the strategies for optimum control to see how to formulate the problem.

2016-06-06 14:43:01 -0600 answered a question JEplus - painful transition from rvi to rvx

Hi Andrea,

Sorry about the pain :-) RVI still works in v1.6 if you are collecting only annual results. For other report frequencies, you need to specify it in the RVX:

{
    "notes" : "First RVX test",

    "rvis" : [ 
        { 
            "fileName" : "A0_v4.rvi",
            "tableName" : "BottiRVXResults",
            "frequency" : "Hourly",
            "usedInCalc" : true
        }
    ],
    "csvs" : [
        {...
        }
    ]
}

If you need the output table to be named "SimResults.csv", just set "tableName" to "SimResults". The case naming convention of jEPlus switches from parameter indexes to serial numbers if the project has 7 or more parameters. This is for preventing long path names, which can cause problems for large projects.

Regards,

Yi

2016-06-06 14:19:38 -0600 commented answer jeplus - maximum number of jobs - memory usage

Can you post a screenshot of the simulation monitor screen to show the memory usage situation? If too little is allocated to Java, it can be extended with a command-line option. There are also a few things you can do to reduce the memory load of jEPlus. The most effective one would be cutting back model output as much as you can. Your idea of filtering the results for the minimum value will certainly work, too. You can write a Python script for jEPlus to call. In the script you can loop through the cases and search for the minimum value. Or maybe consider optimisation as Jamie has hinted :-)

2016-06-06 14:19:38 -0600 received badge  Commentator
2016-06-06 02:43:55 -0600 answered a question jeplus - maximum number of jobs - memory usage

There isn't a limit in jEPlus itself, but it is limited by the computing resources as you can run out of storage space or memory if there are too many jobs. It is normally a good idea to run a random sample of a large project, in order to estimate the amount of resources and time required for the whole project.

2016-06-04 04:13:10 -0600 answered a question Error in reading sql output

The eplustbl.sql file is a SQLite database. It is not a SQL command file. So you should open it in DB browser and then do queries using your own SQL command.

2016-06-04 04:07:51 -0600 answered a question What is the correct *.idf file to use in jeplus?

You should use in.idf, as it is the one that enerpyplus executable uses by default. The "out.idf" is probably an intermediate file generated by EP-Macro.

2016-06-04 03:54:38 -0600 answered a question How to mix a *.rvi file with a *rvx file?

Hi Wilson,

Yes, of course. You just need to add a RVI section in the RVX file to reference to RVI file you want to use, like here:

{
    "rvis" : [ 
        { 
            "fileName" : "your.rvi",
            "tableName" : "ElecDemand",
            "frequency" : "Annual",
            "usedInCalc" : true
        }
    ],
    "csvs" : [
        {...
        }
    ]
}

Full details on how to use the RVX file is here: http://www.jeplus.org/wiki/doku.php?i...

Cheers,

Yi

2016-06-01 05:21:42 -0600 answered a question Building Energy Optimization Research Ideas

Hi Jonny,

As Michael and others have pointed out, simply comparing the optimisation tools such as GenOpt, LB+HB+(optimisation) and jEPlus+EA using one design problem may not give you any meaningful results. This is because they are actually designed for solving different types of problems, so you may end up comparing apples to oranges. However, bearing this in mind, there are in fact two valid research questions worth investigating: (1) a comparison on how they can be used in the design process, including the types of problems they are good at solving; and (2) a comparison of the performance of the implemented algorithms in the tools, using a set of well-defined problems whose global optima are known.

From a developer's perspective, I would love to see research addressing either of the questions, although the latter is rather harder. The Wetter/Wright paper remains so far the definitive comparison on algorithms in building optimisation. It can do with an update to include new developments in both problems and algorithms, I think.

Regards,

Yi