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

Revision history [back]

Often this is modeled just with conductive heat transfer through surface connections, but if you want to have airflow across the zones you probably want to use ZoneMixing. Here is another post on ZoneMixing. OpenStudio doesn't currently support ZoneMixing, unless you add it using an EnergyPlus measure. There aren't any published yet, but I did a proof of concept a while ago, but didn't have a chance to publish it. I'll post link here if I can get it on BCL, but below is the basic part of the cod that adds the zone mixing object. You can see it is basically just the raw text for the IDF object with variables injected into it. The variables could come from user arguments. You could add multiple instances of a measure like this to make more complex models. You could also try to use the air wall construction to identify zones pairs where mixing should occur.

# add a new zone mixing to the model
zone_mixing_string = "
  ZoneMixing,
    #{zone_name} Zone Mixing,  !- Name
    #{zone_name},  !- Zone Name
    #{schedule_name},  !- Schedule Name
    #{zm_calc_method},  !- Design Flow Rate Calculation Method
    #{design_level_si},  !- Design Level
    ,  !- Volume Flow Rate per Area {m3/s/m2}
    ,  !- Volume Flow Rate Per Person {m3/s/person}
    ,  !- Air Changes per Hour {ACH}
    #{source_zone_name},  !- Source Zone Name
    0.0;  !- Delta Temperature
  "
idfObject = OpenStudio::IdfObject::load(zone_mixing_string)
object = idfObject.get
wsObject = workspace.addObject(object)
new_zone_mixing_object = wsObject.get

Often this is modeled just with conductive heat transfer through surface connections, but if you want to have airflow across the zones you probably want to use ZoneMixing. Here is another post on ZoneMixing. OpenStudio doesn't currently support ZoneMixing, unless you add it using an EnergyPlus measure. There aren't any published yet, but I did a proof of concept a while ago, ago but I didn't have a chance to publish it. I'll post link here if I can get II post it on to BCL, but below is the basic part of the cod code that adds the zone mixing object. You can see it is basically just the raw text for the IDF object with variables injected into it. The variables could come from user arguments. You could add multiple instances of a measure like this to make more complex models. You could also try to use the air wall construction to identify zones pairs where mixing should occur.

# add a new zone mixing to the model
zone_mixing_string = "
  ZoneMixing,
    #{zone_name} Zone Mixing,  !- Name
    #{zone_name},  !- Zone Name
    #{schedule_name},  !- Schedule Name
    #{zm_calc_method},  !- Design Flow Rate Calculation Method
    #{design_level_si},  !- Design Level
    ,  !- Volume Flow Rate per Area {m3/s/m2}
    ,  !- Volume Flow Rate Per Person {m3/s/person}
    ,  !- Air Changes per Hour {ACH}
    #{source_zone_name},  !- Source Zone Name
    0.0;  !- Delta Temperature
  "
idfObject = OpenStudio::IdfObject::load(zone_mixing_string)
object = idfObject.get
wsObject = workspace.addObject(object)
new_zone_mixing_object = wsObject.get