Fem: Update test and examples

This commit is contained in:
marioalexis
2024-07-25 14:03:31 -03:00
parent 385c32d4e3
commit 91bf8a6c1f
44 changed files with 46 additions and 44 deletions

View File

@@ -73,9 +73,10 @@ def setup_boxanalysisbase(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMin = "8.0 mm"
femmesh_obj.ElementOrder = "2nd"
doc.recompute()
return doc

View File

@@ -186,7 +186,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMax = "50.0 mm"
femmesh_obj.ElementDimension = "2D"

View File

@@ -159,7 +159,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMax = "300.0 mm"
femmesh_obj.ElementDimension = "2D"

View File

@@ -139,7 +139,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
doc.recompute()
return doc

View File

@@ -130,7 +130,7 @@ def setup_cantilever_base_edge(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.ElementDimension = "1D"
femmesh_obj.CharacteristicLengthMax = "1750.0 mm"

View File

@@ -115,7 +115,7 @@ def setup_cantilever_base_face(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.ElementDimension = "2D"
femmesh_obj.CharacteristicLengthMax = "500.0 mm"

View File

@@ -102,7 +102,7 @@ def setup_cantilever_base_solid(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -92,7 +92,7 @@ def setup(doc=None, solvertype="ccxtools"):
femmesh_obj.FemMesh = new_fem_mesh
# set mesh obj parameter
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.ElementDimension = "2D"
femmesh_obj.ElementOrder = "1st"

View File

@@ -92,7 +92,7 @@ def setup(doc=None, solvertype="ccxtools"):
femmesh_obj.FemMesh = new_fem_mesh
# set mesh obj parameter
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.ElementDimension = "2D"
femmesh_obj.ElementOrder = "1st"

View File

@@ -92,7 +92,7 @@ def setup(doc=None, solvertype="ccxtools"):
femmesh_obj.FemMesh = new_fem_mesh
# set mesh obj parameter
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.ElementDimension = "1D"
femmesh_obj.ElementOrder = "1st"

View File

@@ -82,7 +82,7 @@ def setup(doc=None, solvertype="ccxtools"):
# clear mesh and set meshing parameter
femmesh_obj.FemMesh = Fem.FemMesh()
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.ElementDimension = "3D"
femmesh_obj.ElementOrder = "1st"

View File

@@ -92,7 +92,7 @@ def setup(doc=None, solvertype="ccxtools"):
femmesh_obj.FemMesh = new_fem_mesh
# set mesh obj parameter
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.ElementDimension = "2D"
femmesh_obj.ElementOrder = "1st"

View File

@@ -191,7 +191,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMax = "5.0 mm"

View File

@@ -210,7 +210,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -197,7 +197,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -272,7 +272,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -140,7 +140,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -169,7 +169,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -184,7 +184,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMax = "7 mm"

View File

@@ -173,7 +173,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -137,7 +137,7 @@ def setup(doc=None, solvertype="elmer"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMax = "40.80 mm"

View File

@@ -192,7 +192,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = body
femmesh_obj.Shape = body
femmesh_obj.CharacteristicLengthMax = "1.25 mm"
femmesh_obj.ElementOrder = "1st"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -165,7 +165,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMax = "600 mm"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -228,7 +228,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMax = "500 mm"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -252,7 +252,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = BooleanFragments
femmesh_obj.Shape = BooleanFragments
femmesh_obj.ElementOrder = "1st"
femmesh_obj.CharacteristicLengthMax = "4 mm"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -260,7 +260,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = BooleanFragments
femmesh_obj.Shape = BooleanFragments
femmesh_obj.ElementOrder = "1st"
femmesh_obj.CharacteristicLengthMax = "4 mm"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -258,7 +258,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = BooleanFragments
femmesh_obj.Shape = BooleanFragments
femmesh_obj.ElementOrder = "1st"
femmesh_obj.CharacteristicLengthMax = "4 mm"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -153,7 +153,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = cube
femmesh_obj.Shape = cube
femmesh_obj.CharacteristicLengthMax = "1 mm"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -258,7 +258,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = BooleanFragments
femmesh_obj.Shape = BooleanFragments
femmesh_obj.CharacteristicLengthMax = "3 mm"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -201,7 +201,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = BooleanFragments
femmesh_obj.Shape = BooleanFragments
femmesh_obj.ElementOrder = "1st"
femmesh_obj.CharacteristicLengthMax = "0.5 mm"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -260,7 +260,7 @@ def setup(doc=None, solvertype="elmer"):
# mesh
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.Part = BooleanFragments
femmesh_obj.Shape = BooleanFragments
femmesh_obj.CharacteristicLengthMax = "100.0 mm"
femmesh_obj.ViewObject.Visibility = False

View File

@@ -150,7 +150,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMax = "25.0 mm"

View File

@@ -201,7 +201,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -194,7 +194,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -170,7 +170,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -178,7 +178,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -188,7 +188,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.CharacteristicLengthMax = "1.0 mm"
femmesh_obj.ElementDimension = "2D"

View File

@@ -176,7 +176,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -178,7 +178,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -448,7 +448,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -215,7 +215,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
doc.recompute()

View File

@@ -461,7 +461,7 @@ def setup(doc=None, solvertype="ccxtools"):
FreeCAD.Console.PrintError("Error on creating elements.\n")
femmesh_obj = analysis.addObject(ObjectsFem.makeMeshGmsh(doc, get_meshname()))[0]
femmesh_obj.FemMesh = fem_mesh
femmesh_obj.Part = geom_obj
femmesh_obj.Shape = geom_obj
femmesh_obj.SecondOrderLinear = False
femmesh_obj.ElementDimension = "1D"
# four elements for each bar

View File

@@ -125,6 +125,7 @@ class TestObjectExistance(unittest.TestCase):
"Fem::FemAnalysisPython",
"Fem::FemMeshObject",
"Fem::FemMeshObjectPython",
"Fem::FemMeshShapeBaseObjectPython",
"Fem::FemMeshShapeNetgenObject",
"Fem::FemMeshShapeObject",
"Fem::FemResultObject",

View File

@@ -721,7 +721,7 @@ class TestObjectType(unittest.TestCase):
# FemMeshGmsh
mesh_gmsh = ObjectsFem.makeMeshGmsh(doc)
self.assertTrue(is_derived_from(mesh_gmsh, "App::DocumentObject"))
self.assertTrue(is_derived_from(mesh_gmsh, "Fem::FemMeshObjectPython"))
self.assertTrue(is_derived_from(mesh_gmsh, "Fem::FemMeshShapeBaseObjectPython"))
self.assertTrue(is_derived_from(mesh_gmsh, "Fem::FemMeshGmsh"))
# MeshBoundaryLayer
@@ -965,7 +965,7 @@ class TestObjectType(unittest.TestCase):
ObjectsFem.makeMaterialReinforced(doc).isDerivedFrom("App::MaterialObjectPython")
)
mesh = ObjectsFem.makeMeshGmsh(doc)
self.assertTrue(mesh.isDerivedFrom("Fem::FemMeshObjectPython"))
self.assertTrue(mesh.isDerivedFrom("Fem::FemMeshShapeBaseObjectPython"))
self.assertTrue(
ObjectsFem.makeMeshBoundaryLayer(doc, mesh).isDerivedFrom("Fem::FeaturePython")
)