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

Finding Degenerate Surfaces in EnergyPlus

asked 2015-04-09 16:53:01 -0500

updated 2015-07-10 09:01:37 -0500

My simulation won't run because I have 11 degenerate surfaces. We have tried to cut up all our large misshapen surfaces but that didn't help. I intersected and matched for the most part using the OpenStudio tool and hand matched and intersected those areas it didn't pick up. Ideally I would like to search for these surfaces and delete them but they don't seem to appear in the idf file. Does anyone know how I can search for degenerate surfaces?

edit retag flag offensive close merge delete


@Annie Marston feel free to convert this to an answer and mark it as correct if you want.

MatthewSteen's avatar MatthewSteen  ( 2015-04-09 20:10:46 -0500 )edit

5 Answers

Sort by ยป oldest newest most voted

answered 2015-06-10 16:34:58 -0500

updated 2015-06-10 17:03:36 -0500

Here's another way to solve it: If you select "DisplayExtraWarnings" from the "Output:Diagnostics" object, you should see some warnings similar to this:

* Warning * GetVertices: Distance between two vertices < .01, possibly coincident. for Surface=C1000000_C24, in Zone=FC-1-1
* ~~~ * Vertex [3]=(98.38,70.59,3.05)
* ~~~ * Vertex [2]=(98.38,70.60,3.05)
* ~~~ * Cannot Drop Vertex [3]; Number of Surface Sides at minimum. This surface is now a degenerate surface.

Further down you will see your severe error that just counts up the number of degenerate surfaces. This is the only error you would see if you didn't use Output:Diagnostics, DisplayExtraWarnings:

* Severe * GetSurfaceData: There are 12 degenerate surfaces; Degenerate surfaces are those with number of sides < 3.
* ~~~ * These surfaces should be deleted.

It's not necessarily surfaces that have <3 sides initially. All of these surfaces had 4 points initially, and when combing through the model, also show up with 4 sides.

edit flag offensive delete link more


@Anna Osborne Brannon , I've selected "DisplayExtraWarnings" from the "Output:Diagnostics" but I still have only the severe error about the degenerate surface without having that kind of warning (above) instead I have this ** Warning ** GetSurfaceData: There are 2 coincident/collinear vertices; These have been deleted unless the deletion would bring the number of surface sides < 3. ** ~~~ ** For explicit details on each problem surface, use Output:Diagnostics,DisplayExtraWarnings;

Raghda Derbel's avatar Raghda Derbel  ( 2018-08-08 04:23:09 -0500 )edit

answered 2015-04-09 18:09:32 -0500

updated 2015-04-10 10:34:36 -0500

It appears I have solved my own problem. I looked in the text file for surfaces with only 3 verticies, checked those verticies to see how close they were and if they were very close deleted the surface. It seems to have worked wonders! Except for one surface, I have one surface left and I don't know how to find it. Would love other suggestions

Update: The degenerate surface has not stopped the simulation from running.

edit flag offensive delete link more


The diagnostic user Script --with both options set to True-- doesn't eliminate the remaining degenerate surface?

keb's avatar keb  ( 2015-04-10 10:44:19 -0500 )edit

Hi Kent, sorry this was the comment at the top that I changed to an answer as requested by Matthew Steen (I am trying to play by the rules!). I got rid of the first 10 surfaces the way i described above i just have to try to find that last one using the Script that David Goldwasser sent through. I'll put a final update on once I figure it all out.

Annie Marston's avatar Annie Marston  ( 2015-04-10 12:05:42 -0500 )edit

Hi Annie, just curious if your workflow still only consisted of going though the osm file and deleting surfaces with only 3 vertices. I received a model that is giving me the exact same trouble. I used the osm diagnostic script which I've used regularly and it actually didn't strip out the degenerate surfaces (swore it has, but at least not this time).

keb's avatar keb  ( 2015-05-06 09:23:15 -0500 )edit

Hi Kent,

I went through the text file with a find tool and deleted all the degenerate surfaces that way, weirdly there was one left which I couldn't find, but it wasn't crashing the simulation so I left it alone. This seems to be working ok for us at the moment

Annie Marston's avatar Annie Marston  ( 2015-05-06 16:54:03 -0500 )edit

Hi Annie, I have a model with a similar degenerate surface problem. I've posted the question on unmet hours yesterday. It has 3303 degenerate surface though, so the method you describe above seems impractical from the number of surfaces. However, after running the diagnostic script, the model won't open. So between the two is not good! :-s

keb's avatar keb  ( 2020-10-08 08:01:04 -0500 )edit

answered 2015-04-09 19:14:41 -0500

updated 2015-04-09 21:07:29 -0500

If EnergyPlus tells you the name of the surface you can find and delete it with a text editor. You may also try the diagnostic user script in the plug-in described here. The diagnostic script has an option to delete for warnings, set that to true. It looks at small area while EnergyPlus looks at edge length do this may not find the surface. Eventually we want to make our test the same as EnergyPlus.

I also thought EnergyPlus just warned about these but kept running the simulation, but that may have changed.

edit flag offensive delete link more



Thanks David, unfortunately EnergyPlus doesn't tell me the name of the surface, just mysteriously tells me that there is a degenerate surface. I will try the user script but the link you set up doesn't seem to be taking me anywhere. I have a couple of other warnings on my file but nothing that has stopped it before, it does seem to be the degenerate surface that is causing the problem.

Annie Marston's avatar Annie Marston  ( 2015-04-09 19:19:20 -0500 )edit

Sorry, here is the correct link. I'll fix it in original post as well.

David Goldwasser's avatar David Goldwasser  ( 2015-04-09 21:06:04 -0500 )edit

@Annie Marston: Weird than it doesn't give you the name of the surface. Do you have Output:Diagnostics set to DisplayAllWarnings?

Julien Marrec's avatar Julien Marrec  ( 2015-04-10 05:56:23 -0500 )edit

Thanks Julien, it still doesn't give me the name which is annoying. I have solved the crashing problem though. there was another error in my model which was causing it to stop working and when we fixed that it ran through. Hooray!

Annie Marston's avatar Annie Marston  ( 2015-04-10 10:33:41 -0500 )edit

Glad to hear you got it working @Annie Marston

Julien Marrec's avatar Julien Marrec  ( 2015-04-10 11:51:50 -0500 )edit

answered 2020-11-09 08:54:17 -0500

I was too excited not to post this solution! It is low-tech excel solution but works. I get the name of degenrate surfaces by adding the extra warning object then use the error file to extract the names of these surfaces. Next step is copying the idf surfaces in the attached sheet and the formulas in there essentially look for the degenerate surfaces and clean up those surfaces (delete them) and one can copy the cleaned surfaces straight from excel back into the idf. Hope this comes handy for you all.

Download everything from the link: link text

edit flag offensive delete link more

answered 2018-10-27 06:46:39 -0500

zhuazheng3's avatar

I also met this problem today. But since I have no tight requirement on the accuracy of the vertices coordinates, I just changed the precision of coordinates instead of deleting the degenerated surfaces by hand. Finally, the errors were disappeared.

edit flag offensive delete link more


Where is this precision changed?

keb's avatar keb  ( 2020-10-08 08:06:29 -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: 2015-04-09 16:53:01 -0500

Seen: 3,286 times

Last updated: Nov 09 '20