Skip to content

Commit ce40089

Browse files
committed
Adds test with issue for certain dielectrics.
1 parent 2044e2e commit ce40089

3 files changed

Lines changed: 222 additions & 0 deletions

File tree

test/test_mesher.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,6 +238,26 @@ def test_unshielded_multiwire(self):
238238
for idx, name in enumerate(expectedNames):
239239
self.assertEqual(self.countEntitiesInPhysicalGroupWithName(name), expectedEntities[idx], name)
240240

241+
def test_conductor_and_outer_dielectric(self):
242+
caseName = 'conductor_and_outer_dielectric'
243+
Mesher().meshFromStep(self.inputFileFromCaseName(caseName), caseName)
244+
245+
gmsh.write(caseName + '.vtk')
246+
247+
pGs = gmsh.model.getPhysicalGroups()
248+
pGNames = [gmsh.model.getPhysicalName(*pG) for pG in pGs]
249+
expectedNames = ['Conductor_0', 'Dielectric_0',
250+
'OpenBoundary_0',
251+
'Vacuum_0', 'Vacuum_1']
252+
expectedEntities = [1, 1,
253+
1,
254+
1, 1]
255+
self.assertEqual(sorted(pGNames), sorted(expectedNames))
256+
257+
for idx, name in enumerate(expectedNames):
258+
self.assertEqual(self.countEntitiesInPhysicalGroupWithName(name), expectedEntities[idx], name)
259+
260+
241261
def test_lansink2024_single_wire_multipolar(self):
242262
caseName = 'lansink2024_single_wire_multipolar'
243263
Mesher().meshFromStep(self.inputFileFromCaseName(caseName), caseName)
Binary file not shown.
Lines changed: 202 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
ISO-10303-21;
2+
HEADER;
3+
FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
4+
FILE_NAME('Open CASCADE Shape Model','2025-09-05T12:34:40',(''),(''),
5+
'Open CASCADE STEP processor 7.6','FreeCAD','Unknown');
6+
FILE_SCHEMA(('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 1 }'));
7+
ENDSEC;
8+
DATA;
9+
#1 = APPLICATION_PROTOCOL_DEFINITION('international standard',
10+
'automotive_design',2000,#2);
11+
#2 = APPLICATION_CONTEXT(
12+
'core data for automotive mechanical design processes');
13+
#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
14+
#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
15+
#5 = PRODUCT_DEFINITION('design','',#6,#9);
16+
#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
17+
#7 = PRODUCT('conductor_and_outer_dielectric',
18+
'conductor_and_outer_dielectric','',(#8));
19+
#8 = PRODUCT_CONTEXT('',#2,'mechanical');
20+
#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
21+
#10 = SHAPE_REPRESENTATION('',(#11,#15,#19),#23);
22+
#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
23+
#12 = CARTESIAN_POINT('',(0.,0.,0.));
24+
#13 = DIRECTION('',(0.,0.,1.));
25+
#14 = DIRECTION('',(1.,0.,-0.));
26+
#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18);
27+
#16 = CARTESIAN_POINT('',(-1.209,5.934,0.));
28+
#17 = DIRECTION('',(0.,0.,1.));
29+
#18 = DIRECTION('',(1.,0.,0.));
30+
#19 = AXIS2_PLACEMENT_3D('',#20,#21,#22);
31+
#20 = CARTESIAN_POINT('',(0.,0.,0.));
32+
#21 = DIRECTION('',(0.,0.,1.));
33+
#22 = DIRECTION('',(1.,0.,0.));
34+
#23 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
35+
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#27)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
36+
(#24,#25,#26)) REPRESENTATION_CONTEXT('Context #1',
37+
'3D Context with UNIT and UNCERTAINTY') );
38+
#24 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
39+
#25 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
40+
#26 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
41+
#27 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#24,
42+
'distance_accuracy_value','confusion accuracy');
43+
#28 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#7));
44+
#29 = SHAPE_DEFINITION_REPRESENTATION(#30,#36);
45+
#30 = PRODUCT_DEFINITION_SHAPE('','',#31);
46+
#31 = PRODUCT_DEFINITION('design','',#32,#35);
47+
#32 = PRODUCT_DEFINITION_FORMATION('','',#33);
48+
#33 = PRODUCT('Conductor_000','Conductor_000','',(#34));
49+
#34 = PRODUCT_CONTEXT('',#2,'mechanical');
50+
#35 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
51+
#36 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#37),#64);
52+
#37 = SHELL_BASED_SURFACE_MODEL('',(#38));
53+
#38 = OPEN_SHELL('',(#39));
54+
#39 = ADVANCED_FACE('',(#40),#53,.T.);
55+
#40 = FACE_BOUND('',#41,.T.);
56+
#41 = EDGE_LOOP('',(#42));
57+
#42 = ORIENTED_EDGE('',*,*,#43,.T.);
58+
#43 = EDGE_CURVE('',#44,#44,#46,.T.);
59+
#44 = VERTEX_POINT('',#45);
60+
#45 = CARTESIAN_POINT('',(1.15,0.,0.));
61+
#46 = SURFACE_CURVE('',#47,(#52),.PCURVE_S1.);
62+
#47 = CIRCLE('',#48,1.15);
63+
#48 = AXIS2_PLACEMENT_3D('',#49,#50,#51);
64+
#49 = CARTESIAN_POINT('',(0.,0.,0.));
65+
#50 = DIRECTION('',(0.,0.,1.));
66+
#51 = DIRECTION('',(1.,0.,0.));
67+
#52 = PCURVE('',#53,#58);
68+
#53 = PLANE('',#54);
69+
#54 = AXIS2_PLACEMENT_3D('',#55,#56,#57);
70+
#55 = CARTESIAN_POINT('',(-1.5E-16,6.E-17,0.));
71+
#56 = DIRECTION('',(0.,0.,1.));
72+
#57 = DIRECTION('',(1.,0.,0.));
73+
#58 = DEFINITIONAL_REPRESENTATION('',(#59),#63);
74+
#59 = CIRCLE('',#60,1.15);
75+
#60 = AXIS2_PLACEMENT_2D('',#61,#62);
76+
#61 = CARTESIAN_POINT('',(1.5E-16,-6.E-17));
77+
#62 = DIRECTION('',(1.,0.));
78+
#63 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
79+
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
80+
) );
81+
#64 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
82+
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#68)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
83+
(#65,#66,#67)) REPRESENTATION_CONTEXT('Context #1',
84+
'3D Context with UNIT and UNCERTAINTY') );
85+
#65 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
86+
#66 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
87+
#67 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
88+
#68 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#65,
89+
'distance_accuracy_value','confusion accuracy');
90+
#69 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#70,#72);
91+
#70 = ( REPRESENTATION_RELATIONSHIP('','',#36,#10)
92+
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#71)
93+
SHAPE_REPRESENTATION_RELATIONSHIP() );
94+
#71 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15);
95+
#72 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#73);
96+
#73 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('153','Conductor_000','',#5,#31,$);
97+
#74 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#33));
98+
#75 = SHAPE_DEFINITION_REPRESENTATION(#76,#82);
99+
#76 = PRODUCT_DEFINITION_SHAPE('','',#77);
100+
#77 = PRODUCT_DEFINITION('design','',#78,#81);
101+
#78 = PRODUCT_DEFINITION_FORMATION('','',#79);
102+
#79 = PRODUCT('Dielectric_000','Dielectric_000','',(#80));
103+
#80 = PRODUCT_CONTEXT('',#2,'mechanical');
104+
#81 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
105+
#82 = MANIFOLD_SURFACE_SHAPE_REPRESENTATION('',(#11,#83),#129);
106+
#83 = SHELL_BASED_SURFACE_MODEL('',(#84));
107+
#84 = OPEN_SHELL('',(#85));
108+
#85 = ADVANCED_FACE('',(#86,#110),#99,.T.);
109+
#86 = FACE_BOUND('',#87,.T.);
110+
#87 = EDGE_LOOP('',(#88));
111+
#88 = ORIENTED_EDGE('',*,*,#89,.T.);
112+
#89 = EDGE_CURVE('',#90,#90,#92,.T.);
113+
#90 = VERTEX_POINT('',#91);
114+
#91 = CARTESIAN_POINT('',(8.05,0.,0.));
115+
#92 = SURFACE_CURVE('',#93,(#98),.PCURVE_S1.);
116+
#93 = CIRCLE('',#94,8.05);
117+
#94 = AXIS2_PLACEMENT_3D('',#95,#96,#97);
118+
#95 = CARTESIAN_POINT('',(0.,0.,0.));
119+
#96 = DIRECTION('',(0.,0.,1.));
120+
#97 = DIRECTION('',(1.,0.,0.));
121+
#98 = PCURVE('',#99,#104);
122+
#99 = PLANE('',#100);
123+
#100 = AXIS2_PLACEMENT_3D('',#101,#102,#103);
124+
#101 = CARTESIAN_POINT('',(-6.8E-16,-3.3E-16,0.));
125+
#102 = DIRECTION('',(0.,0.,1.));
126+
#103 = DIRECTION('',(1.,0.,0.));
127+
#104 = DEFINITIONAL_REPRESENTATION('',(#105),#109);
128+
#105 = CIRCLE('',#106,8.05);
129+
#106 = AXIS2_PLACEMENT_2D('',#107,#108);
130+
#107 = CARTESIAN_POINT('',(6.8E-16,3.3E-16));
131+
#108 = DIRECTION('',(1.,0.));
132+
#109 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
133+
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
134+
) );
135+
#110 = FACE_BOUND('',#111,.T.);
136+
#111 = EDGE_LOOP('',(#112));
137+
#112 = ORIENTED_EDGE('',*,*,#113,.F.);
138+
#113 = EDGE_CURVE('',#114,#114,#116,.T.);
139+
#114 = VERTEX_POINT('',#115);
140+
#115 = CARTESIAN_POINT('',(7.95,0.,0.));
141+
#116 = SURFACE_CURVE('',#117,(#122),.PCURVE_S1.);
142+
#117 = CIRCLE('',#118,7.95);
143+
#118 = AXIS2_PLACEMENT_3D('',#119,#120,#121);
144+
#119 = CARTESIAN_POINT('',(0.,0.,0.));
145+
#120 = DIRECTION('',(0.,0.,1.));
146+
#121 = DIRECTION('',(1.,0.,0.));
147+
#122 = PCURVE('',#99,#123);
148+
#123 = DEFINITIONAL_REPRESENTATION('',(#124),#128);
149+
#124 = CIRCLE('',#125,7.95);
150+
#125 = AXIS2_PLACEMENT_2D('',#126,#127);
151+
#126 = CARTESIAN_POINT('',(6.8E-16,3.3E-16));
152+
#127 = DIRECTION('',(1.,0.));
153+
#128 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2)
154+
PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
155+
) );
156+
#129 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3)
157+
GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#133)) GLOBAL_UNIT_ASSIGNED_CONTEXT
158+
((#130,#131,#132)) REPRESENTATION_CONTEXT('Context #1',
159+
'3D Context with UNIT and UNCERTAINTY') );
160+
#130 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
161+
#131 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
162+
#132 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
163+
#133 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#130,
164+
'distance_accuracy_value','confusion accuracy');
165+
#134 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#135,#137);
166+
#135 = ( REPRESENTATION_RELATIONSHIP('','',#82,#10)
167+
REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#136)
168+
SHAPE_REPRESENTATION_RELATIONSHIP() );
169+
#136 = ITEM_DEFINED_TRANSFORMATION('','',#11,#19);
170+
#137 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#138
171+
);
172+
#138 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('154','Dielectric_000','',#5,#77,$
173+
);
174+
#139 = PRODUCT_RELATED_PRODUCT_CATEGORY('part',$,(#79));
175+
#140 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#141)
176+
,#64);
177+
#141 = STYLED_ITEM('color',(#142),#39);
178+
#142 = PRESENTATION_STYLE_ASSIGNMENT((#143,#149));
179+
#143 = SURFACE_STYLE_USAGE(.BOTH.,#144);
180+
#144 = SURFACE_SIDE_STYLE('',(#145));
181+
#145 = SURFACE_STYLE_FILL_AREA(#146);
182+
#146 = FILL_AREA_STYLE('',(#147));
183+
#147 = FILL_AREA_STYLE_COLOUR('',#148);
184+
#148 = COLOUR_RGB('',0.333333345507,0.666666687201,1.);
185+
#149 = CURVE_STYLE('',#150,POSITIVE_LENGTH_MEASURE(0.1),#151);
186+
#150 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
187+
#151 = COLOUR_RGB('',9.803921802644E-02,9.803921802644E-02,
188+
9.803921802644E-02);
189+
#152 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#153)
190+
,#129);
191+
#153 = STYLED_ITEM('color',(#154),#85);
192+
#154 = PRESENTATION_STYLE_ASSIGNMENT((#155,#161));
193+
#155 = SURFACE_STYLE_USAGE(.BOTH.,#156);
194+
#156 = SURFACE_SIDE_STYLE('',(#157));
195+
#157 = SURFACE_STYLE_FILL_AREA(#158);
196+
#158 = FILL_AREA_STYLE('',(#159));
197+
#159 = FILL_AREA_STYLE_COLOUR('',#160);
198+
#160 = DRAUGHTING_PRE_DEFINED_COLOUR('red');
199+
#161 = CURVE_STYLE('',#162,POSITIVE_LENGTH_MEASURE(0.1),#151);
200+
#162 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
201+
ENDSEC;
202+
END-ISO-10303-21;

0 commit comments

Comments
 (0)