Skip to content

Commit 8472cfc

Browse files
Add label to exported json
1 parent 304dabd commit 8472cfc

2 files changed

Lines changed: 61 additions & 8 deletions

File tree

src/AreaExporterService.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,31 @@ def __init__(self):
1111
"geometries": []
1212
}
1313

14-
def addComputedArea(self, geometry:str, area:float):
14+
def addComputedArea(self, geometry:str, label:str, area:float):
1515
geometry:Dict ={
1616
"geometry": geometry,
17-
"area": area,
17+
"label": label,
18+
"area": round(area,6),
1819
}
1920
self.computedAreas['geometries'].append(geometry)
2021

21-
def addPhysicalModelOfDimension(self, dimension=2):
22+
def addPhysicalModelOfDimension(self, mappedElements:Dict[str,str], dimension=2):
2223
physicalGroups = gmsh.model.getPhysicalGroups(dimension)
2324
for physicalGroup in physicalGroups:
2425
entityTags = gmsh.model.getEntitiesForPhysicalGroup(*physicalGroup)
2526
geometryName = gmsh.model.getPhysicalName(*physicalGroup)
27+
label = ''
28+
for key, geometry in mappedElements.items():
29+
if geometry == geometryName:
30+
label = key
2631
for tag in entityTags:
2732
if dimension == 1:
2833
rad = gmsh.model.occ.getMass(dimension, tag) / (2*np.pi)
2934
area = rad*rad*np.pi
3035
if dimension == 2:
3136
area = gmsh.model.occ.getMass(dimension, tag)
3237
if geometryName != AreaExporterService._EMPTY_NAME_CASE:
33-
self.addComputedArea(geometryName, area)
38+
self.addComputedArea(geometryName, label, area)
3439

3540
def exportToJson(self, exportFileName:str):
3641
with open(exportFileName + ".areas.json", 'w') as f:

test/test_AreaExporterService.py

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ def setUp(self):
2323

2424
def tearDown(self):
2525
gmsh.finalize()
26-
def inputFileFromCaseName(self, caseName):
26+
def inputFileFromCaseName(self, caseName) -> None:
2727
return self.testdataPath + caseName + '/' + caseName + ".step"
2828

2929
def testAreaExporterReturnsTrueValues(self):
3030
caseName = 'five_wires'
31-
Mesher().meshFromStep(self.inputFileFromCaseName(caseName), caseName)
31+
mappedElements = Mesher().meshFromStep(self.inputFileFromCaseName(caseName), caseName)
3232
areaExporter = AreaExporterService()
33-
areaExporter.addPhysicalModelOfDimension(dimension=1)
34-
areaExporter.addPhysicalModelOfDimension(dimension=2)
33+
areaExporter.addPhysicalModelOfDimension(mappedElements=mappedElements, dimension=1)
34+
areaExporter.addPhysicalModelOfDimension(mappedElements=mappedElements, dimension=2)
3535
geometries = areaExporter.computedAreas['geometries']
3636

3737
internalElements = []
@@ -43,3 +43,51 @@ def testAreaExporterReturnsTrueValues(self):
4343
areaElements = self.sumAreasFromList(internalElements)
4444

4545
self.assertAlmostEqual(totalArea, areaElements)
46+
47+
def testJsonFormat(self) -> None:
48+
caseName = 'DielectricUnshieldedPair'
49+
mappedElements = Mesher().meshFromStep(self.inputFileFromCaseName(caseName), caseName)
50+
areaExporter = AreaExporterService()
51+
areaExporter.addPhysicalModelOfDimension(mappedElements=mappedElements, dimension=1)
52+
areaExporter.addPhysicalModelOfDimension(mappedElements=mappedElements, dimension=2)
53+
54+
expectedDict = {
55+
'geometries': [
56+
{
57+
'area': 201.06193,
58+
'geometry': 'Conductor_1',
59+
'label': 'RightConductor'
60+
},
61+
{
62+
'area': 201.06193,
63+
'geometry': 'Conductor_0',
64+
'label': 'LeftConductor'},
65+
{
66+
'area': 312048.117187,
67+
'geometry': 'OpenBoundary_0',
68+
'label': 'OpenBoundary_0'
69+
},
70+
{
71+
'area': 603.185789,
72+
'geometry': 'Dielectric_1',
73+
'label': 'RightDielectric'
74+
},
75+
{
76+
'area': 603.185789,
77+
'geometry': 'Dielectric_0',
78+
'label': 'LeftDielectric'
79+
},
80+
{
81+
'area': 6491.504606,
82+
'geometry': 'Vacuum_0',
83+
'label': 'Vacuum_0'
84+
},
85+
{
86+
'area': 303948.117142,
87+
'geometry': 'Vacuum_1',
88+
'label': 'Vacuum_1'
89+
}
90+
]
91+
}
92+
self.maxDiff = None
93+
self.assertDictEqual(areaExporter.computedAreas, expectedDict)

0 commit comments

Comments
 (0)