def setup(self, case): """ Setup the widget """ self.__case = case self.__boundary = None self.__case.undoStopGlobal() # Create the Page layout. # Combo self.modelRadiative = ComboModel(self.comboBoxRadiative,3,1) self.modelRadiative.addItem(self.tr("Gray or black wall\n"\ " and profile of fixed internal temperature"), 'itpimp') self.modelRadiative.addItem(self.tr("Gray or black wall\n"\ " and profile of fixed external temperature"), 'ipgrno') self.modelRadiative.addItem(self.tr("Gray or black wall\n"\ " and flux of fixed conduction"), 'ifgrno') # Validator validatorZone = IntValidator(self.lineEditZone, min=0) validatorZone.setExclusiveMin(True) self.lineEditZone.setValidator(validatorZone) # Connections self.connect(self.comboBoxRadiative, SIGNAL("activated(const QString&)"), self.slotRadiativeChoice) self.connect(self.lineEditZone, SIGNAL("textChanged(const QString &)"), self.slotZone) self.__case.undoStartGlobal()
def setup(self, case): """ Setup the widget """ self.__case = case self.__boundary = None self.__case.undoStopGlobal() # Create the Page layout. # Combo self.modelRadiative = ComboModel(self.comboBoxRadiative,3,1) self.modelRadiative.addItem(self.tr("Gray or black wall\n"\ " and profile of fixed internal temperature"), 'itpimp') self.modelRadiative.addItem(self.tr("Gray or black wall\n"\ " and profile of fixed external temperature"), 'ipgrno') self.modelRadiative.addItem(self.tr("Gray or black wall\n"\ " and flux of fixed conduction"), 'ifgrno') # Validator validatorZone = IntValidator(self.lineEditZone, min=0) validatorZone.setExclusiveMin(True) self.lineEditZone.setValidator(validatorZone) # Connections self.comboBoxRadiative.activated[str].connect(self.slotRadiativeChoice) self.lineEditZone.textChanged[str].connect(self.slotZone) self.__case.undoStartGlobal()
def __init__(self, parent, default): """ Constructor """ QDialog.__init__(self, parent) Ui_BatchRunningStopByIterationDialogForm.__init__(self) self.setupUi(self) self.setWindowTitle(self.tr("Stop")) self.default = default self.result = self.default.copy() v = IntValidator(self.lineEditStopIter, min=1) v.setExclusiveMin(True) self.lineEditStopIter.setValidator(v) # Previous values self.iter = self.default['iter'] self.lineEditStopIter.setText(str(self.iter)) self.connect(self.lineEditStopIter, SIGNAL("textChanged(const QString &)"), self.__slotStopIter)
def setup(self, case): self.case = case self.case.undoStopGlobal() self.__model = ConjugateHeatTransferModel(self.case) # Models self.modelSyrthes = StandardItemModelSyrthes(self.__model) self.tableViewSyrthes.setModel(self.modelSyrthes) if QT_API == "PYQT4": self.tableViewSyrthes.verticalHeader().setResizeMode( QHeaderView.ResizeToContents) self.tableViewSyrthes.horizontalHeader().setResizeMode( QHeaderView.ResizeToContents) self.tableViewSyrthes.horizontalHeader().setResizeMode( 1, QHeaderView.Stretch) elif QT_API == "PYQT5": self.tableViewSyrthes.verticalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.tableViewSyrthes.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.tableViewSyrthes.horizontalHeader().setSectionResizeMode( 1, QHeaderView.Stretch) self.modelProjectionAxis = ComboModel(self.comboBoxProjectionAxis, 1, 1) self.modelProjectionAxis.addItem("off") self.modelProjectionAxis.addItem("x") self.modelProjectionAxis.addItem("y") self.modelProjectionAxis.addItem("z") # connections self.comboBoxProjectionAxis.currentTextChanged[str].connect( self.slotProjectionAxis) self.lineEditVerbosity.textChanged[str].connect(self.slotVerbosity) self.lineEditVisualization.textChanged[str].connect( self.slotVisualization) self.lineEditTolerance.editingFinished.connect(self.slotTolerance) self.lineEditVerbosity.setValidator( IntValidator(self.lineEditVerbosity)) self.lineEditVisualization.setValidator( IntValidator(self.lineEditVisualization)) _tolValidator = DoubleValidator(self.lineEditTolerance, min=0.) _tolValidator.setExclusiveMin() self.lineEditTolerance.setValidator(_tolValidator) self.initializeParameters() self.case.undoStartGlobal()
class GlobalNumericalParametersAdvancedOptionsDialogView(QDialog, Ui_GlobalNumericalParametersAdvancedOptionsDialog): """ Advanced global numerical parameters layout. """ def __init__(self, parent, case, default): """ Constructor """ QDialog.__init__(self, parent) Ui_GlobalNumericalParametersAdvancedOptionsDialog.__init__(self) self.setupUi(self) title = self.tr("Advanced options for Global Numerical Parameters") self.setWindowTitle(title) self.default = default self.result = self.default.copy() self.case = case self.case.undoStopGlobal() # Combo model self.modelVelocityUpdate = ComboModel(self.comboBoxVelocityUpdate, 4, 1) self.modelVelocityUpdate.addItem(self.tr("By the pressure gradient increment"), "pressure_gradient_increment") self.modelVelocityUpdate.addItem(self.tr("RT0 by flow rate (internal+boundary)"), "flow_rate") self.modelVelocityUpdate.addItem(self.tr("RT0 by flumas(b) increment"), "flumas_increment") self.modelVelocityUpdate.addItem(self.tr("By means of Conv+Diff+ST equation"), "conv_diff_equation") self.modelGradientPressure = ComboModel(self.comboBoxGradientPressure, 5, 1) self.modelGradientPressure.addItem(self.tr("Mass ponderation"), "mass_ponderation") self.modelGradientPressure.addItem(self.tr("Standard"), "standard") self.modelGradientPressure.addItem(self.tr("Controlled mass ponderation"), "controlled_mass_pound") self.modelGradientPressure.addItem(self.tr("Momentum ponderation"), "momentum_pound") self.modelGradientPressure.addItem(self.tr("Gravity+HL+ST momentum"), "gravity_momentum") # Validator validatorSumAlpha = DoubleValidator(self.lineEditMaxSumAlpha, min = 0., max = 1.) validatorAlphaP = IntValidator(self.lineEditNumberAlphaPCycle, min = 1) validatorSumAlpha.setExclusiveMin(False) validatorAlphaP.setExclusiveMin(False) self.lineEditMaxSumAlpha.setValidator(validatorSumAlpha) self.lineEditNumberAlphaPCycle.setValidator(validatorAlphaP) # Initialization if self.result['pressure_symetrisation'] == 'on' : self.checkBoxSymetPressure.setChecked(True) else : self.checkBoxSymetPressure.setChecked(False) self.modelVelocityUpdate.setItem(str_model=self.result['velocity_update']) self.modelGradientPressure.setItem(str_model=self.result['pressure_gradient']) self.lineEditMaxSumAlpha.setText(str(self.result['max_sum_alpha'])) self.lineEditNumberAlphaPCycle.setText(str(self.result['alpha_p_cycle'])) self.case.undoStartGlobal()
def __addValidators(self): """ Add the validator for NALIMX and EPALIM """ validatorNALIMX = IntValidator(self.lineEditNALIMX, min=1) self.lineEditNALIMX.setValidator(validatorNALIMX) validatorEPALIM = DoubleValidator(self.lineEditEPALIM, min=0.0) validatorEPALIM.setExclusiveMin(True) self.lineEditEPALIM.setValidator(validatorEPALIM)
def createEditor(self, parent, option, index): editor = QLineEdit(parent) if index.column() == 3: validator = DoubleValidator(editor, min=0., max=0.01) validator.setExclusiveMin(True) elif (index.column() == 2 or index.column() == 4): validator = IntValidator(editor, min=1) editor.setValidator(validator) editor.installEventFilter(self) return editor
def createEditor(self, parent, option, index): row = index.row() stype = index.model().getData(row, 2) editor = QLineEdit(parent) if stype == 'time step': validator = IntValidator(editor, min=1) else: validator = DoubleValidator(editor, min=0.) editor.setValidator(validator) return editor
def _setValidators(self): validatorIJNBP = IntValidator(self.lineEditIJNBP, min=0) validatorIJFRE = IntValidator(self.lineEditIJFRE, min=0) validatorICLST = IntValidator(self.lineEditICLST, min=0) validatorIDEBT = DoubleValidator(self.lineEditIDEBT, min=0.) validatorIPOIT = DoubleValidator(self.lineEditIPOIT, min=0.) validatorIPOIT.setExclusiveMin(True) validatorIROPT = DoubleValidator(self.lineEditIROPT, min=0.) validatorIROPT.setExclusiveMin(True) validatorIRCOLM = DoubleValidator(self.lineEditIRCOLM, min=0.) validatorIUNO = DoubleValidator(self.lineEditIUNO) validatorIUPT = DoubleValidator(self.lineEditIUPT) validatorIVPT = DoubleValidator(self.lineEditIVPT) validatorIWPT = DoubleValidator(self.lineEditIWPT) validatorITPT = DoubleValidator(self.lineEditITPT) validatorICPT = DoubleValidator(self.lineEditICPT) validatorIEPSI = DoubleValidator(self.lineEditIEPSI) validatorIDPT = DoubleValidator(self.lineEditIDPT, min=0.) validatorIVDPT = DoubleValidator(self.lineEditIVDPT) validatorINUCHL = IntValidator(self.lineEditINUCHL, min=0) validatorIHPT = DoubleValidator(self.lineEditIHPT) self.lineEditIJNBP.setValidator(validatorIJNBP) self.lineEditIJFRE.setValidator(validatorIJFRE) self.lineEditICLST.setValidator(validatorICLST) self.lineEditIDEBT.setValidator(validatorIDEBT) self.lineEditIPOIT.setValidator(validatorIPOIT) self.lineEditIROPT.setValidator(validatorIROPT) self.lineEditIRCOLM.setValidator(validatorIRCOLM) self.lineEditIUNO.setValidator(validatorIUNO) self.lineEditIUPT.setValidator(validatorIUPT) self.lineEditIVPT.setValidator(validatorIVPT) self.lineEditIWPT.setValidator(validatorIWPT) self.lineEditITPT.setValidator(validatorITPT) self.lineEditICPT.setValidator(validatorICPT) self.lineEditIEPSI.setValidator(validatorIEPSI) self.lineEditIDPT.setValidator(validatorIDPT) self.lineEditIVDPT.setValidator(validatorIVDPT) self.lineEditINUCHL.setValidator(validatorINUCHL) self.lineEditIHPT.setValidator(validatorIHPT)
def __init__(self, parent, default): """ Constructor """ QDialog.__init__(self, parent) Ui_BatchRunningStopByIterationDialogForm.__init__(self) self.setupUi(self) self.setWindowTitle(self.tr("Stop")) self.default = default self.result = self.default.copy() v = IntValidator(self.lineEditStopIter, min=1) v.setExclusiveMin(True) self.lineEditStopIter.setValidator(v) # Previous values self.iter = self.default['iter'] self.lineEditStopIter.setText(str(self.iter)) self.lineEditStopIter.textChanged[str].connect(self.__slotStopIter)
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_SteadyManagementForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = SteadyManagementModel(self.case) # Connections self.lineEditRELXST.textChanged[str].connect(self.slotRelaxCoef) self.lineEditNTMABS.textChanged[str].connect(self.slotNbIter) self.checkBoxINPDT0.clicked.connect(self.slotZeroIteration) # Validators validatorRELXST = DoubleValidator(self.lineEditRELXST, min=0.0, max=1.0) validatorRELXST.setExclusiveMin(True) self.lineEditRELXST.setValidator(validatorRELXST) validatorNTMABS = IntValidator(self.lineEditNTMABS, min=0) self.lineEditNTMABS.setValidator(validatorNTMABS) # Initialization relax_coef = self.mdl.getRelaxCoefficient() self.lineEditRELXST.setText(str(relax_coef)) nb_iter = self.mdl.getNbIter() self.lineEditNTMABS.setText(str(nb_iter)) if self.mdl.getZeroIteration() == 'on': self.checkBoxINPDT0.setChecked(True) else: self.checkBoxINPDT0.setChecked(False) self.case.undoStartGlobal()
class TimeAveragesView(QWidget, Ui_TimeAveragesForm): """ """ def __init__(self, parent, case, stbar): """ Constructor """ QWidget.__init__(self, parent) Ui_TimeAveragesForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = TimeAveragesModel(self.case) self.entriesNumber = 0 self.label_select = None # Create the Page layout. # Models self.modelAverage = StandardItemModelAverage(self) self.treeViewAverage.setModel(self.modelAverage) self.treeViewAverage.resizeColumnToContents(0) self.treeViewAverage.resizeColumnToContents(1) self.treeViewAverage.resizeColumnToContents(2) self.treeViewAverage.resizeColumnToContents(3) self.treeViewAverage.resizeColumnToContents(4) self.modelDrag = QStringListModel() self.modelDrop = QStringListModel() self.listViewDrag.setModel(self.modelDrag) self.listViewDrop.setModel(self.modelDrop) self.listViewDrag.setAlternatingRowColors(True) self.listViewDrag.setEditTriggers(QAbstractItemView.NoEditTriggers) self.listViewDrop.setAlternatingRowColors(True) self.listViewDrop.setEditTriggers(QAbstractItemView.NoEditTriggers) self.modelIMOOLD = ComboModel(self.comboBoxIMOOLD, 3, 1) self.modelIMOOLD.addItem(self.tr('automatic'), 'automatic') self.modelIMOOLD.addItem(self.tr('reset'), 'reset') self.modelIMOOLD.addItem(self.tr('specified'), 'specified') self.modelStartType = ComboModel(self.comboBoxStartType, 2, 1) self.modelStartType.addItem(self.tr('time'), 'time') self.modelStartType.addItem(self.tr('iteration'), 'iteration') # Connections self.pushButtonAdd.clicked.connect(self.slotAddAverage) self.pushButtonDelete.clicked.connect(self.slotdeleteTimeAverage) self.pushButtonAddVar.clicked.connect(self.slotAddVarAverage) self.pushButtonSuppressVar.clicked.connect(self.slotDeleteVarAverage) self.treeViewAverage.pressed[QModelIndex].connect(self.slotSelectAverage) self.lineEditStart.textChanged[str].connect(self.slotStart) self.lineEditStartTime.textChanged[str].connect(self.slotStartTime) self.comboBoxIMOOLD.activated[str].connect(self.slotRestartChoice) self.comboBoxStartType.activated[str].connect(self.slotTimeChoice) self.lineEditRestart.textChanged[str].connect(self.slotRestart) self.lineEditAverage.textChanged[str].connect(self.slotBaseName) # Validators validatorStart = IntValidator(self.lineEditStart, min=-1) self.lineEditStart.setValidator(validatorStart) validatorStartTime = DoubleValidator(self.lineEditStartTime, min=-1.) self.lineEditStartTime.setValidator(validatorStartTime) validatorRestart = IntValidator(self.lineEditRestart, min=-2, max=50) validatorRestart.setExclusiveValues([0]) self.lineEditRestart.setValidator(validatorRestart) rx = "[\-_A-Za-z0-9]{1," + str(LABEL_LENGTH_MAX) + "}" validatorLabel = RegExpValidator(self.lineEditAverage, QRegExp(rx)) self.lineEditAverage.setValidator(validatorLabel) # Initialize # Update list of variables, properties, scalars ... lst_label = [str(label) for label in list(self.mdl.dicoLabel2Name.keys())] self.modelDrag.setStringList(sorted(lst_label, key=str.lower)) # Is it a following calculation ? if not StartRestartModel(self.case).getRestartPath(): self.labelRestart.setDisabled(True) self.comboBoxIMOOLD.setDisabled(True) self.lineEditRestart.setDisabled(True) self.treeViewAverage.hideColumn(4)
class ProfilesView(QWidget, Ui_ProfilesForm): """ """ def __init__(self, parent, case, stbar): """ Constructor """ QWidget.__init__(self, parent) Ui_ProfilesForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = ProfilesModel(self.case) self.notebook = NotebookModel(self.case) # Initialize variables concerning the display of the Hlist self.entriesNumber = 0 # Models self.modelProfile = StandardItemModelProfile() self.treeViewProfile.setModel(self.modelProfile) self.treeViewProfile.resizeColumnToContents(0) # QListView layout self.gridlayout1 = QGridLayout(self.widgetDrag) self.gridlayout1.setContentsMargins(0, 0, 0, 0) self.DragList = QListView(self.widgetDrag) self.gridlayout1.addWidget(self.DragList, 0, 0, 1, 1) self.gridlayout2 = QGridLayout(self.widgetDrop) self.gridlayout2.setContentsMargins(0, 0, 0, 0) self.DropList = QListView(self.widgetDrop) self.gridlayout2.addWidget(self.DropList, 0, 0, 1, 1) self.modelDrag = QStringListModel() self.modelDrop = QStringListModel() self.DragList.setModel(self.modelDrag) self.DropList.setModel(self.modelDrop) self.DragList.setAlternatingRowColors(True) self.DragList.setEditTriggers(QAbstractItemView.NoEditTriggers) self.DropList.setAlternatingRowColors(True) self.DropList.setEditTriggers(QAbstractItemView.NoEditTriggers) # Combo items self.modelFreq = ComboModel(self.comboBoxFreq, 3, 1) self.modelFreq.addItem(self.tr("at the end of the calculation"), "end") self.modelFreq.addItem(self.tr("at each 'n' time steps"), "frequency") self.modelFreq.addItem(self.tr("Output every 'x' seconds"), 'time_value') self.modelFormat = ComboModel(self.comboBoxFormat, 2, 1) self.modelFormat.addItem(self.tr(".dat"), "DAT") self.modelFormat.addItem(self.tr(".csv"), "CSV") # Connections self.treeViewProfile.pressed[QModelIndex].connect( self.slotSelectProfile) self.pushButtonAdd.clicked.connect(self.slotAddProfile) self.pushButtonDelete.clicked.connect(self.slotDeleteProfile) self.pushButtonAddVar.clicked.connect(self.slotAddVarProfile) self.pushButtonSuppressVar.clicked.connect(self.slotDeleteVarProfile) self.comboBoxFreq.activated[str].connect(self.slotFrequencyType) self.comboBoxFormat.activated[str].connect(self.slotFormatType) self.pushButtonFormula.clicked.connect(self.slotFormula) self.lineEditBaseName.textChanged[str].connect(self.slotBaseName) self.lineEditFreq.textChanged[str].connect(self.slotFrequence) self.lineEditFreqTime.textChanged[str].connect(self.slotFrequenceTime) self.lineEditNbPoint.textChanged[str].connect(self.slotNbPoint) # Validators validatorFreq = IntValidator(self.lineEditFreq, min=0) validatorFreq.setExclusiveMin(True) self.lineEditFreq.setValidator(validatorFreq) validatorFreqT = DoubleValidator(self.lineEditFreqTime, min=0.) validatorFreqT.setExclusiveMin(True) self.lineEditFreqTime.setValidator(validatorFreqT) validatorNbPoint = IntValidator(self.lineEditNbPoint, min=0) self.lineEditNbPoint.setValidator(validatorNbPoint) rx = "[\-_A-Za-z0-9]{1," + str(LABEL_LENGTH_MAX) + "}" validatorBaseName = RegExpValidator(self.lineEditBaseName, QRegExp(rx)) self.lineEditBaseName.setValidator(validatorBaseName) #update list of variables, properties, scalars ... liste_label = [] for label in self.mdl.getVariablesAndVolumeProperties(): liste_label.append(label) self.modelDrag.setStringList(sorted(liste_label, key=str.lower)) #update list of profiles for view from xml file for lab in self.mdl.getProfilesLabelsList(): self.entriesNumber = self.entriesNumber + 1 label, fmt, lst, choice, freq, formula, nb_point = self.mdl.getProfileData( lab) self.__insertProfile(label, lst) self.__eraseEntries() self.case.undoStartGlobal()
class ThermalRadiationAdvancedDialogView(QDialog, Ui_ThermalRadiationAdvancedDialogForm ): """ Building of popup window for advanced options. """ def __init__(self, parent, case, default): """ Constructor """ QDialog.__init__(self, parent) Ui_ThermalRadiationAdvancedDialogForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.setWindowTitle(self.tr("Advanced options")) self.default = default self.result = self.default.copy() # Combo models self.modelTSRay = ComboModel(self.comboBoxTSRay, 3, 1) self.modelPrintT = ComboModel(self.comboBoxPrintT, 3, 1) self.modelPrintL = ComboModel(self.comboBoxPrintL, 3, 1) self.modelTSRay.addItem('0', '0') self.modelTSRay.addItem('1', '1') self.modelTSRay.addItem('2', '2') self.modelPrintT.addItem('0', '0') self.modelPrintT.addItem('1', '1') self.modelPrintT.addItem('2', '2') self.modelPrintL.addItem('0', '0') self.modelPrintL.addItem('1', '1') self.modelPrintL.addItem('2', '2') self.frequ = self.default['frequency'] self.tsr = self.default['idiver'] self.printTemp = self.default['tempP'] self.printLum = self.default['intensity'] model = self.default['model'] # Initialization self.lineEditFreq.setText(str(self.frequ)) self.modelTSRay.setItem(str_model=str(self.tsr)) self.modelPrintT.setItem(str_model=str(self.printTemp)) self.modelPrintL.setItem(str_model=str(self.printLum)) if model == 'dom': self.labelPrintL.show() self.comboBoxPrintL.show() else: self.labelPrintL.hide() self.comboBoxPrintL.hide() # Validator validatorFreq = IntValidator(self.lineEditFreq, min=1) self.lineEditFreq.setValidator(validatorFreq) self.case.undoStartGlobal()
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_LagrangianStatisticsForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.model = LagrangianStatisticsModel(self.case) self.connect(self.checkBoxISUIST, SIGNAL("clicked()"), self.slotISUIST) self.connect(self.lineEditNBCLST, SIGNAL("textChanged(const QString &)"), self.slotNBCLST) self.connect(self.groupBoxISTALA, SIGNAL("clicked()"), self.slotISTALA) self.connect(self.lineEditIDSTNT, SIGNAL("editingFinished()"), self.slotIDSTNT) self.connect(self.lineEditNSTIST, SIGNAL("editingFinished()"), self.slotNSTIST) self.connect(self.lineEditSEUIL, SIGNAL("textChanged(const QString &)"), self.slotSEUIL) self.connect(self.groupBoxIENSI3, SIGNAL("clicked()"), self.slotIENSI3) self.connect(self.lineEditNSTBOR, SIGNAL("textChanged(const QString &)"), self.slotNSTBOR) self.connect(self.lineEditSEUILF, SIGNAL("textChanged(const QString &)"), self.slotSEUILF) validatorNBCLST = IntValidator(self.lineEditNBCLST, min=0) # max=100 validatorIDSTNT = IntValidator(self.lineEditIDSTNT, min=0) validatorIDSTNT.setExclusiveMin(True) validatorNSTIST = IntValidator(self.lineEditNSTIST, min=0) validatorSEUIL = DoubleValidator(self.lineEditSEUIL, min=0.) validatorNSTBOR = IntValidator(self.lineEditNSTBOR, min=0) validatorNSTBOR.setExclusiveMin(True) validatorSEUILF = DoubleValidator(self.lineEditSEUILF, min=0.) self.lineEditNBCLST.setValidator(validatorNBCLST) self.lineEditIDSTNT.setValidator(validatorIDSTNT) self.lineEditNSTIST.setValidator(validatorNSTIST) self.lineEditSEUIL.setValidator(validatorSEUIL) self.lineEditNSTBOR.setValidator(validatorNSTBOR) self.lineEditSEUILF.setValidator(validatorSEUILF) # initialize Widgets # FIXME # test if restart lagrangian is on ## mdl.lagr = LagrangianModel() ## is_restart = mdl_lagr.getRestart() ## if is_restart == "off": ## self.lineEditISUIST.setEnabled(False) ## self.checkBoxISUIST.setEnabled(False) status = self.model.getRestartStatisticsStatus() if status == "on": self.checkBoxISUIST.setChecked(True) else: self.checkBoxISUIST.setChecked(False) nclust = self.model.getGroupOfParticlesValue() self.lineEditNBCLST.setText(str(nclust)) # volume status = self.model.getVolumeStatisticsStatus() if status == "on": self.groupBoxISTALA.setChecked(True) else: self.groupBoxISTALA.setChecked(False) self.slotISTALA() # boundary status = self.model.getBoundaryStatisticsStatus() if status == "on": self.groupBoxIENSI3.setChecked(True) else: self.groupBoxIENSI3.setChecked(False) self.slotIENSI3() self.case.undoStartGlobal()
def createEditor(self, parent, option, index): editor = QLineEdit(parent) v = IntValidator(editor, min=1) editor.setValidator(v) return editor
def createEditor(self, parent, option, index): editor = QLineEdit(parent) validator = IntValidator(editor, min=0) editor.setValidator(validator) editor.installEventFilter(self) return editor
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_LagrangianBoundariesForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.model = LagrangianBoundariesModel(self.case) self.modelBoundaries = StandardItemModelBoundaries( self.case, self.model) self.tableViewBoundaries.setModel(self.modelBoundaries) self.tableViewBoundaries.setAlternatingRowColors(True) if QT_API == "PYQT4": self.tableViewBoundaries.horizontalHeader().setResizeMode( QHeaderView.Stretch) elif QT_API == "PYQT5": self.tableViewBoundaries.horizontalHeader().setSectionResizeMode( QHeaderView.Stretch) delegateInteraction = ParticleBoundaryInteractionDelegate( self.tableViewBoundaries) delegateSetNumber = ValueDelegate(self.tableViewBoundaries) self.tableViewBoundaries.setItemDelegateForColumn( 2, delegateInteraction) self.tableViewBoundaries.setItemDelegateForColumn(3, delegateSetNumber) self.modelIPOIT = ComboModel(self.comboBoxIPOIT, 3, 1) self.modelIPOIT.addItem(self.tr("Mass flow rate"), "rate") self.modelIPOIT.addItem(self.tr("Statistical weight set by values"), "prescribed") self.modelIJUVW = ComboModel(self.comboBoxIJUVW, 4, 1) self.modelIJUVW.addItem(self.tr("Fluid velocity"), "fluid") self.modelIJUVW.addItem(self.tr("Normal direction velocity"), "norm") self.modelIJUVW.addItem(self.tr("Velocity given by values"), "components") self.modelIJRTP = ComboModel(self.comboBoxIJRTP, 2, 1) self.modelIJRTP.addItem(self.tr("Fluid temperature"), "fluid") self.modelIJRTP.addItem(self.tr("Temperature set by values"), "prescribed") self.tableViewBoundaries.clicked[QModelIndex].connect( self.slotSelectBoundary) self.modelBoundaries.dataChanged.connect(self.dataChanged) self.spinBoxICLAS.valueChanged[int].connect(self.slotICLAS) self.lineEditIJNBP.textChanged[str].connect(self.slotIJNBP) self.lineEditIJFRE.textChanged[str].connect(self.slotIJFRE) self.lineEditICLST.textChanged[str].connect(self.slotICLST) self.lineEditIDEBT.textChanged[str].connect(self.slotIDEBT) self.comboBoxIPOIT.activated[str].connect(self.slotIPOITChoice) self.lineEditIPOIT.textChanged[str].connect(self.slotIPOIT) self.lineEditIROPT.textChanged[str].connect(self.slotIROPT) self.lineEditIRCOLM.textChanged[str].connect(self.slotIRCOLM) self.comboBoxIJUVW.activated[str].connect(self.slotIJUVW) self.lineEditIUNO.textChanged[str].connect(self.slotIUNO) self.lineEditIUPT.textChanged[str].connect(self.slotIUPT) self.lineEditIVPT.textChanged[str].connect(self.slotIVPT) self.lineEditIWPT.textChanged[str].connect(self.slotIWPT) self.comboBoxIJRTP.activated[str].connect(self.slotIJRTP) self.lineEditITPT.textChanged[str].connect(self.slotITPT) self.lineEditICPT.textChanged[str].connect(self.slotICPT) self.lineEditIEPSI.textChanged[str].connect(self.slotIEPSI) self.lineEditIDPT.textChanged[str].connect(self.slotIDPT) self.lineEditIVDPT.textChanged[str].connect(self.slotIVDPT) self.lineEditINUCHL.textChanged[str].connect(self.slotINUCHL) self.lineEditIHPT.textChanged[str].connect(self.slotIHPT) # Validators validatorIJNBP = IntValidator(self.lineEditIJNBP, min=0) validatorIJFRE = IntValidator(self.lineEditIJFRE, min=0) validatorICLST = IntValidator(self.lineEditICLST, min=0) validatorIDEBT = DoubleValidator(self.lineEditIDEBT, min=0.) validatorIPOIT = DoubleValidator(self.lineEditIPOIT, min=0.) validatorIPOIT.setExclusiveMin(True) validatorIROPT = DoubleValidator(self.lineEditIROPT, min=0.) validatorIROPT.setExclusiveMin(True) validatorIRCOLM = DoubleValidator(self.lineEditIRCOLM, min=0.) validatorIUNO = DoubleValidator(self.lineEditIUNO) validatorIUPT = DoubleValidator(self.lineEditIUPT) validatorIVPT = DoubleValidator(self.lineEditIVPT) validatorIWPT = DoubleValidator(self.lineEditIWPT) validatorITPT = DoubleValidator(self.lineEditITPT) validatorICPT = DoubleValidator(self.lineEditICPT) validatorIEPSI = DoubleValidator(self.lineEditIEPSI) validatorIDPT = DoubleValidator(self.lineEditIDPT, min=0.) validatorIVDPT = DoubleValidator(self.lineEditIVDPT) validatorINUCHL = IntValidator(self.lineEditINUCHL, min=0) validatorIHPT = DoubleValidator(self.lineEditIHPT) self.lineEditIJNBP.setValidator(validatorIJNBP) self.lineEditIJFRE.setValidator(validatorIJFRE) self.lineEditICLST.setValidator(validatorICLST) self.lineEditIDEBT.setValidator(validatorIDEBT) self.lineEditIPOIT.setValidator(validatorIPOIT) self.lineEditIROPT.setValidator(validatorIROPT) self.lineEditIRCOLM.setValidator(validatorIRCOLM) self.lineEditIUNO.setValidator(validatorIUNO) self.lineEditIUPT.setValidator(validatorIUPT) self.lineEditIVPT.setValidator(validatorIVPT) self.lineEditIWPT.setValidator(validatorIWPT) self.lineEditITPT.setValidator(validatorITPT) self.lineEditICPT.setValidator(validatorICPT) self.lineEditIEPSI.setValidator(validatorIEPSI) self.lineEditIDPT.setValidator(validatorIDPT) self.lineEditIVDPT.setValidator(validatorIVDPT) self.lineEditINUCHL.setValidator(validatorINUCHL) self.lineEditIHPT.setValidator(validatorIHPT) self._hideAllWidgets() self.case.undoStartGlobal()
class LagrangianAdvancedOptionsDialogView( QDialog, Ui_LagrangianAdvancedOptionsDialogForm): """ Advanced dialog """ def __init__(self, parent, case, default): """ Constructor """ QDialog.__init__(self, parent) Ui_LagrangianAdvancedOptionsDialogForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.setWindowTitle(self.tr("Advanced options")) self.default = default self.result = self.default.copy() # Combo model self.modelNORDRE = ComboModel(self.comboBoxNORDRE, 2, 1) self.modelNORDRE.addItem(self.tr("first-order scheme"), "1") self.modelNORDRE.addItem(self.tr("second-order scheme"), "2") self.modelIDIRLA = ComboModel(self.comboBoxIDIRLA, 3, 1) self.modelIDIRLA.addItem(self.tr("X"), "1") self.modelIDIRLA.addItem(self.tr("Y"), "2") self.modelIDIRLA.addItem(self.tr("Z"), "3") # Connections self.comboBoxNORDRE.activated[str].connect(self.slotNORDRE) self.checkBoxIDISTU.clicked.connect(self.slotIDISTU) self.checkBoxIDIFFL.clicked.connect(self.slotIDIFFL) self.groupBoxModel.clicked[bool].connect(self.slotModel) self.lineEditMODCPL.textChanged[str].connect(self.slotMODCPL) self.comboBoxIDIRLA.activated[str].connect(self.slotIDIRLA) validatorMODCPL = IntValidator(self.lineEditMODCPL, min=1) self.lineEditMODCPL.setValidator(validatorMODCPL) # initialize Widgets order = str(self.result['scheme_order']) self.modelNORDRE.setItem(str_model=order) if self.result['turbulent_dispertion'] == "on": self.checkBoxIDISTU.setChecked(True) else: self.checkBoxIDISTU.setChecked(False) if self.result['fluid_particles_turbulent_diffusion'] == "on": self.checkBoxIDIFFL.setChecked(True) else: self.checkBoxIDIFFL.setChecked(False) value = self.result['complete_model_iteration'] if value > 0: self.lineEditMODCPL.setText(str(value)) direction = self.result['complete_model_direction'] self.modelIDIRLA.setItem(str_model=str(direction)) else: self.groupBoxModel.setChecked(False) self.case.undoStartGlobal()
class LagrangianView(QWidget, Ui_LagrangianForm): """ """ def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_LagrangianForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.model = LagrangianModel(self.case) # Combo model self.modelIPHYLA = ComboModel(self.comboBoxIPHYLA, 2, 1) self.modelIPHYLA.addItem(self.tr("No model"), 'off') self.modelIPHYLA.addItem(self.tr("Heat transfer and evaporation"), 'thermal') if CoalCombustionModel( self.case).getCoalCombustionModel("only") != 'off': self.modelIPHYLA.addItem(self.tr("Pulverised coal model"), 'coal') # Connections self.checkBoxISUILA.clicked.connect(self.slotISUILA) self.checkBoxISTTIO.clicked.connect(self.slotISTTIO) self.checkBoxIDEPST.clicked.connect(self.slotIDEPST) self.comboBoxIPHYLA.activated[str].connect(self.slotIPHYLA) self.checkBoxITPVAR.clicked.connect(self.slotITPVAR) self.checkBoxIMPVAR.clicked.connect(self.slotIMPVAR) self.checkBoxIENCRA.clicked.connect(self.slotIENCRA) # self.lineEditNSTITS.textChanged[str].connect(self.slotNSTITS) self.checkBoxLTSDYN.clicked.connect(self.slotLTSDYN) self.checkBoxLTSMAS.clicked.connect(self.slotLTSMAS) self.checkBoxLTSTHE.clicked.connect(self.slotLTSTHE) self.toolButtonAdvanced.clicked.connect(self.slotAdvancedOptions) # Validators validatorNSTITS = IntValidator(self.lineEditNSTITS) self.lineEditNSTITS.setValidator(validatorNSTITS) # initialize Widgets model = self.model.getLagrangianModel() status = self.model.getRestart() if status == "on": self.checkBoxISUILA.setChecked(True) else: self.checkBoxISUILA.setChecked(False) status = self.model.getCarrierFlowStationary() if status == "on": self.checkBoxISTTIO.setChecked(True) else: self.checkBoxISTTIO.setChecked(False) status = self.model.getDepositionSubmodel() if status == "on": self.checkBoxIDEPST.setChecked(True) else: self.checkBoxIDEPST.setChecked(False) if (model == "frozen"): self.labelISTTIO.setDisabled(True) self.checkBoxISTTIO.setChecked(True) self.checkBoxISTTIO.setDisabled(True) self.groupBox2way.hide() self.labelISTTIO.setDisabled(False) self.checkBoxISTTIO.setDisabled(False) if model == "one_way": pass elif model == "two_way": self.groupBox2way.show() start_it = self.model.get2WayCouplingStartIteration() self.lineEditNSTITS.setText(str(start_it)) status = self.model.get2WayCouplingDynamic() if status == "on": self.checkBoxLTSDYN.setChecked(True) else: self.checkBoxLTSDYN.setChecked(False) status = self.model.get2WayCouplingMass() if status == "on": self.checkBoxLTSMAS.setChecked(True) else: self.checkBoxLTSMAS.setChecked(False) status = self.model.get2WayCouplingTemperature() if status == "on": self.checkBoxLTSTHE.setChecked(True) else: self.checkBoxLTSTHE.setChecked(False) elif model == "frozen": self.labelISTTIO.setDisabled(True) self.checkBoxISTTIO.setDisabled(True) part_model = self.model.getParticlesModel() self.modelIPHYLA.setItem(str_model=part_model) self.slotIPHYLA(self.modelIPHYLA.dicoM2V[part_model]) self.case.undoStartGlobal()
class StartRestartAdvancedDialogView(QDialog, Ui_StartRestartAdvancedDialogForm): """ Building of popup window for advanced options. """ def __init__(self, parent, case, default): """ Constructor """ QDialog.__init__(self, parent) Ui_StartRestartAdvancedDialogForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.setWindowTitle(self.tr("Advanced options")) self.default = default self.result = self.default.copy() # Combo models and items self.modelFreq = ComboModel(self.comboBoxFreq, 4, 1) self.modelFreq.addItem(self.tr("Never"), 'Never') self.modelFreq.addItem(self.tr("Only at the end of the calculation"), 'At the end') self.modelFreq.addItem(self.tr("4 restart checkpoints"), '4 output') self.modelFreq.addItem(self.tr("Checkpoints frequency :"), 'Frequency') # Connections self.comboBoxFreq.activated[str].connect(self.slotFreq) self.lineEditNSUIT.textChanged[str].connect(self.slotNsuit) # Validator validatorNSUIT = IntValidator(self.lineEditNSUIT, min=0) self.lineEditNSUIT.setValidator(validatorNSUIT) # Read of auxiliary file if calculation restart is asked if self.default['restart']: self.groupBoxRestart.show() if self.default['restart_with_auxiliary'] == 'on': self.checkBoxReadAuxFile.setChecked(True) else: self.checkBoxReadAuxFile.setChecked(False) else: self.groupBoxRestart.hide() # Frequency of rescue of restart file if self.default['restart_rescue'] == -2: self.nsuit = -2 self.lineEditNSUIT.setDisabled(True) self.freq = 'Never' elif self.default['restart_rescue'] == -1: self.nsuit = -1 self.lineEditNSUIT.setDisabled(True) self.freq = 'At the end' elif self.default['restart_rescue'] == 0: self.nsuit = 0 self.lineEditNSUIT.setDisabled(True) self.freq = '4 output' else: self.nsuit = self.default['restart_rescue'] self.lineEditNSUIT.setEnabled(True) self.freq = 'Frequency' self.modelFreq.setItem(str_model=self.freq) self.lineEditNSUIT.setText(str(self.nsuit)) self.case.undoStartGlobal()
class LagrangianView(QWidget, Ui_LagrangianForm): """ """ def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_LagrangianForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.model = LagrangianModel(self.case) # Default settings self.default = {} self.default['scheme_order'] = self.model.getSchemeOrder() self.default['regular_particles'] = self.model.getRegularParticles() self.result = self.default.copy() # Combo model self.modelIPHYLA = ComboModel(self.comboBoxIPHYLA, 2, 1) self.modelIPHYLA.addItem(self.tr("No model"), 'off') self.modelIPHYLA.addItem(self.tr("Heat transfer and evaporation"), 'thermal') if CoalCombustionModel( self.case).getCoalCombustionModel("only") != 'off': self.modelIPHYLA.addItem(self.tr("Pulverised coal model"), 'coal') # Combo SDEs scheme self.modelNORDRE = ComboModel(self.comboBoxNORDRE, 2, 1) self.modelNORDRE.addItem(self.tr("first-order scheme"), "1") self.modelNORDRE.addItem(self.tr("second-order scheme"), "2") # Connections self.checkBoxISUILA.clicked.connect(self.slotISUILA) self.checkBoxISTTIO.clicked.connect(self.slotISTTIO) self.checkBoxIDEPST.clicked.connect(self.slotIDEPST) self.comboBoxIPHYLA.activated[str].connect(self.slotIPHYLA) self.comboBoxNORDRE.activated[str].connect(self.slotNORDRE) self.checkBoxITPVAR.clicked.connect(self.slotITPVAR) self.checkBoxIMPVAR.clicked.connect(self.slotIMPVAR) self.checkBoxIENCRA.clicked.connect(self.slotIENCRA) # self.lineEditNSTITS.textChanged[str].connect(self.slotNSTITS) self.checkBoxLTSDYN.clicked.connect(self.slotLTSDYN) self.checkBoxLTSMAS.clicked.connect(self.slotLTSMAS) self.checkBoxLTSTHE.clicked.connect(self.slotLTSTHE) # self.checkBoxMODCPL.clicked.connect(self.slotMODCPL) # Validators validatorNSTITS = IntValidator(self.lineEditNSTITS) self.lineEditNSTITS.setValidator(validatorNSTITS) # initialize Widgets model = self.model.getLagrangianModel() status = self.model.getRestart() if status == "on": self.checkBoxISUILA.setChecked(True) else: self.checkBoxISUILA.setChecked(False) status = self.model.getCarrierFlowStationary() if status == "on": self.checkBoxISTTIO.setChecked(True) else: self.checkBoxISTTIO.setChecked(False) status = self.model.getDepositionSubmodel() if status == "on": self.checkBoxIDEPST.setChecked(True) else: self.checkBoxIDEPST.setChecked(False) order = str(self.result['scheme_order']) self.modelNORDRE.setItem(str_model=order) if (model == "frozen"): self.labelISTTIO.setDisabled(True) self.checkBoxISTTIO.setChecked(True) self.checkBoxISTTIO.setDisabled(True) self.groupBox2way.hide() self.labelISTTIO.setDisabled(False) self.checkBoxISTTIO.setDisabled(False) if model == "one_way": pass elif model == "two_way": self.groupBox2way.show() start_it = self.model.get2WayCouplingStartIteration() self.lineEditNSTITS.setText(str(start_it)) status = self.model.get2WayCouplingDynamic() if status == "on": self.checkBoxLTSDYN.setChecked(True) else: self.checkBoxLTSDYN.setChecked(False) status = self.model.get2WayCouplingMass() if status == "on": self.checkBoxLTSMAS.setChecked(True) else: self.checkBoxLTSMAS.setChecked(False) status = self.model.get2WayCouplingTemperature() if status == "on": self.checkBoxLTSTHE.setChecked(True) else: self.checkBoxLTSTHE.setChecked(False) elif model == "frozen": self.labelISTTIO.setDisabled(True) self.checkBoxISTTIO.setDisabled(True) part_model = self.model.getParticlesModel() self.modelIPHYLA.setItem(str_model=part_model) self.slotIPHYLA(self.modelIPHYLA.dicoM2V[part_model]) regular_particles = self.model.getRegularParticles() if regular_particles >= 1: self.checkBoxMODCPL.setChecked(False) else: self.checkBoxMODCPL.setChecked(True) self.case.undoStartGlobal()
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_TimeStepForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = TimeStepModel(self.case) # Combo model self.modelTimeOptions = ComboModel(self.comboBoxOptions, 2, 1) self.modelTimeOptions.addItem(self.tr("Constant"), '0') self.modelTimeOptions.addItem(self.tr("Variable"), '1') # Connections self.comboBoxOptions.activated[str].connect(self.slotTimePassing) self.lineEditDTREF.textChanged[str].connect(self.slotTimeStep) self.lineEditNTMABS.textChanged[str].connect(self.slotIter) self.lineEditCOUMAX.textChanged[str].connect(self.slotTimeOptionCOUMAX) self.lineEditFOUMAX.textChanged[str].connect(self.slotTimeOptionFOUMAX) self.lineEditCDTMIN.textChanged[str].connect(self.slotTimeOptionCDTMIN) self.lineEditCDTMAX.textChanged[str].connect(self.slotTimeOptionCDTMAX) self.lineEditVARRDT.textChanged[str].connect(self.slotTimeOptionVARRDT) self.checkBoxIPTLRO.clicked.connect(self.slotThermalTimeStep) self.checkBoxINPDT0.clicked.connect(self.slotZeroTimeStep) # Validators validatorDTREF = DoubleValidator(self.lineEditDTREF, min=0.0) validatorDTREF.setExclusiveMin(True) validatorNTMABS = IntValidator(self.lineEditNTMABS, min=1) validatorCOUMAX = DoubleValidator(self.lineEditCOUMAX, min=0.0) validatorCOUMAX.setExclusiveMin(True) validatorFOUMAX = DoubleValidator(self.lineEditFOUMAX, min=0.0) validatorFOUMAX.setExclusiveMin(True) validatorCDTMIN = DoubleValidator(self.lineEditCDTMIN, min=0.0, max=1.0) validatorCDTMIN.setExclusiveMin(True) validatorCDTMAX = DoubleValidator(self.lineEditCDTMAX, min=1.0) validatorVARRDT = DoubleValidator(self.lineEditVARRDT, min=0.0, max=1.0) validatorVARRDT.setExclusiveMin(True) self.lineEditDTREF.setValidator(validatorDTREF) self.lineEditNTMABS.setValidator(validatorNTMABS) self.lineEditCOUMAX.setValidator(validatorCOUMAX) self.lineEditFOUMAX.setValidator(validatorFOUMAX) self.lineEditCDTMIN.setValidator(validatorCDTMIN) self.lineEditCDTMAX.setValidator(validatorCDTMAX) self.lineEditVARRDT.setValidator(validatorVARRDT) # Initialization status = SteadyManagementModel(self.case).getSteadyFlowManagement() if status == 'on': self.comboBoxOptions.hide() self.mdl.setTimePassing(2) courant_max = self.mdl.getOptions('max_courant_num') fourier_max = self.mdl.getOptions('max_fourier_num') time_step_min_factor = self.mdl.getOptions('time_step_min_factor') time_step_max_factor = self.mdl.getOptions('time_step_max_factor') time_step_var = self.mdl.getOptions('time_step_var') self.lineEditCOUMAX.setText(str(courant_max)) self.lineEditFOUMAX.setText(str(fourier_max)) self.lineEditCDTMIN.setText(str(time_step_min_factor)) self.lineEditCDTMAX.setText(str(time_step_max_factor)) self.lineEditVARRDT.setText(str(time_step_var)) self.groupBoxLabels.show() else: self.comboBoxOptions.show() idtvar = self.mdl.getTimePassing() self.modelTimeOptions.setItem(str_model=str(idtvar)) from code_saturne.Pages.TurbulenceModel import TurbulenceModel model = TurbulenceModel(self.case).getTurbulenceModel() del TurbulenceModel if model in ('LES_Smagorinsky', 'LES_dynamique', 'LES_WALE'): idtvar = 0 self.modelTimeOptions.setItem(str_model=str(idtvar)) self.modelTimeOptions.disableItem(str_model='0') self.modelTimeOptions.disableItem(str_model='1') text = self.comboBoxOptions.currentText() self.slotTimePassing(text) dtref = self.mdl.getTimeStep() self.lineEditDTREF.setText(str(dtref)) ntmabs = self.mdl.getIterationsNumber() self.lineEditNTMABS.setText(str(ntmabs)) if self.mdl.thermalCase(): if self.mdl.getThermalTimeStep() == 'on': self.checkBoxIPTLRO.setChecked(True) else: self.checkBoxIPTLRO.setChecked(False) else: self.lineIPTLRO.hide() self.labelIPTLRO.hide() self.checkBoxIPTLRO.hide() self.mdl.RemoveThermalTimeStepNode() if self.mdl.getZeroTimeStep() == 'on': self.checkBoxINPDT0.setChecked(True) else: self.checkBoxINPDT0.setChecked(False) self.case.undoStartGlobal()
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_TimeStep.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = TimeStepModel(self.case) # Combo box models self.modelTimeStepOption = ComboModel(self.comboBoxTimeStepOption, 3, 1) self.modelTimeStepOption.addItem(self.tr("Constant"), "constant") self.modelTimeStepOption.addItem(self.tr("Adaptive"), "uniform") self.modelTimeStepOption.addItem(self.tr("Steady"), "steady") self.modelTimeStop = ComboModel(self.comboBoxTimeStopType, 2, 1) self.modelTimeStop.addItem(self.tr("Number of time steps"), "iteration") self.modelTimeStop.addItem(self.tr("Time analysis (s)"), "time") # Validators validatorRefT = DoubleValidator(self.lineEditReferenceTimeStep, min = 0.0) validatorNumT = IntValidator(self.lineEditNumberTimeStep, min = 0) validatorAnaT = DoubleValidator(self.lineEditTimeAnalysis) validatorDtMin = DoubleValidator(self.lineEditDtMin, min = 0.0) validatorDtMax = DoubleValidator(self.lineEditDtMax, min = 0.0) validatorIncMax = DoubleValidator(self.lineEditDtIncreasingMax, min = 0.0) validatorDecMax = DoubleValidator(self.lineEditDtDecreasingMax, min = 0.0) validatorRefT.setExclusiveMin(True) validatorNumT.setExclusiveMin(True) validatorDtMin.setExclusiveMin(True) validatorDtMax.setExclusiveMin(True) validatorIncMax.setExclusiveMin(True) validatorDecMax.setExclusiveMin(True) self.lineEditReferenceTimeStep.setValidator(validatorRefT) self.lineEditNumberTimeStep.setValidator(validatorNumT) self.lineEditTimeAnalysis.setValidator(validatorAnaT) self.lineEditDtMin.setValidator(validatorDtMin) self.lineEditDtMax.setValidator(validatorDtMax) self.lineEditDtIncreasingMax.setValidator(validatorIncMax) self.lineEditDtDecreasingMax.setValidator(validatorDecMax) # tableViewCourantFourier self.tableModelCourantFourier = StandardItemModelCourantFourier(self.mdl) self.tableViewCourantFourier.setModel(self.tableModelCourantFourier) self.tableViewCourantFourier.resizeColumnsToContents() self.tableViewCourantFourier.resizeRowsToContents() if QT_API == "PYQT4": self.tableViewCourantFourier.verticalHeader().setResizeMode(QHeaderView.ResizeToContents) self.tableViewCourantFourier.horizontalHeader().setResizeMode(QHeaderView.ResizeToContents) self.tableViewCourantFourier.horizontalHeader().setResizeMode(0,QHeaderView.Stretch) elif QT_API == "PYQT5": self.tableViewCourantFourier.verticalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) self.tableViewCourantFourier.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeToContents) self.tableViewCourantFourier.horizontalHeader().setSectionResizeMode(0,QHeaderView.Stretch) self.tableViewCourantFourier.setSelectionBehavior(QAbstractItemView.SelectRows) self.tableViewCourantFourier.setSelectionMode(QAbstractItemView.SingleSelection) delegateMaxFourier = ValueDelegate(self.tableViewCourantFourier) delegateMaxCourant = ValueDelegate(self.tableViewCourantFourier) self.tableViewCourantFourier.setItemDelegateForColumn(1, delegateMaxFourier) self.tableViewCourantFourier.setItemDelegateForColumn(2, delegateMaxCourant) # Connect signals to slots self.comboBoxTimeStepOption.activated[str].connect(self.slotTimeStepOption) self.comboBoxTimeStopType.activated[str].connect(self.slotTimeStop) self.lineEditReferenceTimeStep.textChanged[str].connect(self.slotReferenceTimeStep) self.lineEditNumberTimeStep.textChanged[str].connect(self.slotNumberTimeStep) self.lineEditTimeAnalysis.textChanged[str].connect(self.slotTimeAnalysis) self.lineEditDtMin.textChanged[str].connect(self.slotDtMin) self.lineEditDtMax.textChanged[str].connect(self.slotDtMax) self.lineEditDtIncreasingMax.textChanged[str].connect(self.slotDtIncreasingMax) self.lineEditDtDecreasingMax.textChanged[str].connect(self.slotDtDecreasingMax) self.tableModelCourantFourier.dataChanged.connect(self.dataChanged) # Initialize widget self.initializeVariables() self.case.undoStartGlobal()
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_TimeStepForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = TimeStepModel(self.case) # Combo model self.modelTimeOptions = ComboModel(self.comboBoxOptions, 4, 1) self.modelTimeOptions.addItem(self.tr("Constant"), '0') self.modelTimeOptions.addItem(self.tr("Time varying (adaptive)"), '1') self.modelTimeOptions.addItem( self.tr("Space & time varying (pseudo-steady)"), '2') self.modelTimeOptions.addItem(self.tr("Steady"), '-1') # Connections self.comboBoxOptions.activated[str].connect(self.slotTimePassing) self.lineEditDTREF.textChanged[str].connect(self.slotTimeStep) self.lineEditRELXST.textChanged[str].connect(self.slotRelaxCoef) self.lineEditNTMABS.textChanged[str].connect(self.slotIter) self.lineEditCOUMAX.textChanged[str].connect(self.slotTimeOptionCOUMAX) self.lineEditFOUMAX.textChanged[str].connect(self.slotTimeOptionFOUMAX) self.lineEditCDTMIN.textChanged[str].connect(self.slotTimeOptionCDTMIN) self.lineEditCDTMAX.textChanged[str].connect(self.slotTimeOptionCDTMAX) self.lineEditVARRDT.textChanged[str].connect(self.slotTimeOptionVARRDT) self.checkBoxIPTLRO.clicked.connect(self.slotThermalTimeStep) self.checkBoxINPDT0.clicked.connect(self.slotZeroTimeStep) # Validators validatorDTREF = DoubleValidator(self.lineEditDTREF, min=0.0) validatorDTREF.setExclusiveMin(True) validatorRELXST = DoubleValidator(self.lineEditRELXST, min=0.0, max=1.0) validatorRELXST.setExclusiveMin(True) validatorNTMABS = IntValidator(self.lineEditNTMABS, min=1) validatorCOUMAX = DoubleValidator(self.lineEditCOUMAX, min=0.0) validatorCOUMAX.setExclusiveMin(True) validatorFOUMAX = DoubleValidator(self.lineEditFOUMAX, min=0.0) validatorFOUMAX.setExclusiveMin(True) validatorCDTMIN = DoubleValidator(self.lineEditCDTMIN, min=0.0, max=1.0) validatorCDTMIN.setExclusiveMin(True) validatorCDTMAX = DoubleValidator(self.lineEditCDTMAX, min=1.0) validatorVARRDT = DoubleValidator(self.lineEditVARRDT, min=0.0, max=1.0) validatorVARRDT.setExclusiveMin(True) self.lineEditDTREF.setValidator(validatorDTREF) self.lineEditRELXST.setValidator(validatorRELXST) self.lineEditNTMABS.setValidator(validatorNTMABS) self.lineEditCOUMAX.setValidator(validatorCOUMAX) self.lineEditFOUMAX.setValidator(validatorFOUMAX) self.lineEditCDTMIN.setValidator(validatorCDTMIN) self.lineEditCDTMAX.setValidator(validatorCDTMAX) self.lineEditVARRDT.setValidator(validatorVARRDT) # Initialization idtvar = self.mdl.getTimePassing() idtvar_p = idtvar # Constraints on time step from Turbulence model from code_saturne.Pages.TurbulenceModel import TurbulenceModel model = TurbulenceModel(self.case).getTurbulenceModel() del TurbulenceModel if model in ('LES_Smagorinsky', 'LES_dynamique', 'LES_WALE'): idtvar = 0 self.modelTimeOptions.disableItem(str_model='1') self.modelTimeOptions.disableItem(str_model='2') self.modelTimeOptions.disableItem(str_model='-1') # Constraints on time step from Lagrangian model from code_saturne.Pages.LagrangianModel import LagrangianModel model = LagrangianModel(self.case).getLagrangianModel() if model in ['one_way', 'two_way']: if idtvar not in [0, 1]: idtvar = 0 self.modelTimeOptions.disableItem(str_model='2') self.modelTimeOptions.disableItem(str_model='-1') if model == 'two_way': idtvar = 0 self.modelTimeOptions.disableItem(str_model='1') # Constraints on time step from compressible model from code_saturne.Pages.CompressibleModel import CompressibleModel model = CompressibleModel(self.case).getCompressibleModel() if model != 'off': if idtvar not in [0, 1]: idtvar = 0 self.modelTimeOptions.disableItem(str_model='1') self.modelTimeOptions.disableItem(str_model='2') self.modelTimeOptions.disableItem(str_model='-1') # Constraints on time step from groundwater model from code_saturne.Pages.GroundwaterModel import GroundwaterModel model = GroundwaterModel(self.case).getGroundwaterModel() if model != 'off': if idtvar not in [0, 1]: idtvar = 0 self.modelTimeOptions.disableItem(str_model='1') self.modelTimeOptions.disableItem(str_model='2') self.modelTimeOptions.disableItem(str_model='-1') # Change time step option if required by model constraints if idtvar_p != idtvar: self.mdl.setTimePassing(idtvar) ntmabs = self.mdl.getIterationsNumber() self.lineEditNTMABS.setText(str(ntmabs)) if self.mdl.thermalCase(): if self.mdl.getThermalTimeStep() == 'on': self.checkBoxIPTLRO.setChecked(True) else: self.checkBoxIPTLRO.setChecked(False) else: self.lineIPTLRO.hide() self.labelIPTLRO.hide() self.checkBoxIPTLRO.hide() self.mdl.RemoveThermalTimeStepNode() if self.mdl.getZeroTimeStep() == 'on': self.checkBoxINPDT0.setChecked(True) else: self.checkBoxINPDT0.setChecked(False) self.__setTimePassingDisplay(idtvar) self.case.undoStartGlobal()
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_GlobalNumericalParameters.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = GlobalNumericalParametersModel(self.case) # Combo model self.modelVelocityAlgorithm = ComboModel(self.comboBoxVelocityAlgorithm, 3, 1) self.modelVelocityAlgorithm.addItem(self.tr("Standard"), "standard_difvit") self.modelVelocityAlgorithm.addItem(self.tr("Coupled"), "coupled_difvitc") self.modelVelocityAlgorithm.addItem(self.tr("Mean velocity - relative velocity"), "mean_velocity_relative_velocity") mfm = MainFieldsModel(self.case) if len(mfm.getFieldIdList()) < 2 : self.modelVelocityAlgorithm.disableItem(2) else : self.modelVelocityAlgorithm.enableItem(2) # Validator validatorMaxRestart = IntValidator(self.lineEditMaxRestart, min = 0) validatorSplitting = DoubleValidator(self.lineEditTimeSplitting, min = 0.) validatorPRelax = DoubleValidator(self.lineEditPressureRelaxation, min = 0.) validatorMinP = DoubleValidator(self.lineEditMinimumPressure) validatorMaxP = DoubleValidator(self.lineEditMaximumPressure) validatorMaxRestart.setExclusiveMin(False) validatorSplitting.setExclusiveMin(True) validatorPRelax.setExclusiveMin(True) self.lineEditMaxRestart.setValidator(validatorMaxRestart) self.lineEditTimeSplitting.setValidator(validatorSplitting) self.lineEditPressureRelaxation.setValidator(validatorPRelax) self.lineEditMinimumPressure.setValidator(validatorMinP) self.lineEditMaximumPressure.setValidator(validatorMaxP) # Connections self.checkBoxRestart.clicked.connect(self.slotRestart) self.checkBoxPotentialState.clicked.connect(self.slotPotentialState) self.checkBoxFacesReconstruction.clicked.connect(self.slotFacesReconstruction) self.checkBoxMultigrid.clicked.connect(self.slotMultigrid) self.lineEditMinimumPressure.textChanged[str].connect(self.slotMinimumPressure) self.lineEditMaximumPressure.textChanged[str].connect(self.slotMaximumPressure) self.pushButtonAdvanced.clicked.connect(self.slotAdvancedOptions) self.lineEditMaxRestart.textChanged[str].connect(self.slotMaxRestart) self.lineEditTimeSplitting.textChanged[str].connect(self.slotTimeSplitting) self.lineEditPressureRelaxation.textChanged[str].connect(self.slotPressureRelaxation) self.checkBoxUpwindAlphaEnergy.clicked.connect(self.slotUpwindAlphaEnergy) self.checkBoxStopRestart.clicked.connect(self.slotStopRestart) self.comboBoxVelocityAlgorithm.activated[str].connect(self.slotVelocityAlgorithm) self.checkBoxRegulBadCells.clicked.connect(self.slotRegulateBadCells) # Initialize widget status = self.mdl.getRestartTimeStep() if status == 'on': self.checkBoxRestart.setChecked(1) self.groupBoxRestartOption.show() value = self.mdl.getMaxNumberOfRestart() self.lineEditMaxRestart.setText(str(value)) value = self.mdl.getTimeSplit() self.lineEditTimeSplitting.setText(str(value)) value = self.mdl.getPressureRelaxation() self.lineEditPressureRelaxation.setText(str(value)) status = self.mdl.getUpwindScheme() if status == 'on': self.checkBoxUpwindAlphaEnergy.setChecked(True) else : self.checkBoxUpwindAlphaEnergy.setChecked(False) status = self.mdl.getStopNoConvergence() if status == 'on': self.checkBoxStopRestart.setChecked(True) else : self.checkBoxStopRestart.setChecked(False) else : self.checkBoxRestart.setChecked(0) self.groupBoxRestartOption.hide() is_compressible = False for fid in mfm.getFieldIdList(): if mfm.getCompressibleStatus(int(fid)) == 'on': is_compressible = True break if is_compressible: self.mdl.setPotentielState('off') self.checkBoxPotentialState.setChecked(0) self.checkBoxPotentialState.setEnabled(False) else: status = self.mdl.getPotentielState() if status == 'on': self.checkBoxPotentialState.setChecked(1) else : self.checkBoxPotentialState.setChecked(0) status = self.mdl.getFacesReconstruction() if status == 'on': self.checkBoxFacesReconstruction.setChecked(1) else : self.checkBoxFacesReconstruction.setChecked(0) status = self.mdl.getRegulateBadCElls() self.checkBoxRegulBadCells.setChecked(status == 'on') status = self.mdl.getMultigridStatus() if status == 'on': self.checkBoxMultigrid.setChecked(1) else : self.checkBoxMultigrid.setChecked(0) value = self.mdl.getMinPressure() self.lineEditMinimumPressure.setText(str(value)) value = self.mdl.getMaxPressure() self.lineEditMaximumPressure.setText(str(value)) model = self.mdl.getVelocityPredictorAlgo() self.modelVelocityAlgorithm.setItem(str_model = model) self.case.undoStartGlobal()
class TimeStepView(QWidget, Ui_TimeStepForm): """ """ def __init__(self, parent, case, tree): """ Constructor """ QWidget.__init__(self, parent) Ui_TimeStepForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = TimeStepModel(self.case) self.browser = tree # Combo model self.modelTimeOptions = ComboModel(self.comboBoxOptions, 4, 1) self.modelTimeOptions.addItem(self.tr("Constant"), '0') self.modelTimeOptions.addItem(self.tr("Time varying (adaptive)"), '1') self.modelTimeOptions.addItem( self.tr("Space & time varying (pseudo-steady)"), '2') self.modelTimeOptions.addItem( self.tr("Steady (constant relaxation coefficient)"), '-1') self.modelNTERUP = ComboModel(self.comboBoxNTERUP, 3, 1) self.modelNTERUP.addItem(self.tr("SIMPLE"), 'simple') self.modelNTERUP.addItem(self.tr("SIMPLEC"), 'simplec') self.modelNTERUP.addItem(self.tr("PISO"), 'piso') self.comboBoxNTERUP.setSizeAdjustPolicy(QComboBox.AdjustToContents) self.modelTimeStop = ComboModel(self.comboBoxStopCrit, 2, 1) self.modelTimeStop.addItem(self.tr("Number of time steps"), "iterations") self.modelTimeStop.addItem(self.tr("Physical time (s)"), "maximum_time") self.modelTimeStop.addItem(self.tr("Additional time steps"), "iterations_add") self.modelTimeStop.addItem(self.tr("Additional physical time (s)"), "maximum_time_add") # Connections self.comboBoxOptions.activated[str].connect(self.slotTimePassing) self.lineEditDTREF.textChanged[str].connect(self.slotTimeStep) self.lineEditRELXST.textChanged[str].connect(self.slotRelaxCoef) self.lineEditCOUMAX.textChanged[str].connect(self.slotTimeOptionCOUMAX) self.lineEditFOUMAX.textChanged[str].connect(self.slotTimeOptionFOUMAX) self.lineEditCDTMIN.textChanged[str].connect(self.slotTimeOptionCDTMIN) self.lineEditCDTMAX.textChanged[str].connect(self.slotTimeOptionCDTMAX) self.lineEditVARRDT.textChanged[str].connect(self.slotTimeOptionVARRDT) self.checkBoxIPTLRO.clicked.connect(self.slotThermalTimeStep) self.comboBoxNTERUP.activated[str].connect(self.slotNTERUP) self.spinBoxNTERUP.valueChanged[int].connect(self.slotNTERUP2) self.comboBoxStopCrit.activated[str].connect(self.slotStopCritModel) self.lineEditStop.textChanged[str].connect(self.slotStopCritValue) # Validators validatorDTREF = DoubleValidator(self.lineEditDTREF, min=0.0) validatorDTREF.setExclusiveMin(True) validatorRELXST = DoubleValidator(self.lineEditRELXST, min=0.0, max=1.0) validatorRELXST.setExclusiveMin(True) validatorCOUMAX = DoubleValidator(self.lineEditCOUMAX, min=0.0) validatorCOUMAX.setExclusiveMin(True) validatorFOUMAX = DoubleValidator(self.lineEditFOUMAX, min=0.0) validatorFOUMAX.setExclusiveMin(True) validatorCDTMIN = DoubleValidator(self.lineEditCDTMIN, min=0.0, max=1.0) validatorCDTMIN.setExclusiveMin(True) validatorCDTMAX = DoubleValidator(self.lineEditCDTMAX, min=1.0) validatorVARRDT = DoubleValidator(self.lineEditVARRDT, min=0.0) validatorVARRDT.setExclusiveMin(True) self.lineEditDTREF.setValidator(validatorDTREF) self.lineEditRELXST.setValidator(validatorRELXST) self.lineEditCOUMAX.setValidator(validatorCOUMAX) self.lineEditFOUMAX.setValidator(validatorFOUMAX) self.lineEditCDTMIN.setValidator(validatorCDTMIN) self.lineEditCDTMAX.setValidator(validatorCDTMAX) self.lineEditVARRDT.setValidator(validatorVARRDT) self.validatorNTABS = IntValidator(self.lineEditStop, min=0) self.validatorTABS = DoubleValidator(self.lineEditStop, min=0.0) # Initialization idtvar = self.mdl.getTimePassing() idtvar_p = idtvar # Constraints on time step from Turbulence model from code_saturne.model.TurbulenceModel import TurbulenceModel model = TurbulenceModel(self.case).getTurbulenceModel() del TurbulenceModel if model in ('LES_Smagorinsky', 'LES_dynamique', 'LES_WALE'): idtvar = 0 self.modelTimeOptions.disableItem(str_model='1') self.modelTimeOptions.disableItem(str_model='2') self.modelTimeOptions.disableItem(str_model='-1') # Constraints on time step from Lagrangian model from code_saturne.model.LagrangianModel import LagrangianModel model = LagrangianModel(self.case).getLagrangianModel() if model in ['one_way', 'two_way']: if idtvar not in [0, 1]: idtvar = 0 self.modelTimeOptions.disableItem(str_model='2') self.modelTimeOptions.disableItem(str_model='-1') if model == 'two_way': idtvar = 0 self.modelTimeOptions.disableItem(str_model='1') # Constraints on time step from compressible model from code_saturne.model.CompressibleModel import CompressibleModel model = CompressibleModel(self.case).getCompressibleModel() if model != 'off': if idtvar not in [0, 1]: idtvar = 0 self.modelTimeOptions.disableItem(str_model='2') self.modelTimeOptions.disableItem(str_model='-1') self.labelNTERUP.setText( "Velocity-Pressure algorithm\nsub-iterations on Navier-Stokes") self.comboBoxNTERUP.hide() self.spinBoxNTERUP.show() # Constraints on time step from groundwater model from code_saturne.model.GroundwaterModel import GroundwaterModel model = GroundwaterModel(self.case).getGroundwaterModel() if model != 'off': if idtvar not in [0, 1]: idtvar = 0 self.modelTimeOptions.disableItem(str_model='1') self.modelTimeOptions.disableItem(str_model='2') self.modelTimeOptions.disableItem(str_model='-1') # Change time step option if required by model constraints if idtvar_p != idtvar: self.mdl.setTimePassing(idtvar) if self.mdl.thermalCase(): if self.mdl.getThermalTimeStep() == 'on': self.checkBoxIPTLRO.setChecked(True) else: self.checkBoxIPTLRO.setChecked(False) else: self.labelIPTLRO.hide() self.checkBoxIPTLRO.hide() self.mdl.RemoveThermalTimeStepNode() self.__setTimePassingDisplay(idtvar) self.__setStopCritDisplay() self.case.undoStartGlobal()
class MobileMeshView(QWidget, Ui_MobileMeshForm): """ Class to open Page. """ viscosity_iso = """# Viscosity of the mesh allows to control the deformation # of the mesh. Viscosity must be greater than zero. # It could be isotropic (the same for all directions) or # orthotropic. # # In the following example, a hight value of viscosity # is imposed around a mobile cylinder. # The viscosity is specfied for all cells # on the initial mesh before any deformation. # xr2 = 1.5^2; xcen = 5.0; ycen = 0.; zcen = 6.0; xray2 = (x-xcen)^2 + (y-ycen)^2 + (z-zcen)^2; mesh_viscosity = 1; if (xray2 < xr2) mesh_viscosity = 1e10; """ viscosity_ortho = """# Viscosity of the mesh allows to control the deformation # of the mesh. Viscosity must be greater than zero. # It could be isotropic (the same for all directions) or # orthotropic. # # In the following example, a hight value of viscosity # is imposed around a mobile cylinder. # The viscosity is specfied for all cells # on the initial mesh before any deformation. # xr2 = 1.5^2; xcen = 5.0; ycen = 0.; zcen = 6.0; xray2 = (x-xcen)^2 + (y-ycen)^2 + (z-zcen)^2; mesh_viscosity[X] = 1; mesh_viscosity[Y] = 1; mesh_viscosity[Z] = 1; if (xray2 < xr2) { mesh_viscosity[X] = 1e10; mesh_viscosity[Y] = 1e10; mesh_viscosity[Z] = 1e10; } """ def __init__(self, parent, case, browser): """ Constructor """ QWidget.__init__(self, parent) Ui_MobileMeshForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = MobileMeshModel(self.case) self.browser = browser self.notebook = NotebookModel(self.case) # Combo model VISCOSITY self.modelVISCOSITY = ComboModel(self.comboBoxVISCOSITY,2,1) self.modelVISCOSITY.addItem(self.tr("isotropic"), 'isotrop') self.modelVISCOSITY.addItem(self.tr("orthotropic"), 'orthotrop') # Connections self.lineEditNALINF.textChanged[str].connect(self.slotNalinf) self.comboBoxVISCOSITY.activated[str].connect(self.slotViscosityType) self.pushButtonFormula.clicked.connect(self.slotFormula) # Validators validatorNALINF = IntValidator(self.lineEditNALINF, min=0) self.lineEditNALINF.setValidator(validatorNALINF) # Settings nalinf = self.mdl.getSubIterations() self.lineEditNALINF.setText(str(nalinf)) value = self.mdl.getViscosity() self.modelVISCOSITY.setItem(str_model=value) exp = self.mdl.getFormula() if exp: self.pushButtonFormula.setStyleSheet("background-color: green") self.pushButtonFormula.setToolTip(exp) else: self.pushButtonFormula.setStyleSheet("background-color: red") self.case.undoStartGlobal()
class MobileMeshView(QWidget, Ui_MobileMeshForm): """ Class to open Page. """ viscosity_iso = """# Viscosity of the mesh allows to control the deformation # of the mesh. Viscosity must be greater than zero. # It could be isotropic (the same for all directions) or # orthotropic. # # In the following example, a hight value of viscosity # is imposed around a mobile cylinder. # The viscosity is specfied for all cells # on the initial mesh before any deformation. # xr2 = 1.5^2; xcen = 5.0; ycen = 0.; zcen = 6.0; xray2 = (x-xcen)^2 + (y-ycen)^2 + (z-zcen)^2; mesh_viscosity_1 = 1; if (xray2 < xr2) mesh_viscosity_1 = 1e10; """ viscosity_ortho = """# Viscosity of the mesh allows to control the deformation # of the mesh. Viscosity must be greater than zero. # It could be isotropic (the same for all directions) or # orthotropic. # # In the following example, a hight value of viscosity # is imposed around a mobile cylinder. # The viscosity is specfied for all cells # on the initial mesh before any deformation. # xr2 = 1.5^2; xcen = 5.0; ycen = 0.; zcen = 6.0; xray2 = (x-xcen)^2 + (y-ycen)^2 + (z-zcen)^2; mesh_viscosity_1 = 1; mesh_viscosity_2 = 1; mesh_viscosity_3 = 1; if (xray2 < xr2) { mesh_viscosity_1 = 1e10; mesh_viscosity_2 = 1e10; mesh_viscosity_3 = 1e10; } """ def __init__(self, parent, case, browser): """ Constructor """ QWidget.__init__(self, parent) Ui_MobileMeshForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = MobileMeshModel(self.case) self.browser = browser # Combo model VISCOSITY self.modelVISCOSITY = ComboModel(self.comboBoxVISCOSITY, 2, 1) self.modelVISCOSITY.addItem(self.tr("isotropic"), 'isotrop') self.modelVISCOSITY.addItem(self.tr("orthotropic"), 'orthotrop') # Connections self.groupBoxALE.clicked.connect(self.slotMethod) self.lineEditNALINF.textChanged[str].connect(self.slotNalinf) self.comboBoxVISCOSITY.activated[str].connect(self.slotViscosityType) self.pushButtonFormula.clicked.connect(self.slotFormula) # Validators validatorNALINF = IntValidator(self.lineEditNALINF, min=0) self.lineEditNALINF.setValidator(validatorNALINF) if self.mdl.getMethod() == 'on': self.groupBoxALE.setChecked(True) checked = True else: self.groupBoxALE.setChecked(False) checked = False self.slotMethod(checked) # Enable / disable formula state self.pushButtonFormula.setStyleSheet("background-color: None") self.case.undoStartGlobal()
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_LagrangianStatisticsForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.model = LagrangianStatisticsModel(self.case) self.checkBoxISUIST.clicked.connect(self.slotISUIST) self.lineEditNBCLST.textChanged[str].connect(self.slotNBCLST) self.groupBoxISTALA.clicked.connect(self.slotISTALA) self.lineEditIDSTNT.editingFinished.connect(self.slotIDSTNT) self.lineEditNSTIST.editingFinished.connect(self.slotNSTIST) self.lineEditSEUIL.textChanged[str].connect(self.slotSEUIL) self.groupBoxIENSI3.clicked.connect(self.slotIENSI3) validatorNBCLST = IntValidator(self.lineEditNBCLST, min=0) # max=100 validatorIDSTNT = IntValidator(self.lineEditIDSTNT, min=0) validatorIDSTNT.setExclusiveMin(True) validatorNSTIST = IntValidator(self.lineEditNSTIST, min=0) validatorSEUIL = DoubleValidator(self.lineEditSEUIL, min=0.) self.lineEditNBCLST.setValidator(validatorNBCLST) self.lineEditIDSTNT.setValidator(validatorIDSTNT) self.lineEditNSTIST.setValidator(validatorNSTIST) self.lineEditSEUIL.setValidator(validatorSEUIL) # initialize Widgets # FIXME # test if restart lagrangian is on ## mdl.lagr = LagrangianModel() ## is_restart = mdl_lagr.getRestart() ## if is_restart == "off": ## self.lineEditISUIST.setEnabled(False) ## self.checkBoxISUIST.setEnabled(False) status = self.model.getRestartStatisticsStatus() if status == "on": self.checkBoxISUIST.setChecked(True) else: self.checkBoxISUIST.setChecked(False) nclust = self.model.getGroupOfParticlesValue() self.lineEditNBCLST.setText(str(nclust)) it = self.model.getIterationStart() self.lineEditIDSTNT.setText(str(it)) it = self.model.getIterSteadyStart() self.lineEditNSTIST.setText(str(it)) seuil = self.model.getThresholdValue() self.lineEditSEUIL.setText(str(seuil)) # volume status = self.model.getVolumeStatisticsStatus() if status == "on": self.groupBoxISTALA.setChecked(True) else: self.groupBoxISTALA.setChecked(False) self.slotISTALA() # boundary status = self.model.getBoundaryStatisticsStatus() if status == "on": self.groupBoxIENSI3.setChecked(True) else: self.groupBoxIENSI3.setChecked(False) self.slotIENSI3() self.case.undoStartGlobal()
def createEditor(self, parent, option, index): editor = QLineEdit(parent) validator = IntValidator(editor, min=0) validator.setExclusiveMin(True) editor.setValidator(validator) return editor
class ThermalRadiationView(QWidget, Ui_ThermalRadiationForm): """ Class to open Thermal Scalar Transport Page. """ def __init__(self, parent, case, tree): """ Constructor """ QWidget.__init__(self, parent) Ui_ThermalRadiationForm.__init__(self) self.setupUi(self) self.browser = tree self.case = case self.case.undoStopGlobal() self.mdl = ThermalRadiationModel(self.case) # Combo models self.modelRadModel = ComboModel(self.comboBoxRadModel, 3, 1) self.modelDirection = ComboModel(self.comboBoxQuadrature, 8, 1) self.modelAbsorption = ComboModel(self.comboBoxAbsorption, 3, 1) self.modelRadModel.addItem("No radiative transfers", 'off') self.modelRadModel.addItem("Discrete ordinates method", 'dom') self.modelRadModel.addItem("P-1 Model", 'p-1') self.modelDirection.addItem("24 directions (S4)", "1") self.modelDirection.addItem("48 directions (S6)", "2") self.modelDirection.addItem("80 directions (S8)", "3") self.modelDirection.addItem("32 directions (T2)", "4") self.modelDirection.addItem("128 directions (T4)", "5") self.modelDirection.addItem("8n^2 directions (Tn)", "6") self.modelDirection.addItem("120 directions (LC11)", "7") self.modelDirection.addItem("48 directions (DCT020-2468)", "8") # Connections self.comboBoxRadModel.activated[str].connect( self.slotRadiativeTransfer) self.radioButtonOn.clicked.connect(self.slotStartRestart) self.radioButtonOff.clicked.connect(self.slotStartRestart) self.comboBoxQuadrature.activated[str].connect(self.slotDirection) self.lineEditNdirec.textChanged[str].connect(self.slotNdirec) self.comboBoxAbsorption.activated[str].connect( self.slotTypeCoefficient) self.lineEditCoeff.textChanged[str].connect( self.slotAbsorptionCoefficient) self.toolButtonAdvanced.clicked.connect(self.slotAdvancedOptions) # Validator validatorCoeff = DoubleValidator(self.lineEditCoeff, min=0.0) self.lineEditCoeff.setValidator(validatorCoeff) validatorNdir = IntValidator(self.lineEditNdirec, min=2) self.lineEditNdirec.setValidator(validatorNdir) self.modelAbsorption.addItem('constant', 'constant') self.modelAbsorption.addItem('user subroutine (usray3)', 'variable') self.modelAbsorption.addItem('user law', 'formula') self.modelAbsorption.addItem('H2O and CO2 mixing (Modak)', 'modak') from code_saturne.Pages.CoalCombustionModel import CoalCombustionModel if CoalCombustionModel( self.case).getCoalCombustionModel("only") != "off": self.modelAbsorption.disableItem(str_model='variable') self.modelAbsorption.enableItem(str_model='modak')
def createEditor(self, parent, option, index): editor = QLineEdit(parent) validator = IntValidator(editor, min=0) # nb max sets editor.setValidator(validator) return editor
def __init__(self, parent, case, stbar): """ Constructor """ QWidget.__init__(self, parent) Ui_TimeAveragesForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = TimeAveragesModel(self.case) self.entriesNumber = 0 self.label_select = None # Create the Page layout. # Models self.modelAverage = StandardItemModelAverage(self) self.treeViewAverage.setModel(self.modelAverage) self.treeViewAverage.resizeColumnToContents(0) self.treeViewAverage.resizeColumnToContents(1) self.treeViewAverage.resizeColumnToContents(2) self.treeViewAverage.resizeColumnToContents(3) self.treeViewAverage.resizeColumnToContents(4) self.modelDrag = QStringListModel() self.modelDrop = QStringListModel() self.listViewDrag.setModel(self.modelDrag) self.listViewDrop.setModel(self.modelDrop) self.listViewDrag.setAlternatingRowColors(True) self.listViewDrag.setEditTriggers(QAbstractItemView.NoEditTriggers) self.listViewDrop.setAlternatingRowColors(True) self.listViewDrop.setEditTriggers(QAbstractItemView.NoEditTriggers) self.modelIMOOLD = ComboModel(self.comboBoxIMOOLD, 3, 1) self.modelIMOOLD.addItem(self.tr('automatic'), 'automatic') self.modelIMOOLD.addItem(self.tr('reset'), 'reset') self.modelIMOOLD.addItem(self.tr('specified'), 'specified') self.modelStartType = ComboModel(self.comboBoxStartType, 2, 1) self.modelStartType.addItem(self.tr('time'), 'time') self.modelStartType.addItem(self.tr('iteration'), 'iteration') # Connections self.connect(self.pushButtonAdd, SIGNAL("clicked()"), self.slotAddAverage) self.connect(self.pushButtonDelete, SIGNAL("clicked()"), self.slotdeleteTimeAverage) self.connect(self.pushButtonAddVar, SIGNAL("clicked()"), self.slotAddVarAverage) self.connect(self.pushButtonSuppressVar, SIGNAL("clicked()"), self.slotDeleteVarAverage) self.connect(self.treeViewAverage, SIGNAL("pressed(const QModelIndex &)"), self.slotSelectAverage) self.connect(self.lineEditStart, SIGNAL("textChanged(const QString &)"), self.slotStart) self.connect(self.lineEditStartTime, SIGNAL("textChanged(const QString &)"), self.slotStartTime) self.connect(self.comboBoxIMOOLD, SIGNAL("activated(const QString&)"), self.slotRestartChoice) self.connect(self.comboBoxStartType, SIGNAL("activated(const QString&)"), self.slotTimeChoice) self.connect(self.lineEditRestart, SIGNAL("textChanged(const QString &)"), self.slotRestart) self.connect(self.lineEditAverage, SIGNAL("textChanged(const QString &)"), self.slotBaseName) # Validators validatorStart = IntValidator(self.lineEditStart, min=-1) self.lineEditStart.setValidator(validatorStart) validatorStartTime = DoubleValidator(self.lineEditStartTime, min=-1.) self.lineEditStartTime.setValidator(validatorStartTime) validatorRestart = IntValidator(self.lineEditRestart, min=-2, max=50) validatorRestart.setExclusiveValues([0]) self.lineEditRestart.setValidator(validatorRestart) rx = "[\-_A-Za-z0-9]{1," + str(LABEL_LENGTH_MAX) + "}" validatorLabel = RegExpValidator(self.lineEditAverage, QRegExp(rx)) self.lineEditAverage.setValidator(validatorLabel) # Initialize # Update list of variables, properties, scalars ... lst_label = [str(label) for label in list(self.mdl.dicoLabel2Name.keys())] self.modelDrag.setStringList(sorted(lst_label, key=str.lower)) # Is it a following calculation ? if not StartRestartModel(self.case).getRestartPath(): self.labelRestart.setDisabled(True) self.comboBoxIMOOLD.setDisabled(True) self.lineEditRestart.setDisabled(True) self.treeViewAverage.hideColumn(4) else: self.slotRestartChoice("automatic") # Update list of averages for view from xml file for nb in range(self.mdl.getNumberOfTimeAverage()): self.entriesNumber = self.entriesNumber + 1 label, start, timestart, restart, lst = self.mdl.getTimeAverageData(nb+1) self.insertAverage(label, start, timestart, restart, lst) self.groupBoxTimeAverage.hide() self.case.undoStartGlobal()