def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_Solid.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = SolidModel(self.case) # Combo box models self.modelField = ComboModel(self.comboBoxField, 1, 1) for fieldId in self.mdl.getSolidFieldIdList() : label = self.mdl.getLabel(fieldId) name = str(fieldId) self.modelField.addItem(self.tr(label), name) self.currentid = -1 if len(self.mdl.getSolidFieldIdList()) > 0 : self.currentid = self.mdl.getSolidFieldIdList()[0] self.modelField.setItem(str_model = self.currentid) self.modelFriction = ComboModel(self.comboBoxFriction, 3, 1) self.modelFriction.addItem(self.tr("none"), "none") self.modelFriction.addItem(self.tr("pressure"), "pressure") self.modelFriction.addItem(self.tr("fluxes"), "fluxes") self.modelGranular = ComboModel(self.comboBoxGranular, 3, 1) self.modelGranular.addItem(self.tr("none"), "none") self.modelGranular.addItem(self.tr("pressure"), "pressure") self.modelGranular.addItem(self.tr("fluxes"), "fluxes") self.modelKinetic = ComboModel(self.comboBoxKinetic, 3, 1) self.modelKinetic.addItem(self.tr("none"), "none") self.modelKinetic.addItem(self.tr("uncorrelate collision"), "uncorrelate_collision") self.modelKinetic.addItem(self.tr("correlate collision"), "correlate_collision") # Validators validatorComp = DoubleValidator(self.lineEditCompaction, min = 0.0) validatorComp.setExclusiveMin(True) self.lineEditCompaction.setValidator(validatorComp) # Connect signals to slots self.comboBoxField.activated[str].connect(self.slotField) self.comboBoxFriction.activated[str].connect(self.slotFriction) self.comboBoxGranular.activated[str].connect(self.slotGranular) self.comboBoxKinetic.activated[str].connect(self.slotKinetic) self.lineEditCompaction.textChanged[str].connect(self.slotCompaction) self.checkBoxCoupling.clicked[bool].connect(self.slotCoupling) # Initialize widget self.initializeVariables(self.currentid) self.case.undoStartGlobal()
def setup(self, case): """ Setup the widget """ self.case = case self.__boundary = None self.case.undoStopGlobal() self.notebook = NotebookModel(self.case) self.comboBoxTurbulence.activated[str].connect(self.__slotChoiceTurbulence) self.__modelTurbulence = ComboModel(self.comboBoxTurbulence, 2, 1) self.__modelTurbulence.addItem(self.tr("Calculation by hydraulic diameter"), 'hydraulic_diameter') self.__modelTurbulence.addItem(self.tr("Calculation by turbulent intensity"), 'turbulent_intensity') self.__modelTurbulence.addItem(self.tr("Calculation by formula"), 'formula') self.lineEditDiameter.textChanged[str].connect(self.__slotDiam) self.lineEditIntensity.textChanged[str].connect(self.__slotIntensity) self.lineEditDiameterIntens.textChanged[str].connect(self.__slotDiam) self.pushButtonTurb.clicked.connect(self.__slotTurbulenceFormula) validatorDiam = DoubleValidator(self.lineEditDiameter, min=0.) validatorDiam.setExclusiveMin(True) validatorIntensity = DoubleValidator(self.lineEditIntensity, min=0.) self.lineEditDiameter.setValidator(validatorDiam) self.lineEditDiameterIntens.setValidator(validatorDiam) self.lineEditIntensity.setValidator(validatorIntensity) self.case.undoStartGlobal()
def __init__(self, parent): """ Constructor """ QWidget.__init__(self, parent) Ui_BoundaryConditionsTurbulenceInletForm.__init__(self) self.setupUi(self) # Connections self.comboBoxTurbulence.activated[str].connect( self.__slotChoiceTurbulence) self.__modelTurbulence = ComboModel(self.comboBoxTurbulence, 3, 1) self.__modelTurbulence.addItem( self.tr("Calculation by hydraulic diameter"), 'hydraulic_diameter') self.__modelTurbulence.addItem( self.tr("Calculation by turbulent intensity"), 'turbulent_intensity') self.__modelTurbulence.addItem(self.tr("Calculation by formula"), 'formula') self.lineEditDiameter.textChanged[str].connect(self.__slotDiam) self.lineEditIntensity.textChanged[str].connect(self.__slotIntensity) self.lineEditDiameterIntens.textChanged[str].connect(self.__slotDiam) self.pushButtonTurb.clicked.connect(self.__slotTurbulenceFormula) validatorDiam = DoubleValidator(self.lineEditDiameter, min=0.) validatorDiam.setExclusiveMin(True) validatorIntensity = DoubleValidator(self.lineEditIntensity, min=0.) self.lineEditDiameter.setValidator(validatorDiam) self.lineEditDiameterIntens.setValidator(validatorDiam) self.lineEditIntensity.setValidator(validatorIntensity)
def setup(self, case): """ Setup the widget """ self.__case = case self.__boundary = None self.__case.undoStopGlobal() self.connect(self.comboBoxTurbulence, SIGNAL("activated(const QString&)"), self.__slotChoiceTurbulence) self.__modelTurbulence = ComboModel(self.comboBoxTurbulence, 2, 1) self.__modelTurbulence.addItem(self.tr("Calculation by hydraulic diameter"), 'hydraulic_diameter') self.__modelTurbulence.addItem(self.tr("Calculation by turbulent intensity"), 'turbulent_intensity') self.__modelTurbulence.addItem(self.tr("Calculation by formula"), 'formula') self.connect(self.lineEditDiameter, SIGNAL("textChanged(const QString &)"), self.__slotDiam) self.connect(self.lineEditIntensity, SIGNAL("textChanged(const QString &)"), self.__slotIntensity) self.connect(self.lineEditDiameterIntens, SIGNAL("textChanged(const QString &)"), self.__slotDiam) self.connect(self.pushButtonTurb, SIGNAL("clicked()"), self.__slotTurbulenceFormula) validatorDiam = DoubleValidator(self.lineEditDiameter, min=0.) validatorDiam.setExclusiveMin(True) validatorIntensity = DoubleValidator(self.lineEditIntensity, min=0.) self.lineEditDiameter.setValidator(validatorDiam) self.lineEditDiameterIntens.setValidator(validatorDiam) self.lineEditIntensity.setValidator(validatorIntensity) self.__case.undoStartGlobal()
def setup(self, case): self.case = case self.case.undoStopGlobal() self.mdl = DropletCondensationEvaporationModel(self.case) self.modelYPlus = ComboModel(self.comboBoxYPlus, 3, 1) self.modelYPlus.addItem(self.tr("Boundary cell center"), "center") self.modelYPlus.addItem(self.tr("Y+ = "), "Yplus_value") self.modelYPlus.addItem(self.tr("Droplets diameter"), "diameter") # Validators validatorYplus = DoubleValidator(self.lineEditYPlus, min=0.0) validatorYplus.setExclusiveMin(True) self.lineEditYPlus.setValidator(validatorYplus) # Connect signals to slots self.comboBoxYPlus.activated[str].connect(self.slotYPlus) self.lineEditYPlus.textChanged[str].connect(self.slotYPlusValue) isYPlus = self.mdl.getYPlusModel() self.modelYPlus.setItem(str_model=isYPlus) if isYPlus == "Yplus_value": self.lineEditYPlus.show() self.lineEditYPlus.setText(str(self.mdl.getYPlusValue())) else: self.lineEditYPlus.hide() self.case.undoStartGlobal()
def createEditor(self, parent, option, index): editor = QLineEdit(parent) if index.column() == 1 or index.column() == 2: v = DoubleValidator(editor, min=0.) v.setExclusiveMin(True) else: v = DoubleValidator(editor) editor.setValidator(v) return editor
def createEditor(self, parent, option, index): editor = QLineEdit(parent) if index.column() == 1 or index.column() == 2: v = DoubleValidator(editor, min=0.) v.setExclusiveMin(True) else: v = DoubleValidator(editor) editor.setValidator(v) return editor
def createEditor(self, parent, option, index): editor = QLineEdit(parent) if self.turb.getTurbulenceModel() in ('LES_Smagorinsky', 'LES_dynamique', 'LES_WALE'): validator = DoubleValidator(editor, min=0.95, max=1.) else: validator = DoubleValidator(editor, min=0., max=1.) validator.setExclusiveMin(True) editor.setValidator(validator) return editor
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): editor = QLineEdit(parent) if self.turb.getTurbulenceModel() in ('LES_Smagorinsky', 'LES_dynamique', 'LES_WALE'): validator = DoubleValidator(editor, min=0.95, max=1.) else: validator = DoubleValidator(editor, min=0., max=1.) validator.setExclusiveMin(True) editor.setValidator(validator) return editor
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 __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 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()
def __init__(self, parent): """ Constructor """ QWidget.__init__(self, parent) Ui_BoundaryConditionsInterfacialArea.__init__(self) self.setupUi(self) # Connections self.lineEditDiameter.textChanged[str].connect(self.__slotDiameter) validatorDiam = DoubleValidator(self.lineEditDiameter, min = 0.) validatorDiam.setExclusiveMin(False) self.lineEditDiameter.setValidator(validatorDiam)
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()
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.connect(self.lineEditRELXST, SIGNAL("textChanged(const QString &)"), self.slotRelaxCoef) self.connect(self.lineEditNTMABS, SIGNAL("textChanged(const QString &)"), self.slotNbIter) self.connect(self.checkBoxINPDT0, SIGNAL("clicked()"), 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()
def __init__(self, parent): """ Constructor """ QWidget.__init__(self, parent) Ui_BoundaryConditionsScalar.__init__(self) self.setupUi(self) # Connections self.comboBoxScalar.activated[str].connect(self.__slotChoiceScalar) self.__Scalarmodel = ComboModel(self.comboBoxScalar, 1, 1) self.lineEditScalar.textChanged[str].connect(self.__slotScalar) validatorScalar = DoubleValidator(self.lineEditScalar, min=0.) validatorScalar.setExclusiveMin(False) self.lineEditScalar.setValidator(validatorScalar)
def __init__(self, parent): """ Constructor """ QWidget.__init__(self, parent) Ui_BoundaryConditionsFraction.__init__(self) self.setupUi(self) self.__modelFraction = ComboModel(self.comboBoxFraction, 2, 1) self.__modelFraction.addItem(self.tr("Imposed value"), 'dirichlet') self.__modelFraction.addItem(self.tr("Automatic value"), 'automatic') # Connections self.lineEditFraction.textChanged[str].connect(self.__slotFraction) self.comboBoxFraction.activated[str].connect(self.__slotChoiceFraction) validatorFraction = DoubleValidator(self.lineEditFraction, min = 0., max = 1.) validatorFraction.setExclusiveMin(False) validatorFraction.setExclusiveMax(False) self.lineEditFraction.setValidator(validatorFraction)
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): """ Constructor """ QWidget.__init__(self, parent) Ui_BoundaryConditionsNonCondensable.__init__(self) self.setupUi(self) # Connections self.comboBoxNonCondensable.activated[str].connect( self.__slotChoiceNonCondensable) self.__NonCondensablemodel = ComboModel(self.comboBoxNonCondensable, 1, 1) self.lineEditNonCondensable.textChanged[str].connect( self.__slotNonCondensable) validatorNonCond = DoubleValidator(self.lineEditNonCondensable, min=0.) validatorNonCond.setExclusiveMin(False) self.lineEditNonCondensable.setValidator(validatorNonCond)
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_Turbulence.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = TurbulenceModel(self.case) # Dico self.dicoM2V = { "none": 'none', "mixing_length": 'mixing length', "k-epsilon": 'k-epsilon', "rij-epsilon_ssg": 'Rij-epsilon SSG', "rij-epsilon_ebrsm": 'Rij-epsilon EBRSM', "k-epsilon_linear_production": 'k-epsilon linear production', "les_smagorinsky": 'LES (Smagorinsky)', "les_wale": 'LES (WALE)', "tchen": 'Tchen', "q2-q12": 'Q2-Q12', "r2-q12": 'R2-Q12', "r2-r12-tchen": 'R2-R12 Tchen', "separate_phase": 'separate phase', "separate_phase_cond": 'separate phase cond', "small_inclusions": 'small inclusions', "large_inclusions": 'large inclusions', "sgdh": 'SGDH', "ggdh": 'GGDH' } self.dicoV2M = { "none": 'none', "mixing length": 'mixing_length', "k-epsilon": 'k-epsilon', "Rij-epsilon SSG": 'rij-epsilon_ssg', "Rij-epsilon EBRSM": 'rij-epsilon_ebrsm', "k-epsilon linear production": 'k-epsilon_linear_production', "LES (Smagorinsky)": 'les_smagorinsky', "LES (WALE)": 'les_wale', "Tchen": 'tchen', "Q2-Q12": 'q2-q12', "R2-Q12": 'r2-q12', "R2-R12 Tchen": 'r2-r12-tchen', "separate phase": 'separate_phase', "separate phase cond": 'separate_phase_cond', "small inclusions": 'small_inclusions', "large inclusions": 'large_inclusions', "SGDH": 'sgdh', "GGDH": 'ggdh' } # Validators validatorMix = DoubleValidator(self.lineEditMixingLength, min=0.0) validatorMix.setExclusiveMin(False) self.lineEditMixingLength.setValidator(validatorMix) self.tableModelTurbulence = StandardItemModelTurbulence( self.mdl, self.case, self.dicoM2V, self.dicoV2M) self.tableViewTurbulence.setModel(self.tableModelTurbulence) self.tableViewTurbulence.resizeColumnsToContents() self.tableViewTurbulence.resizeRowsToContents() if QT_API == "PYQT4": self.tableViewTurbulence.verticalHeader().setResizeMode( QHeaderView.ResizeToContents) self.tableViewTurbulence.horizontalHeader().setResizeMode( QHeaderView.ResizeToContents) self.tableViewTurbulence.horizontalHeader().setResizeMode( 0, QHeaderView.Stretch) elif QT_API == "PYQT5": self.tableViewTurbulence.verticalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.tableViewTurbulence.horizontalHeader().setSectionResizeMode( QHeaderView.ResizeToContents) self.tableViewTurbulence.horizontalHeader().setSectionResizeMode( 0, QHeaderView.Stretch) self.tableViewTurbulence.setSelectionBehavior( QAbstractItemView.SelectRows) self.tableViewTurbulence.setSelectionMode( QAbstractItemView.SingleSelection) delegateTurbulence = TurbulenceDelegate(self.tableViewTurbulence, self.mdl, self.dicoM2V, self.dicoV2M) delegateTurbFlux = TurbFluxDelegate(self.tableViewTurbulence, self.mdl, self.dicoM2V, self.dicoV2M) delegateCoupling = CouplingDelegate(self.tableViewTurbulence, self.mdl, self.dicoM2V, self.dicoV2M) self.tableViewTurbulence.setItemDelegateForColumn( 2, delegateTurbulence) self.tableViewTurbulence.setItemDelegateForColumn(3, delegateTurbFlux) self.tableViewTurbulence.setItemDelegateForColumn(4, delegateCoupling) # Combo models self.modelContinuousCoupling = ComboModel( self.comboBoxContinuousCoupling, 3, 1) self.modelContinuousCoupling.addItem(self.tr('none'), 'none') self.modelContinuousCoupling.addItem(self.tr("separate phases"), "separate_phase") self.modelContinuousCoupling.addItem(self.tr("separate phases + cond"), "separate_phase_cond") # hide groupBoxMixingLength self.groupBoxMixingLength.hide() # Connect signals to slots self.tableModelTurbulence.dataChanged.connect(self.dataChanged) self.lineEditMixingLength.textChanged[str].connect( self.slotMixingLength) self.tableViewTurbulence.clicked.connect(self.slotChangeSelection) self.comboBoxContinuousCoupling.activated[str].connect( self.slotContinuousCoupling) # hide/show groupBoxContinuousCoupling if len(self.mdl.getContinuousFieldList()) >= 2: self.groupBoxContinuousCoupling.show() model = self.mdl.getContinuousCouplingModel() self.modelContinuousCoupling.setItem(str_model=model) else: self.groupBoxContinuousCoupling.hide() for fieldId in self.mdl.getFieldIdList(): self.tableModelTurbulence.newItem(fieldId) self.case.undoStartGlobal()
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_NucleateBoiling.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = NucleateBoilingModel(self.case) self.modelHeatTransferModel = ComboModel( self.comboBoxHeatTransferModel, 2, 1) self.modelHeatTransferModel.addItem( self.tr("Extended Kurul-Podowski model"), "extended_kurul-podowski") self.modelHeatTransferModel.addItem( self.tr("Standard Kurul-Podowski model"), "standard_kurul-podowski") self.modelWallFunctionModel = ComboModel( self.comboBoxWallFunctionModel, 3, 1) self.modelWallFunctionModel.addItem( self.tr("standard (single phase wall function)"), "standard") self.modelWallFunctionModel.addItem(self.tr("Koncar Tiselj-NED 2008"), "koncar") self.modelWallFunctionModel.addItem(self.tr("Mimouni et al-NED 2008"), "mimouni") self.modelYPlus = ComboModel(self.comboBoxYPlus, 3, 1) self.modelYPlus.addItem(self.tr("Boundary cell center"), "center") self.modelYPlus.addItem(self.tr("Y+ = "), "Yplus_value") self.modelYPlus.addItem(self.tr("Nucleate bubble diameter"), "diameter") # Validators validatorYplus = DoubleValidator(self.lineEditYPlus, min=0.0) validatorRad = DoubleValidator(self.lineEditMaxRadius, min=0.0) validatorDiam = DoubleValidator(self.lineEditMaxDiam, min=0.0) validatorSat = DoubleValidator(self.lineEditMaxOverSaturation, min=0.0) validatorLam = DoubleValidator(self.lineEditThermalConductivity, min=0.0) validatorRho = DoubleValidator(self.lineEditDensity, min=0.0) validatorCp = DoubleValidator(self.lineEditSpecificHeat, min=0.0) validatorTh = DoubleValidator(self.lineEditThickness, min=0.0) validatorYplus.setExclusiveMin(True) validatorRad.setExclusiveMin(True) validatorDiam.setExclusiveMin(True) validatorSat.setExclusiveMin(True) validatorLam.setExclusiveMin(True) validatorRho.setExclusiveMin(True) validatorCp.setExclusiveMin(True) validatorTh.setExclusiveMin(True) self.lineEditYPlus.setValidator(validatorYplus) self.lineEditMaxRadius.setValidator(validatorRad) self.lineEditMaxDiam.setValidator(validatorDiam) self.lineEditMaxOverSaturation.setValidator(validatorSat) self.lineEditThermalConductivity.setValidator(validatorLam) self.lineEditDensity.setValidator(validatorRho) self.lineEditSpecificHeat.setValidator(validatorCp) self.lineEditThickness.setValidator(validatorTh) # Connect signals to slots self.comboBoxHeatTransferModel.activated[str].connect( self.slotHeatTransferModel) self.comboBoxWallFunctionModel.activated[str].connect( self.slotWallFunctionModel) self.comboBoxYPlus.activated[str].connect(self.slotYPlus) self.checkBoxThickness.clicked.connect(self.slotThickness) self.lineEditYPlus.textChanged[str].connect(self.slotYPlusValue) self.lineEditMaxRadius.textChanged[str].connect(self.slotMaxRadius) self.lineEditMaxDiam.textChanged[str].connect(self.slotMaxDiam) self.lineEditMaxOverSaturation.textChanged[str].connect( self.slotMaxOverSaturation) self.lineEditThermalConductivity.textChanged[str].connect( self.slotThermalConductivity) self.lineEditDensity.textChanged[str].connect(self.slotDensity) self.lineEditSpecificHeat.textChanged[str].connect( self.slotSpecificHeat) self.lineEditThickness.textChanged[str].connect( self.slotThicknessValue) # load values isYPlus = self.mdl.getYPlusModel() self.modelYPlus.setItem(str_model=isYPlus) if isYPlus == "Yplus_value": self.lineEditYPlus.show() self.lineEditYPlus.setText(str(self.mdl.getYPlusValue())) else: self.lineEditYPlus.hide() self.lineEditMaxRadius.setText(str(self.mdl.getMaxRadius())) self.lineEditMaxDiam.setText(str(self.mdl.getMaxDiameter())) self.lineEditMaxOverSaturation.setText( str(self.mdl.getMaxOverSaturation())) self.lineEditThermalConductivity.setText( str(self.mdl.getThermalConductivity())) self.lineEditDensity.setText(str(self.mdl.getDensity())) self.lineEditSpecificHeat.setText(str(self.mdl.getSpecificHeat())) model = self.mdl.getHeatTransferModel() self.modelHeatTransferModel.setItem(str_model=model) if model == "standard_kurul-podowski": self.labelMaxRadius.setEnabled(0) self.lineEditMaxRadius.setEnabled(0) self.labelMaxRadiusUnit.setEnabled(0) self.labelMaxDiam.setEnabled(0) self.lineEditMaxDiam.setEnabled(0) self.labelMaxDiamUnit.setEnabled(0) else: self.labelMaxRadius.setEnabled(1) self.lineEditMaxRadius.setEnabled(1) self.labelMaxRadiusUnit.setEnabled(1) self.labelMaxDiam.setEnabled(1) self.lineEditMaxDiam.setEnabled(1) self.labelMaxDiamUnit.setEnabled(1) isThickness = self.mdl.getThicknessStatus() == "on" self.checkBoxThickness.setChecked(isThickness) if isThickness: self.lineEditThickness.show() self.labelThickness1.show() self.labelThickness2.show() self.lineEditThickness.setText(str(self.mdl.getThicknessValue())) else: self.lineEditThickness.hide() self.labelThickness1.hide() self.labelThickness2.hide() model = self.mdl.getWallFunctionModel() self.modelWallFunctionModel.setItem(str_model=model) self.case.undoStartGlobal()
def createEditor(self, parent, option, index): editor = QLineEdit(parent) validator = DoubleValidator(editor, min=0.) validator.setExclusiveMin(True) editor.setValidator(validator) return editor
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_FluidCharacteristicsForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = FluidCharacteristicsModel(self.case) if EOS == 1: self.ava = eosAva.EosAvailable() import cs_config cfg = cs_config.config() self.freesteam = 0 if cfg.libs['freesteam'].have != "no": self.freesteam = 1 if CompressibleModel(self.case).getCompressibleModel() != 'off': self.lst = [('density', 'Rho'), ('molecular_viscosity', 'Mu'), ('specific_heat', 'Cp'), ('thermal_conductivity', 'Al'), ('volume_viscosity', 'Viscv0'), ('dynamic_diffusion', 'Diftl0')] elif CoalCombustionModel(self.case).getCoalCombustionModel() != 'off' or \ GasCombustionModel(self.case).getGasCombustionModel() != 'off': self.lst = [('density', 'Rho'), ('molecular_viscosity', 'Mu'), ('specific_heat', 'Cp'), ('dynamic_diffusion', 'Diftl0')] else: self.lst = [('density', 'Rho'), ('molecular_viscosity', 'Mu'), ('specific_heat', 'Cp'), ('thermal_conductivity', 'Al')] self.list_scalars = [] self.m_th = ThermalScalarModel(self.case) s = self.m_th.getThermalScalarName() mdl = self.m_th.getThermalScalarModel() if mdl == "temperature_celsius": self.list_scalars.append((s, self.tr("Thermal scalar: temperature (C)"))) elif mdl == "temperature_kelvin": self.list_scalars.append((s, self.tr("Thermal scalar: temperature (K)"))) elif mdl != "off": self.list_scalars.append((s, self.tr("Thermal scalar"))) self.m_sca = DefineUserScalarsModel(self.case) for s in self.m_sca.getUserScalarNameList(): self.list_scalars.append((s, self.tr("Additional scalar"))) # Particular Widget initialization taking into account of "Calculation Features" mdl_atmo, mdl_joule, mdl_thermal, mdl_gas, mdl_coal, mdl_comp = self.mdl.getThermoPhysicalModel() # Combo models self.modelRho = ComboModel(self.comboBoxRho, 3, 1) self.modelMu = ComboModel(self.comboBoxMu, 3, 1) self.modelCp = ComboModel(self.comboBoxCp, 3, 1) self.modelAl = ComboModel(self.comboBoxAl, 3, 1) self.modelDiff = ComboModel(self.comboBoxDiff, 2, 1) self.modelNameDiff = ComboModel(self.comboBoxNameDiff,1,1) self.modelViscv0 = ComboModel(self.comboBoxViscv0, 3, 1) self.modelDiftl0 = ComboModel(self.comboBoxDiftl0, 3, 1) self.modelMaterial = ComboModel(self.comboBoxMaterial, 1, 1) self.modelMethod = ComboModel(self.comboBoxMethod, 1, 1) self.modelPhas = ComboModel(self.comboBoxPhas, 2, 1) self.modelRho.addItem(self.tr('constant'), 'constant') self.modelRho.addItem(self.tr('variable'), 'variable') self.modelRho.addItem(self.tr('thermal law'), 'thermal_law') if mdl_atmo != 'off': self.modelRho.addItem(self.tr('defined in atphyv'), 'variable') elif mdl_joule == 'arc': self.modelRho.addItem(self.tr('defined in elphyv'), 'variable') self.modelMu.addItem(self.tr('constant'), 'constant') self.modelMu.addItem(self.tr('variable'), 'variable') self.modelMu.addItem(self.tr('thermal law'), 'thermal_law') if mdl_joule == 'arc': self.modelMu.addItem(self.tr('defined in elphyv'), 'variable') self.modelCp.addItem(self.tr('constant'), 'constant') self.modelCp.addItem(self.tr('variable'), 'variable') self.modelCp.addItem(self.tr('thermal law'), 'thermal_law') if mdl_joule == 'arc': self.modelCp.addItem(self.tr('defined in elphyv'), 'variable') self.modelAl.addItem(self.tr('constant'), 'constant') self.modelAl.addItem(self.tr('variable'), 'variable') self.modelAl.addItem(self.tr('thermal law'), 'thermal_law') if mdl_joule == 'arc': self.modelAl.addItem(self.tr('defined in elphyv'), 'variable') self.modelDiff.addItem(self.tr('constant'), 'constant') self.modelDiff.addItem(self.tr('variable'), 'variable') self.modelViscv0.addItem(self.tr('constant'), 'constant') self.modelViscv0.addItem(self.tr('variable'), 'variable') self.modelViscv0.addItem(self.tr('thermal law'), 'thermal_law') self.modelDiftl0.addItem(self.tr('constant'), 'constant') self.modelDiftl0.addItem(self.tr('variable'), 'variable') self.modelDiftl0.addItem(self.tr('thermal law'), 'thermal_law') self.modelPhas.addItem(self.tr('liquid'), 'liquid') self.modelPhas.addItem(self.tr('gas'), 'gas') if (self.freesteam == 0 and EOS == 0) or \ self.m_th.getThermalScalarModel() == "off" or \ mdl_joule != 'off' or mdl_comp != 'off': self.groupBoxTableChoice.hide() else: self.groupBoxTableChoice.show() self.lineEditReference.setEnabled(False) # suppress perfect gas self.modelMaterial.addItem(self.tr('user material'), 'user_material') tmp = ["Argon", "Nitrogen", "Hydrogen", "Oxygen", "Helium", "Air"] if EOS == 1: fls = self.ava.whichFluids() for fli in fls: if fli not in tmp: tmp.append(fli) self.modelMaterial.addItem(self.tr(fli), fli) if self.freesteam == 1 and EOS == 0: self.modelMaterial.addItem(self.tr('Water'), 'Water') material = self.mdl.getMaterials() self.modelMaterial.setItem(str_model=material) self.updateMethod() self.scalar = "" scalar_list = self.m_sca.getUserScalarNameList() for s in self.m_sca.getScalarsVarianceList(): if s in scalar_list: scalar_list.remove(s) if scalar_list != []: self.scalar = scalar_list[0] for scalar in scalar_list: self.modelNameDiff.addItem(scalar) # Connections self.connect(self.comboBoxRho, SIGNAL("activated(const QString&)"), self.slotStateRho) self.connect(self.comboBoxMu, SIGNAL("activated(const QString&)"), self.slotStateMu) self.connect(self.comboBoxCp, SIGNAL("activated(const QString&)"), self.slotStateCp) self.connect(self.comboBoxAl, SIGNAL("activated(const QString&)"), self.slotStateAl) self.connect(self.comboBoxDiff, SIGNAL("activated(const QString&)"), self.slotStateDiff) self.connect(self.comboBoxNameDiff, SIGNAL("activated(const QString&)"), self.slotNameDiff) self.connect(self.comboBoxViscv0, SIGNAL("activated(const QString&)"), self.slotStateViscv0) self.connect(self.comboBoxMaterial, SIGNAL("activated(const QString&)"), self.slotMaterial) self.connect(self.comboBoxMethod, SIGNAL("activated(const QString&)"), self.slotMethod) self.connect(self.comboBoxPhas, SIGNAL("activated(const QString&)"), self.slotPhas) self.connect(self.lineEditRho, SIGNAL("textChanged(const QString &)"), self.slotRho) self.connect(self.lineEditMu, SIGNAL("textChanged(const QString &)"), self.slotMu) self.connect(self.lineEditCp, SIGNAL("textChanged(const QString &)"), self.slotCp) self.connect(self.lineEditAl, SIGNAL("textChanged(const QString &)"), self.slotAl) self.connect(self.lineEditDiff, SIGNAL("textChanged(const QString &)"), self.slotDiff) self.connect(self.lineEditDiftl0, SIGNAL("textChanged(const QString &)"), self.slotDiftl0) self.connect(self.lineEditViscv0, SIGNAL("textChanged(const QString &)"), self.slotViscv0) self.connect(self.pushButtonRho, SIGNAL("clicked()"), self.slotFormulaRho) self.connect(self.pushButtonMu, SIGNAL("clicked()"), self.slotFormulaMu) self.connect(self.pushButtonCp, SIGNAL("clicked()"), self.slotFormulaCp) self.connect(self.pushButtonAl, SIGNAL("clicked()"), self.slotFormulaAl) self.connect(self.pushButtonDiff, SIGNAL("clicked()"), self.slotFormulaDiff) self.connect(self.pushButtonViscv0, SIGNAL("clicked()"), self.slotFormulaViscv0) # Validators validatorRho = DoubleValidator(self.lineEditRho, min = 0.0) validatorMu = DoubleValidator(self.lineEditMu, min = 0.0) validatorCp = DoubleValidator(self.lineEditCp, min = 0.0) validatorAl = DoubleValidator(self.lineEditAl, min = 0.0) validatorDiff = DoubleValidator(self.lineEditDiff, min = 0.0) validatorViscv0 = DoubleValidator(self.lineEditViscv0, min = 0.0) validatorDiftl0 = DoubleValidator(self.lineEditDiftl0, min = 0.0) validatorRho.setExclusiveMin(True) validatorMu.setExclusiveMin(True) validatorCp.setExclusiveMin(True) validatorAl.setExclusiveMin(True) validatorDiff.setExclusiveMin(True) validatorDiftl0.setExclusiveMin(True) self.lineEditRho.setValidator(validatorRho) self.lineEditMu.setValidator(validatorMu) self.lineEditCp.setValidator(validatorCp) self.lineEditAl.setValidator(validatorAl) self.lineEditDiff.setValidator(validatorDiff) self.lineEditViscv0.setValidator(validatorViscv0) self.lineEditDiftl0.setValidator(validatorDiftl0) if scalar_list == []: self.groupBoxDiff.hide() else : self.groupBoxDiff.show() self.lineEditDiff.setText(str(self.m_sca.getScalarDiffusivityInitialValue(self.scalar))) diff_choice = self.m_sca.getScalarDiffusivityChoice(self.scalar) self.modelDiff.setItem(str_model=diff_choice) self.modelNameDiff.setItem(str_model=str(self.scalar)) if diff_choice != 'variable': self.pushButtonDiff.setEnabled(False) setGreenColor(self.pushButtonDiff, False) else: self.pushButtonDiff.setEnabled(True) setGreenColor(self.pushButtonDiff, True) #compressible self.groupBoxViscv0.hide() # combustion self.groupBoxDiftl0.hide() # Standard Widget initialization for tag, symbol in self.lst: __model = getattr(self, "model" + symbol) __line = getattr(self, "lineEdit" + symbol) __button = getattr(self, "pushButton" + symbol) __label = getattr(self, "label" + symbol) __labelu = getattr(self, "labelUnit" + symbol) if tag != 'dynamic_diffusion': __labelv = getattr(self, "labelVar" + symbol) c = self.mdl.getPropertyMode(tag) __model.setItem(str_model=c) if c == 'variable': __button.setEnabled(True) __label.setText(self.tr("Reference value")) else: __button.setEnabled(False) __label.setText(self.tr("Reference value")) if c == 'thermal_law': __line.hide() __label.hide() __labelu.hide() __labelv.hide() else: __line.show() __label.show() __labelu.show() __labelv.show() if self.mdl.getMaterials() == "user_material": __model.disableItem(str_model='thermal_law') else: __model.enableItem(str_model='thermal_law') else: __label.setText(self.tr("Reference value")) self.mdl.getInitialValue(tag) __line.setText(str(self.mdl.getInitialValue(tag))) # no 'thermal_conductivity' if not Joule and not Thermal scalar and not if mdl_joule == 'off' and mdl_thermal == 'off' and mdl_atmo == 'off' and\ CompressibleModel(self.case).getCompressibleModel() == 'off': self.groupBoxAl.hide() if mdl_gas != 'off' or mdl_coal != 'off': self.groupBoxDiftl0.show() for tag, symbol in self.lst: __model = getattr(self, "model" + symbol) __line = getattr(self, "lineEdit" + symbol) __button = getattr(self, "pushButton" + symbol) __label = getattr(self, "label" + symbol) __combo = getattr(self, "comboBox" + symbol) # Gas or coal combustion if mdl_gas != 'off' or mdl_coal != 'off': if tag == 'density': __model.setItem(str_model='variable') __combo.setEnabled(False) __button.setEnabled(False) self.mdl.setPropertyMode(tag, 'variable') __label.setText(self.tr("Calculation by\n perfect gas law")) __line.setText(str("")) __line.setEnabled(False) elif tag == 'dynamic_diffusion': __model.setItem(str_model='variable') __combo.setEnabled(False) __button.setEnabled(False) else: __model.setItem(str_model='constant') self.mdl.setPropertyMode(tag, 'constant') # Joule if mdl_joule == 'arc': __model.disableItem(str_model='constant') __model.disableItem(str_model='variable') __model.setItem(str_model='variable') __combo.setEnabled(False) __button.setEnabled(False) self.mdl.setPropertyMode(tag, 'variable') if mdl_joule == 'joule': __model.setItem(str_model='variable') __model.disableItem(str_model='constant') self.mdl.setPropertyMode(tag, 'variable') # Atmospheric Flows if mdl_atmo != 'off': if tag == 'density': __model.disableItem(str_model='constant') __model.disableItem(str_model='variable') __model.setItem(str_model='variable') __combo.setEnabled(False) __button.setEnabled(False) # Compressible Flows if mdl_comp != 'off': if tag == 'density': __model.setItem(str_model='variable') __combo.setEnabled(False) __button.setEnabled(False) __combo.hide() __button.hide() self.mdl.setPropertyMode(tag, 'variable') __line.setEnabled(True) self.groupBoxViscv0.hide() if tag == 'specific_heat': __model.setItem(str_model='constant') __combo.setEnabled(False) __button.setEnabled(False) self.mdl.setPropertyMode(tag, 'constant') self.groupBoxCp.setTitle('Isobaric specific heat') if tag == 'volume_viscosity': __combo.setEnabled(True) c = self.mdl.getPropertyMode(tag) if c == 'variable': __button.setEnabled(True) else: __button.setEnabled(False) self.groupBoxViscv0.show() else: if tag == 'specific_heat': self.groupBoxCp.setTitle('Specific heat') self.case.undoStartGlobal()
def __init__(self, parent, case, stbar): """ Constructor """ QWidget.__init__(self, parent) Ui_ElectricalForm.__init__(self) self.setupUi(self) self.case = case self.stbar = stbar self.case.undoStopGlobal() self.model = ElectricalModel(self.case) # Combo model self.modelJoule = ComboModel(self.comboBoxJouleModel, 4, 1) self.modelJoule.addItem(self.tr("AC/DC"), "AC/DC") self.modelJoule.addItem(self.tr("three-phase"), "three-phase") self.modelJoule.addItem(self.tr("AC/DC with Transformer coupling"), "AC/DC+Transformer") self.modelJoule.addItem(self.tr("three-phase with Transformer coupling"), "three-phase+Transformer") self.modelJoule.disableItem(str_model="AC/DC+Transformer") self.modelJoule.disableItem(str_model="three-phase+Transformer") self.modelScaling = ComboModel(self.comboBoxScalingModel, 3, 1) self.modelScaling.addItem(self.tr("general case"), "general_case") self.modelScaling.addItem(self.tr("plane define"), "plane_define") self.modelScaling.addItem(self.tr("user define"), "user") self.modelDirection = ComboModel(self.comboBoxDirection, 3, 1) self.modelDirection.addItem(self.tr("X"), "X") self.modelDirection.addItem(self.tr("Y"), "Y") self.modelDirection.addItem(self.tr("Z"), "Z") # Connections self.connect(self.pushButtonPropertiesData, SIGNAL("pressed()"), self.__slotSearchPropertiesData) self.connect(self.lineEditSRROM, SIGNAL("textChanged(const QString &)"), self.slotSRROM) self.connect(self.lineEditPower, SIGNAL("textChanged(const QString &)"), self.slotPower) self.connect(self.lineEditCurrent, SIGNAL("textChanged(const QString &)"), self.slotCurrent) self.connect(self.checkBoxScaling, SIGNAL("clicked()"), self.slotScaling) self.connect(self.comboBoxJouleModel, SIGNAL("activated(const QString&)"), self.slotJouleModel) self.connect(self.comboBoxScalingModel, SIGNAL("activated(const QString&)"), self.slotScalingModel) self.connect(self.comboBoxDirection, SIGNAL("clicked()"), self.slotDirection) self.connect(self.lineEditPlaneDefinitionA, SIGNAL("textChanged(const QString &)"), self.slotPlaneDefA) self.connect(self.lineEditPlaneDefinitionB, SIGNAL("textChanged(const QString &)"), self.slotPlaneDefB) self.connect(self.lineEditPlaneDefinitionC, SIGNAL("textChanged(const QString &)"), self.slotPlaneDefC) self.connect(self.lineEditPlaneDefinitionD, SIGNAL("textChanged(const QString &)"), self.slotPlaneDefD) self.connect(self.lineEditEpsilon, SIGNAL("textChanged(const QString &)"), self.slotPlaneDefEpsilon) # Validators validatorSRROM = DoubleValidator(self.lineEditSRROM, min=0.0, max=1.0) validatorSRROM.setExclusiveMin(False) validatorPower = DoubleValidator(self.lineEditPower, min=0.0) validatorPower.setExclusiveMin(False) validatorCurrent = DoubleValidator(self.lineEditCurrent, min=0.0) validatorCurrent.setExclusiveMin(False) validatorDefinitionA = DoubleValidator(self.lineEditPlaneDefinitionA) validatorDefinitionB = DoubleValidator(self.lineEditPlaneDefinitionB) validatorDefinitionC = DoubleValidator(self.lineEditPlaneDefinitionC) validatorDefinitionD = DoubleValidator(self.lineEditPlaneDefinitionD) validatorEpsilon = DoubleValidator(self.lineEditEpsilon) self.lineEditSRROM.setValidator(validatorSRROM) self.lineEditPower.setValidator(validatorPower) self.lineEditCurrent.setValidator(validatorCurrent) self.lineEditPlaneDefinitionA.setValidator(validatorDefinitionA) self.lineEditPlaneDefinitionB.setValidator(validatorDefinitionB) self.lineEditPlaneDefinitionC.setValidator(validatorDefinitionC) self.lineEditPlaneDefinitionD.setValidator(validatorDefinitionD) self.lineEditEpsilon.setValidator(validatorEpsilon) # Initialize widget self.__initializeWidget() self.case.undoStartGlobal()
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()
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_ReferenceValuesForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = ReferenceValuesModel(self.case) # Combo models self.modelLength = ComboModel(self.comboBoxLength, 2, 1) self.modelLength.addItem(self.tr("Automatic"), 'automatic') self.modelLength.addItem(self.tr("Prescribed"), 'prescribed') self.comboBoxLength.setSizeAdjustPolicy(QComboBox.AdjustToContents) # Connections self.lineEditP0.textChanged[str].connect(self.slotPressure) self.lineEditV0.textChanged[str].connect(self.slotVelocity) self.comboBoxLength.activated[str].connect(self.slotLengthChoice) self.lineEditL0.textChanged[str].connect(self.slotLength) self.lineEditT0.textChanged[str].connect(self.slotTemperature) self.lineEditOxydant.textChanged[str].connect(self.slotTempOxydant) self.lineEditFuel.textChanged[str].connect(self.slotTempFuel) self.lineEditMassMolar.textChanged[str].connect(self.slotMassemol) # Validators validatorP0 = DoubleValidator(self.lineEditP0, min=0.0) self.lineEditP0.setValidator(validatorP0) validatorV0 = DoubleValidator(self.lineEditV0, min=0.0) self.lineEditV0.setValidator(validatorV0) validatorL0 = DoubleValidator(self.lineEditL0, min=0.0) self.lineEditL0.setValidator(validatorL0) validatorT0 = DoubleValidator(self.lineEditT0, min=0.0) validatorT0.setExclusiveMin(True) self.lineEditT0.setValidator(validatorT0) validatorOxydant = DoubleValidator(self.lineEditOxydant, min=0.0) validatorOxydant.setExclusiveMin(True) self.lineEditOxydant.setValidator(validatorOxydant) validatorFuel = DoubleValidator(self.lineEditFuel, min=0.0) validatorFuel.setExclusiveMin(True) self.lineEditFuel.setValidator(validatorFuel) validatorMM = DoubleValidator(self.lineEditMassMolar, min=0.0) validatorMM.setExclusiveMin(True) self.lineEditMassMolar.setValidator(validatorMM) # Display model = self.mdl.getParticularPhysical() self.groupBoxMassMolar.hide() if model == "atmo": self.labelInfoT0.hide() elif model == "comp" or model == "coal": self.groupBoxMassMolar.show() elif model == "off": thmodel = ThermalScalarModel(self.case).getThermalScalarModel() if thmodel == "enthalpy": self.labelT0.setText("enthalpy") self.labelUnitT0.setText("J/kg") self.groupBoxTemperature.setTitle("Reference enthalpy") elif thmodel == "temperature_celsius": self.labelUnitT0.setText("C") if FluidCharacteristicsModel( self.case).getMaterials() != "user_material": self.labelInfoT0.hide()
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()
def __init__(self, parent, case): """ Constructor """ QWidget.__init__(self, parent) Ui_InterfacialArea.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = InterfacialAreaModel(self.case) dispersed_fields = self.mdl.getDispersedFieldList( ) + InterfacialForcesModel(self.case).getGLIMfields() if dispersed_fields == []: self.groupBoxField.hide() self.groupBoxMinMaxDiameter.hide() self.groupBoxModel.hide() self.labelNoDispersedPhase.show() self.mdl.remove() return # Combo box models id_to_set = -1 self.modelField = ComboModel(self.comboBoxField, 1, 1) # For consistency with the previous pages, the second phase of the # Large Interface Model is set before the dispersed fields for fieldId in dispersed_fields: label = self.mdl.getLabel(fieldId) name = str(fieldId) self.modelField.addItem(self.tr(label), name) if len(dispersed_fields) > 0 and id_to_set == -1: id_to_set = dispersed_fields[0] self.modelField.setItem(str_model=id_to_set) # case no field self.currentid = id_to_set self.modelModel = ComboModel(self.comboBoxModel, 2, 1) self.modelModel.addItem(self.tr("constant"), "constant") self.modelModel.addItem(self.tr("interfacial area transport"), "interfacial_area_transport") self.modelSourceTerm = ComboModel(self.comboBoxSourceTerm, 4, 1) self.modelSourceTerm.addItem( self.tr("No coalescence, no fragmentation"), "no_coalescence_no_fragmentation") self.modelSourceTerm.addItem(self.tr("Yao & Morel"), "wei_yao") self.modelSourceTerm.addItem(self.tr("Kamp & Colin"), "kamp_colin") self.modelSourceTerm.addItem(self.tr("Ruyer & Seiler"), "ruyer_seiler") self.modelSourceTerm.disableItem(2) # Why ? # Validators validatorDefDiam = DoubleValidator(self.lineEditDefaultDiameter, min=0.0) validatorMinDiam = DoubleValidator(self.lineEditMinDiameter, min=0.0) validatorMaxDiam = DoubleValidator(self.lineEditMaxDiameter, min=0.0) validatorDefDiam.setExclusiveMin(True) validatorMinDiam.setExclusiveMin(True) validatorMaxDiam.setExclusiveMin(True) self.lineEditDefaultDiameter.setValidator(validatorDefDiam) self.lineEditMinDiameter.setValidator(validatorMinDiam) self.lineEditMaxDiameter.setValidator(validatorMaxDiam) # Connect signals to slots self.comboBoxField.activated[str].connect(self.slotField) self.comboBoxModel.activated[str].connect(self.slotModel) self.comboBoxSourceTerm.activated[str].connect(self.slotSourceTerm) self.lineEditDefaultDiameter.textChanged[str].connect( self.slotDefaultDiameter) self.lineEditMinDiameter.textChanged[str].connect(self.slotMinDiameter) self.lineEditMaxDiameter.textChanged[str].connect(self.slotMaxDiameter) # Initialize widget self.initializeVariables(self.currentid) self.case.undoStartGlobal()
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) self.tableViewBoundaries.horizontalHeader().setResizeMode(QHeaderView.Stretch) delegateInteraction = ParticleBoundaryInteractionDelegate(self.tableViewBoundaries) delegateClassNumber = ValueDelegate(self.tableViewBoundaries) self.tableViewBoundaries.setItemDelegateForColumn(2,delegateInteraction) self.tableViewBoundaries.setItemDelegateForColumn(3,delegateClassNumber) self.modelIPOIT = ComboModel(self.comboBoxIPOIT,3,1) self.modelIPOIT.addItem(self.tr("Volumic flow rate"), "rate") self.modelIPOIT.addItem(self.tr("Statistical weight set by values"), "prescribed") self.modelIPOIT.addItem(self.tr("User defined statistical weight"), "subroutine") 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.modelIJUVW.addItem(self.tr("User defined velocity"), "subroutine") self.modelIJRTP = ComboModel(self.comboBoxIJRTP,2,1) self.modelIJRTP.addItem(self.tr("Temperature set by values"), "prescribed") self.modelIJRTP.addItem(self.tr("User defined temperature"), "subroutine") self.modelIJRDP = ComboModel(self.comboBoxIJRDP,2,1) self.modelIJRDP.addItem(self.tr("Diameter set by values"), "prescribed") self.modelIJRDP.addItem(self.tr("User defined diameter"), "subroutine") self.modelIRAWCL = ComboModel(self.comboBoxIRAWCL,2,1) self.modelIRAWCL.addItem(self.tr("Raw coal"), "raw_coal_as_received") self.modelIRAWCL.addItem(self.tr("User defined"), "subroutine") self.connect(self.tableViewBoundaries, SIGNAL("clicked(const QModelIndex &)"), self.slotSelectBoundary) self.connect(self.modelBoundaries, SIGNAL("dataChanged(const QModelIndex &, const QModelIndex &)"), self.dataChanged) self.connect(self.spinBoxICLAS, SIGNAL("valueChanged(int)"), self.slotICLAS) self.connect(self.lineEditIJNBP, SIGNAL("textChanged(const QString &)"), self.slotIJNBP) self.connect(self.lineEditIJFRE, SIGNAL("textChanged(const QString &)"), self.slotIJFRE) self.connect(self.lineEditICLST, SIGNAL("textChanged(const QString &)"), self.slotICLST) self.connect(self.lineEditIDEBT, SIGNAL("textChanged(const QString &)"), self.slotIDEBT) self.connect(self.comboBoxIPOIT, SIGNAL("activated(const QString&)"), self.slotIPOITChoice) self.connect(self.lineEditIPOIT, SIGNAL("textChanged(const QString &)"), self.slotIPOIT) self.connect(self.lineEditIROPT, SIGNAL("textChanged(const QString &)"), self.slotIROPT) self.connect(self.comboBoxIJUVW, SIGNAL("activated(const QString&)"), self.slotIJUVW) self.connect(self.lineEditIUNO, SIGNAL("textChanged(const QString &)"), self.slotIUNO) self.connect(self.lineEditIUPT, SIGNAL("textChanged(const QString &)"), self.slotIUPT) self.connect(self.lineEditIVPT, SIGNAL("textChanged(const QString &)"), self.slotIVPT) self.connect(self.lineEditIWPT, SIGNAL("textChanged(const QString &)"), self.slotIWPT) self.connect(self.comboBoxIJRTP, SIGNAL("activated(const QString&)"), self.slotIJRTP) self.connect(self.lineEditITPT, SIGNAL("textChanged(const QString &)"), self.slotITPT) self.connect(self.lineEditICPT, SIGNAL("textChanged(const QString &)"), self.slotICPT) self.connect(self.lineEditIEPSI, SIGNAL("textChanged(const QString &)"), self.slotIEPSI) self.connect(self.comboBoxIJRDP, SIGNAL("activated(const QString&)"), self.slotIJRDP) self.connect(self.lineEditIDPT, SIGNAL("textChanged(const QString &)"), self.slotIDPT) self.connect(self.lineEditIVDPT, SIGNAL("textChanged(const QString &)"), self.slotIVDPT) self.connect(self.lineEditINUCHL, SIGNAL("textChanged(const QString &)"), self.slotINUCHL) self.connect(self.lineEditIHPT, SIGNAL("textChanged(const QString &)"), self.slotIHPT) self.connect(self.comboBoxIRAWCL, SIGNAL("activated(const QString&)"), self.slotIRAWCL) # 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) 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.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()
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.connect(self.comboBoxOptions, SIGNAL("activated(const QString&)"), self.slotTimePassing) self.connect(self.lineEditDTREF, SIGNAL("textChanged(const QString &)"), self.slotTimeStep) self.connect(self.lineEditNTMABS, SIGNAL("textChanged(const QString &)"), self.slotIter) self.connect(self.lineEditCOUMAX, SIGNAL("textChanged(const QString &)"), self.slotTimeOptionCOUMAX) self.connect(self.lineEditFOUMAX, SIGNAL("textChanged(const QString &)"), self.slotTimeOptionFOUMAX) self.connect(self.lineEditCDTMIN, SIGNAL("textChanged(const QString &)"), self.slotTimeOptionCDTMIN) self.connect(self.lineEditCDTMAX, SIGNAL("textChanged(const QString &)"), self.slotTimeOptionCDTMAX) self.connect(self.lineEditVARRDT, SIGNAL("textChanged(const QString &)"), self.slotTimeOptionVARRDT) self.connect(self.checkBoxIPTLRO, SIGNAL("clicked()"), self.slotThermalTimeStep) self.connect(self.checkBoxINPDT0, SIGNAL("clicked()"), 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_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_FluidCharacteristicsForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = FluidCharacteristicsModel(self.case) self.notebook = NotebookModel(self.case) if EOS == 1: self.ava = eosAva.EosAvailable() import cs_config cfg = cs_config.config() self.freesteam = 0 if cfg.libs['freesteam'].have != "no": self.freesteam = 1 self.m_th = ThermalScalarModel(self.case) s = self.m_th.getThermalScalarName() tsm = self.mdl.tsm # Particular Widget initialization taking into account of "Calculation Features" mdl_atmo, mdl_joule, mdl_thermal, mdl_gas, mdl_coal, mdl_comp = self.mdl.getThermoPhysicalModel( ) # Combo models self.modelRho = ComboModel(self.comboBoxRho, 3, 1) self.modelMu = ComboModel(self.comboBoxMu, 3, 1) self.modelCp = ComboModel(self.comboBoxCp, 3, 1) self.modelAl = ComboModel(self.comboBoxAl, 3, 1) self.modelDiff = ComboModel(self.comboBoxDiff, 2, 1) self.modelNameDiff = ComboModel(self.comboBoxNameDiff, 1, 1) self.modelViscv0 = ComboModel(self.comboBoxViscv0, 3, 1) self.modelDiftl0 = ComboModel(self.comboBoxDiftl0, 3, 1) self.modelMaterial = ComboModel(self.comboBoxMaterial, 1, 1) self.modelMethod = ComboModel(self.comboBoxMethod, 1, 1) self.modelPhas = ComboModel(self.comboBoxPhas, 2, 1) self.modelRho.addItem(self.tr('constant'), 'constant') self.modelRho.addItem(self.tr('user law'), 'user_law') self.modelRho.addItem(self.tr('material law'), 'thermal_law') if mdl_atmo != 'off': self.modelRho.addItem(self.tr('defined in atphyv'), 'predefined_law') elif mdl_joule == 'arc': self.modelRho.addItem(self.tr('defined in elphyv'), 'predefined_law') elif mdl_comp != 'off': self.modelRho.addItem(self.tr('predefined law'), 'predefined_law') elif mdl_gas != 'off' or mdl_coal != 'off': self.modelRho.addItem(self.tr('predefined law'), 'predefined_law') self.modelMu.addItem(self.tr('constant'), 'constant') self.modelMu.addItem(self.tr('user law'), 'user_law') self.modelMu.addItem(self.tr('material law'), 'thermal_law') if mdl_joule == 'arc': self.modelMu.addItem(self.tr('defined in elphyv'), 'predefined_law') self.modelCp.addItem(self.tr('constant'), 'constant') self.modelCp.addItem(self.tr('user law'), 'user_law') self.modelCp.addItem(self.tr('material law'), 'thermal_law') if mdl_joule == 'arc': self.modelCp.addItem(self.tr('defined in elphyv'), 'predefined_law') self.modelAl.addItem(self.tr('constant'), 'constant') self.modelAl.addItem(self.tr('user law'), 'user_law') self.modelAl.addItem(self.tr('material law'), 'thermal_law') if mdl_joule == 'arc': self.modelAl.addItem(self.tr('defined in elphyv'), 'predefined_law') self.modelDiff.addItem(self.tr('constant'), 'constant') self.modelDiff.addItem(self.tr('user law'), 'user_law') self.modelViscv0.addItem(self.tr('constant'), 'constant') self.modelViscv0.addItem(self.tr('user law'), 'user_law') self.modelViscv0.addItem(self.tr('material law'), 'thermal_law') self.modelDiftl0.addItem(self.tr('constant'), 'constant') self.modelDiftl0.addItem(self.tr('user law'), 'user_law') self.modelDiftl0.addItem(self.tr('material law'), 'thermal_law') if mdl_gas != 'off' or mdl_coal != 'off': self.modelDiftl0.addItem(self.tr('predefined law'), 'predefined_law') self.modelPhas.addItem(self.tr('liquid'), 'liquid') self.modelPhas.addItem(self.tr('gas'), 'gas') self.scalar = "" scalar_list = self.mdl.m_sca.getUserScalarNameList() for s in self.mdl.m_sca.getScalarsVarianceList(): if s in scalar_list: scalar_list.remove(s) if scalar_list != []: self.scalar = scalar_list[0] for scalar in scalar_list: self.modelNameDiff.addItem(scalar) # Validators validatorP0 = DoubleValidator(self.lineEditP0, min=0.0) self.lineEditP0.setValidator(validatorP0) validatorT0 = DoubleValidator(self.lineEditT0, min=0.0) validatorT0.setExclusiveMin(True) self.lineEditT0.setValidator(validatorT0) validatorOxydant = DoubleValidator(self.lineEditOxydant, min=0.0) validatorOxydant.setExclusiveMin(True) self.lineEditOxydant.setValidator(validatorOxydant) validatorFuel = DoubleValidator(self.lineEditFuel, min=0.0) validatorFuel.setExclusiveMin(True) self.lineEditFuel.setValidator(validatorFuel) validatorMM = DoubleValidator(self.lineEditMassMolar, min=0.0) validatorMM.setExclusiveMin(True) self.lineEditMassMolar.setValidator(validatorMM) validatorRho = DoubleValidator(self.lineEditRho, min=0.0) validatorMu = DoubleValidator(self.lineEditMu, min=0.0) validatorCp = DoubleValidator(self.lineEditCp, min=0.0) validatorAl = DoubleValidator(self.lineEditAl, min=0.0) validatorDiff = DoubleValidator(self.lineEditDiff, min=0.0) validatorViscv0 = DoubleValidator(self.lineEditViscv0, min=0.0) validatorDiftl0 = DoubleValidator(self.lineEditDiftl0, min=0.0) validatorRho.setExclusiveMin(True) validatorMu.setExclusiveMin(True) validatorCp.setExclusiveMin(True) validatorAl.setExclusiveMin(True) validatorDiff.setExclusiveMin(True) validatorDiftl0.setExclusiveMin(True) self.lineEditRho.setValidator(validatorRho) self.lineEditMu.setValidator(validatorMu) self.lineEditCp.setValidator(validatorCp) self.lineEditAl.setValidator(validatorAl) self.lineEditDiff.setValidator(validatorDiff) self.lineEditViscv0.setValidator(validatorViscv0) self.lineEditDiftl0.setValidator(validatorDiftl0) # Connections self.lineEditP0.textChanged[str].connect(self.slotPressure) self.lineEditT0.textChanged[str].connect(self.slotTemperature) self.lineEditOxydant.textChanged[str].connect(self.slotTempOxydant) self.lineEditFuel.textChanged[str].connect(self.slotTempFuel) self.lineEditMassMolar.textChanged[str].connect(self.slotMassemol) self.comboBoxRho.currentIndexChanged[str].connect(self.slotStateRho) self.comboBoxMu.currentIndexChanged[str].connect(self.slotStateMu) self.comboBoxCp.currentIndexChanged[str].connect(self.slotStateCp) self.comboBoxAl.currentIndexChanged[str].connect(self.slotStateAl) self.comboBoxDiff.currentIndexChanged[str].connect(self.slotStateDiff) self.comboBoxNameDiff.activated[str].connect(self.slotNameDiff) self.comboBoxViscv0.currentIndexChanged[str].connect( self.slotStateViscv0) self.comboBoxMaterial.activated[str].connect(self.slotMaterial) self.comboBoxMethod.activated[str].connect(self.slotMethod) self.comboBoxPhas.activated[str].connect(self.slotPhas) self.lineEditRho.textChanged[str].connect(self.slotRho) self.lineEditMu.textChanged[str].connect(self.slotMu) self.lineEditCp.textChanged[str].connect(self.slotCp) self.lineEditAl.textChanged[str].connect(self.slotAl) self.lineEditDiff.textChanged[str].connect(self.slotDiff) self.lineEditDiftl0.textChanged[str].connect(self.slotDiftl0) self.lineEditViscv0.textChanged[str].connect(self.slotViscv0) self.pushButtonRho.clicked.connect(self.slotFormulaRho) self.pushButtonMu.clicked.connect(self.slotFormulaMu) self.pushButtonCp.clicked.connect(self.slotFormulaCp) self.pushButtonAl.clicked.connect(self.slotFormulaAl) self.pushButtonDiff.clicked.connect(self.slotFormulaDiff) self.pushButtonViscv0.clicked.connect(self.slotFormulaViscv0) self.initializeWidget() self.case.undoStartGlobal()
def createEditor(self, parent, option, index): editor = QLineEdit(parent) validator = DoubleValidator(editor, min=0.) validator.setExclusiveMin(True) editor.setValidator(validator) return editor
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_FluidCharacteristicsForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.mdl = FluidCharacteristicsModel(self.case) self.notebook = NotebookModel(self.case) self.m_th = ThermalScalarModel(self.case) s = self.m_th.getThermalScalarName() tsm = self.mdl.tsm # Particular Widget init. taking into account chosen fluid model mdl_atmo, mdl_joule, mdl_thermal, mdl_gas, mdl_coal, mdl_comp, mdl_hgn=\ self.mdl.getThermoPhysicalModel() # Combo models self.modelRho = ComboModel(self.comboBoxRho, 2, 1) self.modelMu = ComboModel(self.comboBoxMu, 2, 1) self.modelCp = ComboModel(self.comboBoxCp, 2, 1) self.modelAl = ComboModel(self.comboBoxAl, 2, 1) self.modelDiff = ComboModel(self.comboBoxDiff, 2, 1) self.modelNameDiff = ComboModel(self.comboBoxNameDiff, 1, 1) self.modelViscv0 = ComboModel(self.comboBoxViscv0, 3, 1) self.modelDiftl0 = ComboModel(self.comboBoxDiftl0, 3, 1) self.modelMaterial = ComboModel(self.comboBoxMaterial, 1, 1) self.modelMethod = ComboModel(self.comboBoxMethod, 1, 1) self.modelReference = ComboModel(self.comboBoxReference, 1, 1) if mdl_joule == 'off': self.modelRho.addItem(self.tr('constant'), 'constant') self.modelRho.addItem(self.tr('material law'), 'thermal_law') if mdl_atmo != 'off': self.modelRho.addItem(self.tr('predefined law'), 'predefined_law') elif mdl_hgn != "off": self.modelRho.addItem(self.tr('linear mixture law'), 'predefined_law') elif mdl_joule != 'off': self.modelRho.addItem(self.tr('predefined law'), 'predefined_law') elif mdl_comp != 'off': self.modelRho.addItem(self.tr('predefined law'), 'predefined_law') elif mdl_gas != 'off' or mdl_coal != 'off': self.modelRho.addItem(self.tr('predefined law'), 'predefined_law') self.modelRho.addItem(self.tr('user law'), 'user_law') if mdl_joule == 'off': self.modelMu.addItem(self.tr('constant'), 'constant') self.modelMu.addItem(self.tr('material law'), 'thermal_law') if mdl_joule != 'off': self.modelMu.addItem(self.tr('predefined law'), 'predefined_law') if mdl_hgn != "off": self.modelMu.addItem(self.tr('linear mixture law'), 'predefined_law') self.modelMu.addItem(self.tr('user law'), 'user_law') if mdl_joule == 'off': self.modelCp.addItem(self.tr('constant'), 'constant') self.modelCp.addItem(self.tr('material law'), 'thermal_law') if mdl_joule != 'off': self.modelCp.addItem(self.tr('predefined law'), 'predefined_law') self.modelCp.addItem(self.tr('user law'), 'user_law') if mdl_joule == 'off': self.modelAl.addItem(self.tr('constant'), 'constant') self.modelAl.addItem(self.tr('material law'), 'thermal_law') if mdl_joule != 'off': self.modelAl.addItem(self.tr('predefined law'), 'predefined_law') self.modelAl.addItem(self.tr('user law'), 'user_law') self.modelDiff.addItem(self.tr('constant'), 'constant') self.modelDiff.addItem(self.tr('user law'), 'user_law') self.modelViscv0.addItem(self.tr('constant'), 'constant') self.modelViscv0.addItem(self.tr('user law'), 'user_law') self.modelViscv0.addItem(self.tr('material law'), 'thermal_law') self.modelDiftl0.addItem(self.tr('constant'), 'constant') self.modelDiftl0.addItem(self.tr('user law'), 'user_law') self.modelDiftl0.addItem(self.tr('material law'), 'thermal_law') if mdl_gas != 'off' or mdl_coal != 'off': self.modelDiftl0.addItem(self.tr('predefined law'), 'predefined_law') self.scalar = "" scalar_list = self.mdl.m_sca.getUserScalarNameList() for s in self.mdl.m_sca.getScalarsVarianceList(): if s in scalar_list: scalar_list.remove(s) if scalar_list != []: self.scalar = scalar_list[0] for scalar in scalar_list: self.modelNameDiff.addItem(scalar) # Validators validatorP0 = DoubleValidator(self.lineEditP0, min=0.0) self.lineEditP0.setValidator(validatorP0) validatorT0 = DoubleValidator(self.lineEditT0, min=0.0) validatorT0.setExclusiveMin(True) self.lineEditT0.setValidator(validatorT0) validatorOxydant = DoubleValidator(self.lineEditOxydant, min=0.0) validatorOxydant.setExclusiveMin(True) self.lineEditOxydant.setValidator(validatorOxydant) validatorFuel = DoubleValidator(self.lineEditFuel, min=0.0) validatorFuel.setExclusiveMin(True) self.lineEditFuel.setValidator(validatorFuel) validatorMM = DoubleValidator(self.lineEditMassMolar, min=0.0) validatorMM.setExclusiveMin(True) self.lineEditMassMolar.setValidator(validatorMM) validatorRho = DoubleValidator(self.lineEditRho, min=0.0) validatorRho1 = DoubleValidator(self.lineEditRho1, min=0.0) validatorRho2 = DoubleValidator(self.lineEditRho2, min=0.0) validatorMu = DoubleValidator(self.lineEditMu, min=0.0) validatorMu1 = DoubleValidator(self.lineEditMu1, min=0.0) validatorMu2 = DoubleValidator(self.lineEditMu2, min=0.0) validatorCp = DoubleValidator(self.lineEditCp, min=0.0) validatorAl = DoubleValidator(self.lineEditAl, min=0.0) validatorDiff = DoubleValidator(self.lineEditDiff, min=0.0) validatorViscv0 = DoubleValidator(self.lineEditViscv0, min=0.0) validatorDiftl0 = DoubleValidator(self.lineEditDiftl0, min=0.0) validatorRho.setExclusiveMin(True) validatorRho1.setExclusiveMin(True) validatorRho2.setExclusiveMin(True) validatorMu.setExclusiveMin(True) validatorMu1.setExclusiveMin(True) validatorMu2.setExclusiveMin(True) validatorCp.setExclusiveMin(True) validatorAl.setExclusiveMin(True) validatorDiff.setExclusiveMin(True) validatorDiftl0.setExclusiveMin(True) self.lineEditRho.setValidator(validatorRho) self.lineEditRho1.setValidator(validatorRho1) self.lineEditRho2.setValidator(validatorRho2) self.lineEditMu.setValidator(validatorMu) self.lineEditMu1.setValidator(validatorMu1) self.lineEditMu2.setValidator(validatorMu2) self.lineEditCp.setValidator(validatorCp) self.lineEditAl.setValidator(validatorAl) self.lineEditDiff.setValidator(validatorDiff) self.lineEditViscv0.setValidator(validatorViscv0) self.lineEditDiftl0.setValidator(validatorDiftl0) # Connections self.lineEditP0.textChanged[str].connect(self.slotPressure) self.lineEditT0.textChanged[str].connect(self.slotTemperature) self.lineEditOxydant.textChanged[str].connect(self.slotTempOxydant) self.lineEditFuel.textChanged[str].connect(self.slotTempFuel) self.lineEditMassMolar.textChanged[str].connect(self.slotMassemol) self.comboBoxRho.currentIndexChanged[str].connect(self.slotStateRho) self.comboBoxMu.currentIndexChanged[str].connect(self.slotStateMu) self.comboBoxCp.currentIndexChanged[str].connect(self.slotStateCp) self.comboBoxAl.currentIndexChanged[str].connect(self.slotStateAl) self.comboBoxDiff.currentIndexChanged[str].connect(self.slotStateDiff) self.comboBoxNameDiff.activated[str].connect(self.slotNameDiff) self.comboBoxViscv0.currentIndexChanged[str].connect( self.slotStateViscv0) self.comboBoxMaterial.activated[str].connect(self.slotMaterial) self.comboBoxMethod.activated[str].connect(self.slotMethod) self.comboBoxReference.activated[str].connect(self.slotReference) self.lineEditRho.textChanged[str].connect(self.slotRho) self.lineEditRho1.textChanged[str].connect(self.slotRho1) self.lineEditRho2.textChanged[str].connect(self.slotRho2) self.lineEditMu.textChanged[str].connect(self.slotMu) self.lineEditMu1.textChanged[str].connect(self.slotMu1) self.lineEditMu2.textChanged[str].connect(self.slotMu2) self.lineEditCp.textChanged[str].connect(self.slotCp) self.lineEditAl.textChanged[str].connect(self.slotAl) self.lineEditDiff.textChanged[str].connect(self.slotDiff) self.lineEditDiftl0.textChanged[str].connect(self.slotDiftl0) self.lineEditViscv0.textChanged[str].connect(self.slotViscv0) self.pushButtonRho.clicked.connect(self.slotFormulaRho) self.pushButtonMu.clicked.connect(self.slotFormulaMu) self.pushButtonCp.clicked.connect(self.slotFormulaCp) self.pushButtonAl.clicked.connect(self.slotFormulaAl) self.pushButtonDiff.clicked.connect(self.slotFormulaDiff) self.pushButtonViscv0.clicked.connect(self.slotFormulaViscv0) self.initializeWidget() 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=None, case=None): """ Constructor """ QWidget.__init__(self, parent) Ui_TurbulenceForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.model = TurbulenceModel(self.case) # Combo model self.modelTurbModel = ComboModel(self.comboBoxTurbModel,10,1) self.modelTurbModel.addItem(self.tr("No model (i.e. laminar flow)"), "off") self.modelTurbModel.addItem(self.tr("Mixing length"), "mixing_length") self.modelTurbModel.addItem(self.tr("k-epsilon"), "k-epsilon") self.modelTurbModel.addItem(self.tr("k-epsilon Linear Production"), "k-epsilon-PL") self.modelTurbModel.addItem(self.tr("Rij-epsilon LRR"), "Rij-epsilon") self.modelTurbModel.addItem(self.tr("Rij-epsilon SSG"), "Rij-SSG") self.modelTurbModel.addItem(self.tr("Rij-epsilon EBRSM"), "Rij-EBRSM") self.modelTurbModel.addItem(self.tr("v2f BL-v2/k"), "v2f-BL-v2/k") self.modelTurbModel.addItem(self.tr("k-omega SST"), "k-omega-SST") self.modelTurbModel.addItem(self.tr("Spalart-Allmaras"), "Spalart-Allmaras") self.modelTurbModel.addItem(self.tr("LES (Smagorinsky)"), "LES_Smagorinsky") self.modelTurbModel.addItem(self.tr("LES (classical dynamic model)"), "LES_dynamique") self.modelTurbModel.addItem(self.tr("LES (WALE)"), "LES_WALE") # Connections self.connect(self.comboBoxTurbModel, SIGNAL("activated(const QString&)"), self.slotTurbulenceModel) self.connect(self.pushButtonAdvanced, SIGNAL("clicked()"), self.slotAdvancedOptions) self.connect(self.lineEditLength, SIGNAL("textChanged(const QString &)"), self.slotLengthScale) # Frames display self.frameAdvanced.hide() self.frameLength.hide() # Validator validator = DoubleValidator(self.lineEditLength, min=0.0) validator.setExclusiveMin(True) self.lineEditLength.setValidator(validator) # Update the turbulence models list with the calculation features for turb in self.model.turbulenceModels(): if turb not in self.model.turbulenceModelsList(): self.modelTurbModel.disableItem(str_model=turb) # Select the turbulence model model = self.model.getTurbulenceModel() self.modelTurbModel.setItem(str_model=model) self.slotTurbulenceModel(self.comboBoxTurbModel.currentText()) # Length scale l_scale = self.model.getLengthScale() self.lineEditLength.setText(str(l_scale)) self.case.undoStartGlobal()
def __init__(self, parent, case, tree): """ Constructor """ QWidget.__init__(self, parent) Ui_NumericalParamGlobalForm.__init__(self) self.setupUi(self) self.case = case self.case.undoStopGlobal() self.model = NumericalParamGlobalModel(self.case) self.browser = tree self.labelSRROM.hide() self.lineEditSRROM.hide() self.line_5.hide() # Combo models self.modelEXTRAG = ComboModel(self.comboBoxEXTRAG,2,1) self.modelIMRGRA = ComboModel(self.comboBoxIMRGRA,5,1) self.modelNTERUP = ComboModel(self.comboBoxNTERUP,3,1) self.modelEXTRAG.addItem(self.tr("Neumann 1st order"), 'neumann') self.modelEXTRAG.addItem(self.tr("Extrapolation"), 'extrapolation') self.modelIMRGRA.addItem(self.tr("Iterative handling of non-orthogonalities"),'0') self.modelIMRGRA.addItem(self.tr("Least squares method over neighboring cells"),'1') self.modelIMRGRA.addItem(self.tr("Least squares method over extended cell neighborhood"),'2') self.modelIMRGRA.addItem(self.tr("Least squares method over partial extended cell neighborhood"),'3') self.modelIMRGRA.addItem(self.tr("Iterative method with least squares initialization"),'4') self.modelNTERUP.addItem(self.tr("SIMPLE"), 'simple') self.modelNTERUP.addItem(self.tr("SIMPLEC"),'simplec') self.modelNTERUP.addItem(self.tr("PISO"),'piso') self.comboBoxEXTRAG.setSizeAdjustPolicy(QComboBox.AdjustToContents) self.comboBoxNTERUP.setSizeAdjustPolicy(QComboBox.AdjustToContents) # Connections self.connect(self.checkBoxIVISSE, SIGNAL("clicked()"), self.slotIVISSE) self.connect(self.checkBoxIPUCOU, SIGNAL("clicked()"), self.slotIPUCOU) self.connect(self.checkBoxICFGRP, SIGNAL("clicked()"), self.slotICFGRP) self.connect(self.checkBoxImprovedPressure, SIGNAL("clicked()"), self.slotImprovedPressure) self.connect(self.comboBoxEXTRAG, SIGNAL("activated(const QString&)"), self.slotEXTRAG) self.connect(self.lineEditRELAXP, SIGNAL("textChanged(const QString &)"), self.slotRELAXP) self.connect(self.comboBoxIMRGRA, SIGNAL("activated(const QString&)"), self.slotIMRGRA) self.connect(self.lineEditSRROM, SIGNAL("textChanged(const QString &)"), self.slotSRROM) self.connect(self.comboBoxNTERUP, SIGNAL("activated(const QString&)"), self.slotNTERUP) self.connect(self.spinBoxNTERUP, SIGNAL("valueChanged(int)"), self.slotNTERUP2) # Validators validatorRELAXP = DoubleValidator(self.lineEditRELAXP, min=0., max=1.) validatorRELAXP.setExclusiveMin(True) validatorSRROM = DoubleValidator(self.lineEditSRROM, min=0., max=1.) validatorSRROM.setExclusiveMin(True) self.lineEditRELAXP.setValidator(validatorRELAXP) self.lineEditSRROM.setValidator(validatorSRROM) if self.model.getTransposedGradient() == 'on': self.checkBoxIVISSE.setChecked(True) else: self.checkBoxIVISSE.setChecked(False) if self.model.getVelocityPressureCoupling() == 'on': self.checkBoxIPUCOU.setChecked(True) else: self.checkBoxIPUCOU.setChecked(False) import code_saturne.Pages.FluidCharacteristicsModel as FluidCharacteristics fluid = FluidCharacteristics.FluidCharacteristicsModel(self.case) modl_atmo, modl_joul, modl_thermo, modl_gas, modl_coal, modl_comp = fluid.getThermoPhysicalModel() if self.model.getHydrostaticPressure() == 'on': self.checkBoxImprovedPressure.setChecked(True) else: self.checkBoxImprovedPressure.setChecked(False) self.lineEditRELAXP.setText(str(self.model.getPressureRelaxation())) self.modelEXTRAG.setItem(str_model=self.model.getWallPressureExtrapolation()) self.modelIMRGRA.setItem(str_model=str(self.model.getGradientReconstruction())) if modl_joul != 'off' or modl_gas != 'off' or modl_coal != 'off': self.labelSRROM.show() self.lineEditSRROM.show() self.lineEditSRROM.setText(str(self.model.getDensityRelaxation())) self.line_5.show() algo = self.model.getVelocityPressureAlgorithm() status = SteadyManagementModel(self.case).getSteadyFlowManagement() if status == 'on': self.modelNTERUP.enableItem(str_model = 'simple') self.modelNTERUP.disableItem(str_model = 'piso') else: self.modelNTERUP.disableItem(str_model = 'simple') self.modelNTERUP.enableItem(str_model = 'piso') self.modelNTERUP.setItem(str_model=algo) if algo == 'piso': self.spinBoxNTERUP.show() else: self.spinBoxNTERUP.hide() if modl_comp != 'off': self.labelICFGRP.show() self.checkBoxICFGRP.show() self.line_4.show() if self.model.getHydrostaticEquilibrium() == 'on': self.checkBoxICFGRP.setChecked(True) else: self.checkBoxICFGRP.setChecked(False) self.checkBoxIPUCOU.hide() self.labelIPUCOU.hide() self.lineEditRELAXP.hide() self.labelRELAXP.hide() self.checkBoxImprovedPressure.hide() self.labelImprovedPressure.hide() self.line_2.hide() self.line_5.hide() self.line_7.hide() self.line_8.hide() self.labelNTERUP.setText("Velocity-Pressure algorithm\nsub-iterations on Navier-Stokes") self.comboBoxNTERUP.hide() self.spinBoxNTERUP.show() else: self.labelICFGRP.hide() self.checkBoxICFGRP.hide() self.line_4.hide() self.checkBoxIPUCOU.show() self.labelIPUCOU.show() self.lineEditRELAXP.show() self.labelRELAXP.show() self.checkBoxImprovedPressure.show() self.labelImprovedPressure.show() self.line_2.show() self.line_5.show() self.line_7.show() self.line_8.show() value = self.model.getPisoSweepNumber() self.spinBoxNTERUP.setValue(value) # Update the Tree files and folders self.browser.configureTree(self.case) self.case.undoStartGlobal()