def __init__(self, analysis_obj): self.case_folder = None self.mesh_file_name = None self.template_path = None self.analysis_obj = analysis_obj self.solver_obj = CfdTools.getSolver(analysis_obj) self.physics_model = CfdTools.getPhysicsModel(analysis_obj) self.mesh_obj = CfdTools.getMesh(analysis_obj) self.material_objs = CfdTools.getMaterials(analysis_obj) self.bc_group = CfdTools.getCfdBoundaryGroup(analysis_obj) self.initial_conditions = CfdTools.getInitialConditions(analysis_obj) self.reporting_functions = CfdTools.getReportingFunctionsGroup( analysis_obj) self.scalar_transport_objs = CfdTools.getScalarTransportFunctionsGroup( analysis_obj) self.porous_zone_objs = CfdTools.getPorousZoneObjects(analysis_obj) self.initialisation_zone_objs = CfdTools.getInitialisationZoneObjects( analysis_obj) self.zone_objs = CfdTools.getZoneObjects(analysis_obj) self.dynamic_mesh_refinement_obj = CfdTools.getDynamicMeshAdaptation( analysis_obj) self.mesh_generated = False self.working_dir = CfdTools.getOutputPath(self.analysis_obj) self.progressCallback = None self.settings = None
def __init__(self, obj): self.obj = obj self.analysis_obj = CfdTools.getParentAnalysisObject(obj) self.physics_model = CfdTools.getPhysicsModel(self.analysis_obj) self.material_objs = CfdTools.getMaterials(self.analysis_obj) us_path = os.path.join(CfdTools.getModulePath(), 'Gui', "TaskPanelCfdScalarTransportFunctions.ui") self.form = FreeCADGui.PySideUic.loadUi(ui_path) self.load() self.updateUI()
def setEdit(self, vobj, mode): analysis_object = CfdTools.getParentAnalysisObject(self.Object) if analysis_object is None: CfdTools.cfdErrorBox("No parent analysis object found") return False physics_model = CfdTools.getPhysicsModel(analysis_object) if not physics_model: CfdTools.cfdErrorBox("Analysis object must have a physics object") return False boundaries = CfdTools.getCfdBoundaryGroup(analysis_object) material_objs = CfdTools.getMaterials(analysis_object) import importlib importlib.reload(TaskPanelCfdInitialiseInternalFlowField) self.taskd = TaskPanelCfdInitialiseInternalFlowField.TaskPanelCfdInitialiseInternalFlowField( self.Object, physics_model, boundaries, material_objs) self.taskd.obj = vobj.Object FreeCADGui.Control.showDialog(self.taskd) return True
def setEdit(self, vobj, mode): analysis_object = CfdTools.getParentAnalysisObject(self.Object) if analysis_object is None: CfdTools.cfdErrorBox("Boundary must have a parent analysis object") return False physics_model = CfdTools.getPhysicsModel(analysis_object) if not physics_model: CfdTools.cfdErrorBox("Analysis object must have a physics object") return False material_objs = CfdTools.getMaterials(analysis_object) from CfdOF.Solve import TaskPanelCfdFluidBoundary import importlib importlib.reload(TaskPanelCfdFluidBoundary) self.taskd = TaskPanelCfdFluidBoundary.TaskPanelCfdFluidBoundary( self.Object, physics_model, material_objs) self.Object.ViewObject.show() self.taskd.obj = vobj.Object FreeCADGui.Control.showDialog(self.taskd) return True
def createInletBoundary(self): self.inlet_boundary = CfdFluidBoundary.makeCfdFluidBoundary('inlet') self.analysis.addObject(self.inlet_boundary) bc_set = self.inlet_boundary bc_set.BoundaryType = 'inlet' bc_set.BoundarySubType = 'uniformVelocityInlet' bc_set.Ux = 1 bc_set.Uy = 0 bc_set.Uz = 0 # Test addSelection and rebuild_list_references doc = FreeCAD.getDocument(self.__class__.__doc_name) obj = doc.getObject('inlet') vobj = obj.ViewObject from CfdOF.Solve import TaskPanelCfdFluidBoundary physics_model = CfdTools.getPhysicsModel(self.analysis) material_objs = CfdTools.getMaterials(self.analysis) taskd = TaskPanelCfdFluidBoundary.TaskPanelCfdFluidBoundary(obj, physics_model, material_objs) taskd.selecting_references = True taskd.faceSelector.addSelection(doc.Name, self.__class__.__part_name, 'Face1') # Give scheduled recompute a chance to happen FreeCADGui.updateGui() taskd.accept()
def __init__(self, obj): FreeCADGui.Selection.clearSelection() self.sel_server = None self.obj = obj self.analysis_obj = CfdTools.getParentAnalysisObject(obj) self.ShapeRefsOrig = list(self.obj.ShapeRefs) self.NeedsCaseRewriteOrig = self.analysis_obj.NeedsCaseRewrite self.form = FreeCADGui.PySideUic.loadUi( os.path.join(CfdTools.getModulePath(), 'Gui', "TaskPanelCfdZone.ui")) self.form.framePorousZone.setVisible(False) self.form.frameInitialisationZone.setVisible(False) self.alphas = {} if self.obj.Name.startswith('PorousZone'): self.form.framePorousZone.setVisible(True) self.form.comboBoxCorrelation.currentIndexChanged.connect( self.updateUI) self.form.e1x.textEdited.connect(self.e1Changed) self.form.e1y.textEdited.connect(self.e1Changed) self.form.e1z.textEdited.connect(self.e1Changed) self.form.e2x.textEdited.connect(self.e2Changed) self.form.e2y.textEdited.connect(self.e2Changed) self.form.e2z.textEdited.connect(self.e2Changed) self.form.e3x.textEdited.connect(self.e3Changed) self.form.e3y.textEdited.connect(self.e3Changed) self.form.e3z.textEdited.connect(self.e3Changed) self.form.e1x.editingFinished.connect(self.e1Done) self.form.e1y.editingFinished.connect(self.e1Done) self.form.e1z.editingFinished.connect(self.e1Done) self.form.e2x.editingFinished.connect(self.e2Done) self.form.e2y.editingFinished.connect(self.e2Done) self.form.e2z.editingFinished.connect(self.e2Done) self.form.e3x.editingFinished.connect(self.e3Done) self.form.e3y.editingFinished.connect(self.e3Done) self.form.e3z.editingFinished.connect(self.e3Done) self.lastEVectorChanged = 1 self.lastLastEVectorChanged = 2 self.form.comboAspectRatio.currentIndexChanged.connect( self.comboAspectRatioChanged) self.form.comboBoxCorrelation.addItems( CfdZone.POROUS_CORRELATION_NAMES) self.form.comboAspectRatio.addItems(CfdZone.ASPECT_RATIO_NAMES) elif self.obj.Name.startswith('InitialisationZone'): self.form.frameInitialisationZone.setVisible(True) self.form.comboFluid.currentIndexChanged.connect( self.comboFluidChanged) self.form.checkAlpha.stateChanged.connect(self.updateUI) self.form.checkVelocity.stateChanged.connect(self.updateUI) self.form.checkPressure.stateChanged.connect(self.updateUI) self.form.inputVolumeFraction.valueChanged.connect( self.inputVolumeFractionChanged) material_objs = CfdTools.getMaterials( CfdTools.getParentAnalysisObject(obj)) self.form.frameVolumeFraction.setVisible(len(material_objs) > 1) if len(material_objs) > 1: fluid_names = [m.Label for m in material_objs] self.form.comboFluid.addItems(fluid_names[:-1]) self.load() self.comboFluidChanged() self.updateUI() # Face list selection panel - modifies obj.ShapeRefs passed to it self.faceSelector = CfdFaceSelectWidget.CfdFaceSelectWidget( self.form.faceSelectWidget, self.obj, False, False, True)