From cd1991f4ea795c6bf985589819cbcd64d8b56ae7 Mon Sep 17 00:00:00 2001 From: Uwe Date: Wed, 10 Aug 2022 02:27:27 +0200 Subject: [PATCH] [FEM] fix bimetall example - add missing density - set a second temperature to make the heat solver actually working - adapt to new defaults --- .../Fem/femexamples/thermomech_bimetall.py | 45 +++++++++---------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/src/Mod/Fem/femexamples/thermomech_bimetall.py b/src/Mod/Fem/femexamples/thermomech_bimetall.py index ef4c4b2a88..8196390fb5 100644 --- a/src/Mod/Fem/femexamples/thermomech_bimetall.py +++ b/src/Mod/Fem/femexamples/thermomech_bimetall.py @@ -130,12 +130,9 @@ def setup(doc=None, solvertype="ccxtools"): solver_obj.SteadyStateMinIterations = 1 solver_obj.SteadyStateMaxIterations = 10 eq_heat = ObjectsFem.makeEquationHeat(doc, solver_obj) - eq_heat.Bubbles = True eq_heat.Priority = 2 eq_elasticity = ObjectsFem.makeEquationElasticity(doc, solver_obj) - eq_elasticity.Bubbles = True eq_elasticity.Priority = 1 - eq_elasticity.LinearSolverType = "Direct" else: FreeCAD.Console.PrintWarning( "Not known or not supported solver type: {}. " @@ -156,12 +153,12 @@ def setup(doc=None, solvertype="ccxtools"): material_obj_bottom = ObjectsFem.makeMaterialSolid(doc, "MaterialCopper") mat = material_obj_bottom.Material mat["Name"] = "Copper" - mat["YoungsModulus"] = "130000 MPa" - mat["PoissonRatio"] = "0.354" + mat["YoungsModulus"] = "119 GPa" + mat["PoissonRatio"] = "0.343" mat["SpecificHeat"] = "385 J/kg/K" - mat["ThermalConductivity"] = "200 W/m/K" - mat["ThermalExpansionCoefficient"] = "0.00002 m/m/K" - mat["Density"] = "1.00 kg/m^3" + mat["ThermalConductivity"] = "398 W/m/K" + mat["ThermalExpansionCoefficient"] = "0.0000165 m/m/K" + mat["Density"] = "8960.0 kg/m^3" material_obj_bottom.Material = mat material_obj_bottom.References = [(geom_obj, "Solid1")] analysis.addObject(material_obj_bottom) @@ -169,11 +166,12 @@ def setup(doc=None, solvertype="ccxtools"): material_obj_top = ObjectsFem.makeMaterialSolid(doc, "MaterialInvar") mat = material_obj_top.Material mat["Name"] = "Invar" - mat["YoungsModulus"] = "137000 MPa" - mat["PoissonRatio"] = "0.28" - mat["SpecificHeat"] = "510 J/kg/K" - mat["ThermalConductivity"] = "13 W/m/K" - mat["ThermalExpansionCoefficient"] = "0.0000012 m/m/K" + mat["Density"] = "8150 kg/m^3" + mat["YoungsModulus"] = "140 GPa" + mat["PoissonRatio"] = "0.29" + mat["SpecificHeat"] = "515 J/kg/K" + mat["ThermalConductivity"] = "13.5 W/m/K" + mat["ThermalExpansionCoefficient"] = "0.00000125 m/m/K" material_obj_top.Material = mat material_obj_top.References = [(geom_obj, "Solid2")] analysis.addObject(material_obj_top) @@ -192,23 +190,24 @@ def setup(doc=None, solvertype="ccxtools"): analysis.addObject(con_inittemp) # constraint temperature - con_temp = ObjectsFem.makeConstraintTemperature(doc, "ConstraintTemperature") + con_temp = ObjectsFem.makeConstraintTemperature(doc, "ConstraintTemperatureHot") con_temp.References = [ - (geom_obj, "Face1"), - (geom_obj, "Face2"), - (geom_obj, "Face3"), - (geom_obj, "Face4"), (geom_obj, "Face5"), - (geom_obj, "Face7"), - (geom_obj, "Face8"), - (geom_obj, "Face9"), - (geom_obj, "Face10"), - (geom_obj, "Face11"), + (geom_obj, "Face11") ] con_temp.Temperature = 373.0 con_temp.CFlux = 0.0 analysis.addObject(con_temp) + con_temp = ObjectsFem.makeConstraintTemperature(doc, "ConstraintTemperatureNormal") + con_temp.References = [ + (geom_obj, "Face1"), + (geom_obj, "Face7") + ] + con_temp.Temperature = 273.0 + con_temp.CFlux = 0.0 + analysis.addObject(con_temp) + # mesh from .meshes.mesh_thermomech_bimetall_tetra10 import create_nodes, create_elements fem_mesh = Fem.FemMesh()