def checkMeshType(self): mesh = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject") if not FemUtils.isOfType(mesh, "FemMeshGmsh"): self.report.error("Unsupported type of mesh. " "Mesh must be created with gmsh.") self.fail() return False return True
def _getMeshDimension(self): obj = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject") if obj.Part.Shape.Solids: return 3 elif obj.Part.Shape.Faces: return 2 elif obj.Part.Shape.Edges: return 1 return None
def checkMeshType(self): mesh = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject") if not FemUtils.isOfType(mesh, "Fem::FemMeshGmsh"): self.report.error( "Unsupported type of mesh. " "Mesh must be created with gmsh.") self.fail() return False return True
def __init__(self, obj): self._obj = obj self._paramWidget = FreeCADGui.PySideUic.loadUi( FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/InitialFlowVelocity.ui") self._initParamWidget() self.form = [self._paramWidget] analysis = FemUtils.findAnalysisOfMember(obj) self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject") self._part = self._mesh.Part if self._mesh is not None else None self._partVisible = None self._meshVisible = None
def __init__(self, obj): self._obj = obj self._paramWidget = Gui.PySideUic.loadUi( App.getHomePath() + "Mod/Fem/Resources/ui/InitialFlowVelocity.ui") self._initParamWidget() self.form = [self._paramWidget] analysis = FemUtils.findAnalysisOfMember(obj) self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject") self._part = self._mesh.Part if self._mesh is not None else None self._partVisible = None self._meshVisible = None
def __init__(self, obj): self._obj = obj self._refWidget = FemSelectionWidgets.BoundarySelector() self._refWidget.setReferences(obj.References) self._paramWidget = Gui.PySideUic.loadUi( App.getHomePath() + "Mod/Fem/Resources/ui/ElectrostaticPotential.ui") self._initParamWidget() self.form = [self._refWidget, self._paramWidget] analysis = FemUtils.findAnalysisOfMember(obj) self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject") self._part = self._mesh.Part if self._mesh is not None else None self._partVisible = None self._meshVisible = None
def _getAllBodies(self): obj = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject") bodyCount = 0 prefix = "" if obj.Part.Shape.Solids: prefix = "Solid" bodyCount = len(obj.Part.Shape.Solids) elif obj.Part.Shape.Faces: prefix = "Face" bodyCount = len(obj.Part.Shape.Faces) elif obj.Part.Shape.Edges: prefix = "Edge" bodyCount = len(obj.Part.Shape.Edges) return [prefix + str(i + 1) for i in range(bodyCount)]
def __init__(self, obj): self._obj = obj self._refWidget = FemSelectionWidgets.BoundarySelector() self._refWidget.setReferences(obj.References) self._paramWidget = FreeCADGui.PySideUic.loadUi( FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/ElectrostaticPotential.ui") self._initParamWidget() self.form = [self._refWidget, self._paramWidget] analysis = FemUtils.findAnalysisOfMember(obj) self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject") self._part = self._mesh.Part if self._mesh is not None else None self._partVisible = None self._meshVisible = None
def __init__(self, obj): self._obj = obj self._refWidget = FemSelectionWidgets.SolidSelector() self._refWidget.setReferences(obj.References) propWidget = obj.ViewObject.Proxy.getTaskWidget(obj.ViewObject) if propWidget is None: self.form = self._refWidget else: self.form = [self.refWidget, propWidget] analysis = FemUtils.findAnalysisOfMember(obj) self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject") self._part = self._mesh.Part if self._mesh is not None else None self._partVisible = None self._meshVisible = None
def __init__(self, obj): self._obj = obj self._refWidget = FemSelectionWidgets.SolidSelector() self._refWidget.setReferences(obj.References) propWidget = obj.ViewObject.Proxy.getTaskWidget( obj.ViewObject) if propWidget is None: self.form = self._refWidget else: self.form = [self.refWidget, propWidget] analysis = FemUtils.findAnalysisOfMember(obj) self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject") self._part = self._mesh.Part if self._mesh is not None else None self._partVisible = None self._meshVisible = None
def __init__(self, obj): self._obj = obj self._refWidget = FemSelectionWidgets.BoundarySelector() self._refWidget.setReferences(obj.References) self._paramWidget = Gui.PySideUic.loadUi( App.getHomePath() + "Mod/Fem/Resources/ui/FlowVelocity.ui") self._initParamWidget() self.form = [self._refWidget, self._paramWidget] analysis = FemUtils.findAnalysisOfMember(obj) self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject") self._part = None if hasattr(self._mesh, "Part"): # Geometry of Gmesh mesh obj self._part = self._mesh.Part elif hasattr(self._mesh, "Shape"): # Geometry of Netgen mesh obj self._part = self._mesh.Shape self._partVisible = None self._meshVisible = None
def __init__(self, obj): self._obj = obj self._refWidget = FemSelectionWidgets.BoundarySelector() self._refWidget.setReferences(obj.References) self._paramWidget = FreeCADGui.PySideUic.loadUi( FreeCAD.getHomePath() + "Mod/Fem/Resources/ui/FlowVelocity.ui") self._initParamWidget() self.form = [self._refWidget, self._paramWidget] analysis = FemUtils.findAnalysisOfMember(obj) self._mesh = FemUtils.getSingleMember(analysis, "Fem::FemMeshObject") self._part = None if hasattr(self._mesh, "Part"): # Geometry of Gmesh mesh obj self._part = self._mesh.Part elif hasattr(self._mesh, "Shape"): # Geometry of Netgen mesh obj self._part = self._mesh.Shape self._partVisible = None self._meshVisible = None
def _writeMesh(self): mesh = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject") unvPath = os.path.join(self.directory, "mesh.unv") groups = [] groups.extend(self._builder.getBodyNames()) groups.extend(self._builder.getBoundaryNames()) self._exportToUnv(groups, mesh, unvPath) if self.testmode: print("We are in testmode ElmerGrid may not be installed!") else: binary = settings.getBinary("ElmerGrid") if binary is None: raise WriteError("Couldn't find ElmerGrid binary.") args = [ binary, _ELMERGRID_IFORMAT, _ELMERGRID_OFORMAT, unvPath, "-out", self.directory ] subprocess.call(args)
def _writeMesh(self): mesh = FemUtils.getSingleMember(self.analysis, "Fem::FemMeshObject") unvPath = os.path.join(self.directory, "mesh.unv") groups = [] groups.extend(self._builder.getBodyNames()) groups.extend(self._builder.getBoundaryNames()) self._exportToUnv(groups, mesh, unvPath) if self.testmode: print("We are in testmode ElmerGrid may not be installed!") else: binary = settings.getBinary("ElmerGrid") if binary is None: raise WriteError("Couldn't find ElmerGrid binary.") args = [binary, _ELMERGRID_IFORMAT, _ELMERGRID_OFORMAT, unvPath, "-out", self.directory] subprocess.call(args)
def _getSingleMember(self, t): return FemUtils.getSingleMember(self.analysis, t)