FEM: Add data extraction objects to FEM test suite

This commit is contained in:
Stefan Tröger
2025-05-09 09:42:16 +02:00
parent 8dd3e90896
commit bb971c1cf7

View File

@@ -79,12 +79,16 @@ class TestObjectCreate(unittest.TestCase):
# gmsh mesh children: group, region, boundary layer --> 3
# result children: mesh result --> 1
# analysis itself is not in analysis group --> 1
# vtk post pipeline children: region, scalar, cut, wrap, glyph --> 5
# vtk python post objects: glyph --> 1
# vtk post pipeline children: region, scalar, cut, wrap, contour --> 5
# vtk python post objects: glyph, 6x data extraction --> 7
subtraction = 15
if vtk_objects_used:
subtraction += 6
subtraction += 12
if not ("BUILD_FEM_VTK_PYTHON" in FreeCAD.__cmake__):
# remove the 3 data visualization objects that would be in the Analysis
# if they would be available (Lineplot, histogram, table)
subtraction += 3
self.assertEqual(len(doc.Analysis.Group), count_defmake - subtraction)
@@ -92,7 +96,9 @@ class TestObjectCreate(unittest.TestCase):
# have been counted, but will not be executed to create objects
failed = 0
if vtk_objects_used and not ("BUILD_FEM_VTK_PYTHON" in FreeCAD.__cmake__):
failed += 1
# the 7 objects also counted in subtraction, +3 additional objects that are
# added directly to the analysis
failed += 10
self.assertEqual(len(doc.Objects), count_defmake - failed)
@@ -1167,6 +1173,19 @@ def create_all_fem_objects_doc(doc):
if "BUILD_FEM_VTK_PYTHON" in FreeCAD.__cmake__:
ObjectsFem.makePostFilterGlyph(doc, vres)
# data extraction objects
lp = analysis.addObject(ObjectsFem.makePostLineplot(doc))[0]
lp.addObject(ObjectsFem.makePostLineplotFieldData(doc))
lp.addObject(ObjectsFem.makePostLineplotIndexOverFrames(doc))
hp = analysis.addObject(ObjectsFem.makePostHistogram(doc))[0]
hp.addObject(ObjectsFem.makePostHistogramFieldData(doc))
hp.addObject(ObjectsFem.makePostHistogramIndexOverFrames(doc))
tb = analysis.addObject(ObjectsFem.makePostTable(doc))[0]
tb.addObject(ObjectsFem.makePostTableFieldData(doc))
tb.addObject(ObjectsFem.makePostTableIndexOverFrames(doc))
analysis.addObject(ObjectsFem.makeSolverCalculiXCcxTools(doc))
analysis.addObject(ObjectsFem.makeSolverCalculiX(doc))
sol = analysis.addObject(ObjectsFem.makeSolverElmer(doc))[0]