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

Has EMS coding in EnergyPlus been developed up to defining temperature-dependent material properties(eg. The thermal conductivity of drywall) at each timestep?

asked 2020-09-22 23:59:30 -0500

sajithwjay's avatar

updated 2020-09-23 13:56:05 -0500

The regular IDF/IDF editor facilitates to enter the thermophysical properties under the materials. Has there been a way developed to implement temperature-dependent (at each timestep) logic to determine the material thermophysical property and override the static value? This is in addition to ThempratureDependentTermalConductivity object already in EP.

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2020-09-23 11:19:40 -0500

updated 2020-09-24 08:25:26 -0500

You don't have to use EMS to define how the conductivity of a material layer changes with temperature. You can use the MaterialProperty:VariableThermalConductivity object that can set value pairs of thermal conductivity at specific temperatures (EnergyPlus will linearly interpolate thermal conductivity for temperatures between what you define). This requires using the ConductionFiniteDifference aka CondFD algorithm in the HeatBalanceAlgorithm object, which affects all surfaces in the model. You can define more settings for this algorithm using the HeatBalanceSettings:ConductionFiniteDifference object. You can read more about how to use this algorithm here and here.

If you wanted to define how other material layer properties (density, specific heat, etc.) change with temperature, then you CANNOT do that in EnergyPlus -- even through EMS. This is because EMS Actuators that can override normal EnergyPlus behavior are pre-defined -- you can only override some inputs of EnergyPlus models, not all inputs. This also applies to material layer conductivity -- there is no EMS actuator that directly sets that parameter.


If you want to set a material layer's conductivity based on multiple parameters and not just the material layer's temperature, then the closest that you could get is by overriding the construction assembly assigned to a surface using EMS. The idea would be to define logic to know what conductivity should be applied, have a material layer already defined in the model for that case, and use EMS to assign the construction assembly with that material layer.

This is done using the EMS Actuator for Surface Construction State. You can see an example of doing this for thermochromic windows in the EMS Application Guide. For each unique construction assembly that you want to be able to assign to a surface, you will need to create a unique Surface Construction State EMS Actuator. Use your logic within EMS programs to define when construction assemblies should switch accordingly.

If you're trying to model continuous changes (melting PCM, e.g.) then I would recommend still using the temperature/conductivity value pairs defined by the MaterialProperty:VariableThermalConductivity object to account for the impact of the material layer's temperature. To account for other factors impacting conductivity (exterior/interior environment temperature, relative humidity, etc.), define a new instance of the MaterialProperty:VariableThermalConductivity object.

edit flag offensive delete link more


Thank you very much for the description. The idea is to determine a thermal conductivity value of a material layer based on a externally written logic so that an updated thermal conductivity will be applied for the layer in the next timestep. The logic may depend on the material layer temperature, exterior/interior environment temperature, the relative humidity outputs of the current timestep. I think that level of control may not be available at EMS as of yet?

sajithwjay's avatar sajithwjay  ( 2020-09-23 17:20:52 -0500 )edit

@sajithwjay got it, I've updated my answer.

Aaron Boranian's avatar Aaron Boranian  ( 2020-09-24 08:24:15 -0500 )edit

Thank you for the helpful guidance. I will proceed to apply it and give feedback.

sajithwjay's avatar sajithwjay  ( 2020-09-24 16:02:15 -0500 )edit

Hi Aaron, I apologize for the late response. Yes, I have been using the above technique and so far it seems to be working and I am in the process of verifying the outputs. The only thing is I cannot use CondFD algorithm to model the envelope heat transfer when I am using the override. It works for ConductionTransferFunction only. Have you come across this situation?

sajithwjay's avatar sajithwjay  ( 2020-10-11 16:12:28 -0500 )edit

From the EMS docs for construction state actuator, " If using the heat transfer algorithm called ConductionFiniteDifference, then the constructions must have the same number of finite difference nodes or the assignment is not allowed. The construction state actuator cannot be used in conjunction with the heat transfer algorithms called ConductionFiniteDifferenceSimplified or CombinedHeatAndMoistureFiniteElement."

Aaron Boranian's avatar Aaron Boranian  ( 2020-10-11 16:35:47 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2020-09-22 23:59:30 -0500

Seen: 684 times

Last updated: Sep 24 '20