thliebig / CSXCAD

A C++ library to describe geometrical objects and their physical or non-physical properties.
http://openEMS.de
GNU Lesser General Public License v3.0
34 stars 38 forks source link

Unused primitive error #27

Closed GMellar closed 1 year ago

GMellar commented 2 years ago

Since the commit 418a8a94ee3266e6b9288d65897f6b7455f69059 I get unused primitive errors for overlapping cylinder primitives. It affects cases where a coaxial cable is created and a cylinder is connected to the end to connect the coaxial line to PCB board. Maybe these changes affected something else. I will try to create a test case.

Why is a cylinder primitive unused when there are no mesh line at the edges? Even when there are enough fine grid cells inside the cylinder it is not used.

thliebig commented 2 years ago

This should not happen, if the warning said it was not used, this will be the case. Please create a simple case to demonstrate this...

GMellar commented 2 years ago

At the moment I'm using pyems to generate the structure so the python interface is used. OpenEMS does not handle the xml file directly. Can you elaborate this with the geometry xml file AppCSXCAD is able to open?

thliebig commented 2 years ago

Yes, that would be enough... But please make it as simple/small as you can...

GMellar commented 2 years ago

test.zip

This test file defines a cylinder and cylinders around it. Cylinder0 property is never used though it has enough mesh cells which should use this property.

thliebig commented 2 years ago

Well all "smaller" cylinder seem to have the same priority (-1). And the material "cylinder0" is overlapping "air" and thus these seem to loose the priority fight... Having objects in the same space with the same priority is considered undefined behavior ...

thliebig commented 2 years ago

Please make sure all overlapping objects have different/correct priorities. So this does not look to be related to the last patch?

GMellar commented 2 years ago

test.zip

Maybe this is not related to the last commit but after the new compilation of openems this error occured. See the attached file. There are now very different priorities where no equal priority is overlapping. This results in the same behaviour. Why is it undefined behaviour when the same priority overlaps a mesh cell?

GMellar commented 2 years ago

test.zip

Another example with cylindrical shells where the shell geometry is not touching the cylinder. The cylindrical shells are completely ignored by the simulation.

thliebig commented 2 years ago

Well I forgot that if you write the xml file with python it only contains the structure and not the openEMS simulation setup... So I cannot easily run it... I will see if I can get it working and can see the problem. Can you maybe check if the commit you mentioned is the problem and reset CSXCAD to a version prio to it? And want to make sure that it is not this commit...

thliebig commented 2 years ago

Please give the latest version a test, there was a bug in the new bounding box algorithm. Cylinder0 does not complain anymore. But the material "air" still does, is that correct?

Why is it undefined behaviour when the same priority overlaps a mesh cell?

If you have e.g. two objects in two different materials (properties) and they overlap and have the same priority, which one should be used? I am currently not sure which one will win this, because it will depend e.g. on the order of the objects or properties and such, but this may change or depend on other things. Therefore I consider it undefined. I hope that clarifies it? See also here

thliebig commented 1 year ago

Please feel free to reopen if the issues is still unclear or unsolved