bugfix: Taskview ui, typo, coding format for FluidBoundary
This commit is contained in:
parent
40243fc89a
commit
1c51a182f6
|
@ -69,26 +69,29 @@ static const char* ThermalBoundaryHelpTexts[] = {"fixed Temperature [K]", "no he
|
||||||
|
|
||||||
ConstraintFluidBoundary::ConstraintFluidBoundary()
|
ConstraintFluidBoundary::ConstraintFluidBoundary()
|
||||||
{
|
{
|
||||||
// momemtum boundary: pressure and velocity
|
/// momemtum boundary: pressure and velocity
|
||||||
ADD_PROPERTY_TYPE(BoundaryType,(1),"FluidBoundary",(App::PropertyType)(App::Prop_None),
|
ADD_PROPERTY_TYPE(BoundaryType,(1),"FluidBoundary",(App::PropertyType)(App::Prop_None),
|
||||||
"Basic boundary type like inlet, wall, outlet,etc");
|
"Basic boundary type like inlet, wall, outlet,etc");
|
||||||
BoundaryType.setEnums(BoundaryTypes);
|
BoundaryType.setEnums(BoundaryTypes);
|
||||||
ADD_PROPERTY_TYPE(Subtype,(1),"FluidBoundary",(App::PropertyType)(App::Prop_None),
|
ADD_PROPERTY_TYPE(Subtype,(1),"FluidBoundary",(App::PropertyType)(App::Prop_None),
|
||||||
"Subtype defines value type or more specific type");
|
"Subtype defines more specific boudnary types");
|
||||||
Subtype.setEnums(WallSubtypes);
|
Subtype.setEnums(WallSubtypes);
|
||||||
ADD_PROPERTY_TYPE(BoundaryValue,(0.0),"FluidBoundary",(App::PropertyType)(App::Prop_None),
|
ADD_PROPERTY_TYPE(BoundaryValue,(0.0),"FluidBoundary",(App::PropertyType)(App::Prop_None),
|
||||||
"Scaler value for the specific value subtype, like pressure, velocity");
|
"Scaler value for the specific value subtype, like pressure, velocity magnitude");
|
||||||
|
/// Direction should be allowed to edit in property editor, if no edge is available in CAD model
|
||||||
ADD_PROPERTY_TYPE(Direction,(0),"FluidBoundary",(App::PropertyType)(App::Prop_None),
|
ADD_PROPERTY_TYPE(Direction,(0),"FluidBoundary",(App::PropertyType)(App::Prop_None),
|
||||||
"Element giving vector direction of constraint");
|
"Vector direction of BoundaryValue");
|
||||||
|
ADD_PROPERTY_TYPE(Reversed,(0),"FluidBoundary",(App::PropertyType)(App::Prop_ReadOnly|App::Prop_Output),
|
||||||
|
"To distinguish inlet (flow outward from solid) or outlet boundary condition");
|
||||||
|
/// turbulence model setup for boundary
|
||||||
ADD_PROPERTY_TYPE(TurbulenceSpecification,(1),"Turbulence",(App::PropertyType)(App::Prop_None),
|
ADD_PROPERTY_TYPE(TurbulenceSpecification,(1),"Turbulence",(App::PropertyType)(App::Prop_None),
|
||||||
"Turbulence boundary type");
|
"Method to specify burbulence magnitude on the boundary");
|
||||||
TurbulenceSpecification.setEnums(TurbulenceSpecifications); // Turbulence Specification Method
|
TurbulenceSpecification.setEnums(TurbulenceSpecifications); // Turbulence Specification Method
|
||||||
ADD_PROPERTY_TYPE(TurbulentIntensityValue,(0.0),"Turbulence",(App::PropertyType)(App::Prop_None),
|
ADD_PROPERTY_TYPE(TurbulentIntensityValue,(0.0),"Turbulence",(App::PropertyType)(App::Prop_None),
|
||||||
"Scaler value for Turbulent intensity etc");
|
"Scaler value for Turbulent intensity etc");
|
||||||
ADD_PROPERTY_TYPE(TurbulentLengthValue,(0.0),"Turbulence",(App::PropertyType)(App::Prop_None),
|
ADD_PROPERTY_TYPE(TurbulentLengthValue,(0.0),"Turbulence",(App::PropertyType)(App::Prop_None),
|
||||||
"Scaler value for Turbulent length scale, hydraulic diameter etc");
|
"Scaler value for Turbulent length scale, hydraulic diameter etc");
|
||||||
// consider the newly added Fem::ConstraintTemperature
|
/// consider using the newly added Fem::ConstraintTemperature, but it is too hard to export the settings
|
||||||
ADD_PROPERTY_TYPE(ThermalBoundaryType,(1),"HeatTransfer",(App::PropertyType)(App::Prop_None),
|
ADD_PROPERTY_TYPE(ThermalBoundaryType,(1),"HeatTransfer",(App::PropertyType)(App::Prop_None),
|
||||||
"Thermal boundary type");
|
"Thermal boundary type");
|
||||||
ThermalBoundaryType.setEnums(ThermalBoundaryTypes);
|
ThermalBoundaryType.setEnums(ThermalBoundaryTypes);
|
||||||
|
@ -98,14 +101,13 @@ ConstraintFluidBoundary::ConstraintFluidBoundary()
|
||||||
"Heat flux value for thermal boundary condition");
|
"Heat flux value for thermal boundary condition");
|
||||||
ADD_PROPERTY_TYPE(HTCoeffValue,(0.0),"HeatTransfer",(App::PropertyType)(App::Prop_None),
|
ADD_PROPERTY_TYPE(HTCoeffValue,(0.0),"HeatTransfer",(App::PropertyType)(App::Prop_None),
|
||||||
"Heat transfer coefficient for convective boundary condition");
|
"Heat transfer coefficient for convective boundary condition");
|
||||||
// geometry rendering related properties
|
/// geometry rendering related properties
|
||||||
ADD_PROPERTY(Reversed,(0));
|
|
||||||
ADD_PROPERTY_TYPE(Points,(Base::Vector3d()),"FluidBoundary",App::PropertyType(App::Prop_ReadOnly|App::Prop_Output),
|
ADD_PROPERTY_TYPE(Points,(Base::Vector3d()),"FluidBoundary",App::PropertyType(App::Prop_ReadOnly|App::Prop_Output),
|
||||||
"Points where arrows are drawn");
|
"Points where arrows are drawn");
|
||||||
|
Points.setValues(std::vector<Base::Vector3d>());
|
||||||
ADD_PROPERTY_TYPE(DirectionVector,(Base::Vector3d(0,0,1)),"FluidBoundary",App::PropertyType(App::Prop_ReadOnly|App::Prop_Output),
|
ADD_PROPERTY_TYPE(DirectionVector,(Base::Vector3d(0,0,1)),"FluidBoundary",App::PropertyType(App::Prop_ReadOnly|App::Prop_Output),
|
||||||
"Direction of arrows");
|
"Direction of arrows");
|
||||||
naturalDirectionVector = Base::Vector3d(0,0,0); // by default use the null vector to indication an invalid value
|
naturalDirectionVector = Base::Vector3d(0,0,0); // by default use the null vector to indication an invalid value
|
||||||
Points.setValues(std::vector<Base::Vector3d>());
|
|
||||||
// property from: FemConstraintFixed object
|
// property from: FemConstraintFixed object
|
||||||
ADD_PROPERTY_TYPE(Normals,(Base::Vector3d()),"FluidBoundary",App::PropertyType(App::Prop_ReadOnly|App::Prop_Output),
|
ADD_PROPERTY_TYPE(Normals,(Base::Vector3d()),"FluidBoundary",App::PropertyType(App::Prop_ReadOnly|App::Prop_Output),
|
||||||
"Normals where symbols are drawn");
|
"Normals where symbols are drawn");
|
||||||
|
@ -123,35 +125,29 @@ void ConstraintFluidBoundary::onChanged(const App::Property* prop)
|
||||||
// because the NormalDirection has not been calculated yet
|
// because the NormalDirection has not been calculated yet
|
||||||
Constraint::onChanged(prop);
|
Constraint::onChanged(prop);
|
||||||
|
|
||||||
if (prop == &BoundaryType)
|
if (prop == &BoundaryType) {
|
||||||
{
|
|
||||||
std::string boundaryType = BoundaryType.getValueAsString();
|
std::string boundaryType = BoundaryType.getValueAsString();
|
||||||
if (boundaryType == "wall")
|
if (boundaryType == "wall") {
|
||||||
{
|
|
||||||
Subtype.setEnums(WallSubtypes);
|
Subtype.setEnums(WallSubtypes);
|
||||||
}
|
}
|
||||||
else if (boundaryType == "interface")
|
else if (boundaryType == "interface") {
|
||||||
{
|
|
||||||
Subtype.setEnums(InterfaceSubtypes);
|
Subtype.setEnums(InterfaceSubtypes);
|
||||||
}
|
}
|
||||||
else if (boundaryType == "freestream")
|
else if (boundaryType == "freestream") {
|
||||||
{
|
|
||||||
Subtype.setEnums(FreestreamSubtypes);
|
Subtype.setEnums(FreestreamSubtypes);
|
||||||
}
|
}
|
||||||
else if(boundaryType == "inlet")
|
else if(boundaryType == "inlet") {
|
||||||
{
|
|
||||||
Subtype.setEnums(InletSubtypes);
|
Subtype.setEnums(InletSubtypes);
|
||||||
}
|
}
|
||||||
else if(boundaryType == "outlet")
|
else if(boundaryType == "outlet") {
|
||||||
{
|
|
||||||
Subtype.setEnums(OutletSubtypes);
|
Subtype.setEnums(OutletSubtypes);
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
Base::Console().Message(boundaryType.c_str());
|
Base::Console().Message(boundaryType.c_str());
|
||||||
Base::Console().Message(" Error: this boundaryType is not defined\n");
|
Base::Console().Message(" Error: this boundaryType is not defined\n");
|
||||||
}
|
}
|
||||||
//need to trigger ViewProvider::updateData() for redraw in 3D view
|
Subtype.setValue(1); // must set a default (0 or 1) as freestream has only 2 subtypes
|
||||||
|
// need to trigger ViewProvider::updateData() for redraw in 3D view after this method
|
||||||
}
|
}
|
||||||
|
|
||||||
if (prop == &References) {
|
if (prop == &References) {
|
||||||
|
|
|
@ -536,8 +536,8 @@ CmdFemConstraintFluidBoundary::CmdFemConstraintFluidBoundary()
|
||||||
{
|
{
|
||||||
sAppModule = "Fem";
|
sAppModule = "Fem";
|
||||||
sGroup = QT_TR_NOOP("Fem");
|
sGroup = QT_TR_NOOP("Fem");
|
||||||
sMenuText = QT_TR_NOOP("Create fluid condition condition");
|
sMenuText = QT_TR_NOOP("Create fluid boundary condition");
|
||||||
sToolTipText = QT_TR_NOOP("Create fluid boundary condition on face entity");
|
sToolTipText = QT_TR_NOOP("Create fluid boundary condition on face entity for Computional Fluid Dynamics");
|
||||||
sWhatsThis = "Fem_ConstraintFluidBoundary";
|
sWhatsThis = "Fem_ConstraintFluidBoundary";
|
||||||
sStatusTip = sToolTipText;
|
sStatusTip = sToolTipText;
|
||||||
sPixmap = "fem-constraint-fluid-boundary";
|
sPixmap = "fem-constraint-fluid-boundary";
|
||||||
|
@ -550,12 +550,12 @@ void CmdFemConstraintFluidBoundary::activated(int iMsg)
|
||||||
if(getConstraintPrerequisits(&Analysis))
|
if(getConstraintPrerequisits(&Analysis))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
std::string FeatName = getUniqueObjectName("ConstraintFluidBoundary");
|
std::string FeatName = getUniqueObjectName("FluidBoundary");
|
||||||
|
|
||||||
openCommand("Create fluid boundary condition on face geometry");
|
openCommand("Create fluid boundary condition");
|
||||||
doCommand(Doc,"App.activeDocument().addObject(\"Fem::ConstraintFluidBoundary\",\"%s\")",FeatName.c_str());
|
doCommand(Doc,"App.activeDocument().addObject(\"Fem::ConstraintFluidBoundary\",\"%s\")",FeatName.c_str());
|
||||||
doCommand(Doc,"App.activeDocument().%s.Scale = 1",FeatName.c_str()); //OvG: set initial scale to 1
|
doCommand(Doc,"App.activeDocument().%s.Scale = 1",FeatName.c_str()); //OvG: set initial scale to 1
|
||||||
//BoundaryValue is already the default value
|
//BoundaryValue is already the default value, zero is acceptable
|
||||||
doCommand(Doc,"App.activeDocument().%s.Member = App.activeDocument().%s.Member + [App.activeDocument().%s]",
|
doCommand(Doc,"App.activeDocument().%s.Member = App.activeDocument().%s.Member + [App.activeDocument().%s]",
|
||||||
Analysis->getNameInDocument(),Analysis->getNameInDocument(),FeatName.c_str());
|
Analysis->getNameInDocument(),Analysis->getNameInDocument(),FeatName.c_str());
|
||||||
|
|
||||||
|
|
|
@ -174,27 +174,27 @@ TaskFemConstraintFluidBoundary::TaskFemConstraintFluidBoundary(ViewProviderFemCo
|
||||||
if (pcSolver->getPropertyByName("HeatTransfering")) {
|
if (pcSolver->getPropertyByName("HeatTransfering")) {
|
||||||
pHeatTransfering = static_cast<App::PropertyBool*>(pcSolver->getPropertyByName("HeatTransfering"));
|
pHeatTransfering = static_cast<App::PropertyBool*>(pcSolver->getPropertyByName("HeatTransfering"));
|
||||||
if (pHeatTransfering->getValue()) {
|
if (pHeatTransfering->getValue()) {
|
||||||
ui->tabThermalBoundary->setVisible(true);
|
ui->tabThermalBoundary->setEnabled(true);
|
||||||
initComboBox(ui->comboThermalBoundaryType, pcConstraint->ThermalBoundaryType.getEnumVector(),
|
initComboBox(ui->comboThermalBoundaryType, pcConstraint->ThermalBoundaryType.getEnumVector(),
|
||||||
pcConstraint->ThermalBoundaryType.getValueAsString());
|
pcConstraint->ThermalBoundaryType.getValueAsString());
|
||||||
updateThermalBoundaryUI();
|
updateThermalBoundaryUI();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ui->tabThermalBoundary->setVisible(false);
|
ui->tabThermalBoundary->setEnabled(false);
|
||||||
//Base::Console().Message("retrieve solver property HeatTransfering as false\n");
|
//Base::Console().Message("retrieve solver property HeatTransfering as false\n");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ui->tabThermalBoundary->setVisible(false);
|
ui->tabThermalBoundary->setEnabled(false);
|
||||||
}
|
}
|
||||||
if (pcSolver->getPropertyByName("TurbulenceModel")) {
|
if (pcSolver->getPropertyByName("TurbulenceModel")) {
|
||||||
pTurbulenceModel = static_cast<App::PropertyEnumeration*>(pcSolver->getPropertyByName("TurbulenceModel"));
|
pTurbulenceModel = static_cast<App::PropertyEnumeration*>(pcSolver->getPropertyByName("TurbulenceModel"));
|
||||||
if (pTurbulenceModel->getValueAsString() == std::string("laminar")){
|
if (pTurbulenceModel->getValueAsString() == std::string("laminar")){
|
||||||
ui->tabTurbulenceBoundary->setVisible(false);
|
ui->tabTurbulenceBoundary->setEnabled(false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ui->tabTurbulenceBoundary->setVisible(true);
|
ui->tabTurbulenceBoundary->setEnabled(true);
|
||||||
ui->groupTurbulence->setTitle(Base::Tools::fromStdString(
|
ui->labelTurbulenceSpecification->setText(Base::Tools::fromStdString(
|
||||||
pTurbulenceModel->getValueAsString()));
|
pTurbulenceModel->getValueAsString()));
|
||||||
initComboBox(ui->comboTurbulenceSpecification, pcConstraint->TurbulenceSpecification.getEnumVector(),
|
initComboBox(ui->comboTurbulenceSpecification, pcConstraint->TurbulenceSpecification.getEnumVector(),
|
||||||
pcConstraint->TurbulenceSpecification.getValueAsString());
|
pcConstraint->TurbulenceSpecification.getValueAsString());
|
||||||
|
@ -202,7 +202,7 @@ TaskFemConstraintFluidBoundary::TaskFemConstraintFluidBoundary(ViewProviderFemCo
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
ui->tabTurbulenceBoundary->setVisible(false);
|
ui->tabTurbulenceBoundary->setEnabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -211,12 +211,13 @@ TaskFemConstraintFluidBoundary::TaskFemConstraintFluidBoundary(ViewProviderFemCo
|
||||||
ui->tabWidget->setTabText(0, tr("Basic"));
|
ui->tabWidget->setTabText(0, tr("Basic"));
|
||||||
ui->tabWidget->setTabText(1, tr("Turbulence"));
|
ui->tabWidget->setTabText(1, tr("Turbulence"));
|
||||||
ui->tabWidget->setTabText(2, tr("Thermal"));
|
ui->tabWidget->setTabText(2, tr("Thermal"));
|
||||||
|
ui->tabWidget->setCurrentIndex(0);
|
||||||
ui->labelHelpText->setText(tr("select boundary type, faces and set value"));
|
ui->labelHelpText->setText(tr("select boundary type, faces and set value"));
|
||||||
|
|
||||||
initComboBox(ui->comboBoundaryType, pcConstraint->BoundaryType.getEnumVector(),
|
initComboBox(ui->comboBoundaryType, pcConstraint->BoundaryType.getEnumVector(),
|
||||||
pcConstraint->BoundaryType.getValueAsString());
|
pcConstraint->BoundaryType.getValueAsString());
|
||||||
updateBoundaryTypeUI();
|
updateBoundaryTypeUI();
|
||||||
updateSubtypeUI();
|
//updateSubtypeUI(); // already called inside updateBoundaryTypeUI();
|
||||||
|
|
||||||
std::vector<App::DocumentObject*> Objects = pcConstraint->References.getValues();
|
std::vector<App::DocumentObject*> Objects = pcConstraint->References.getValues();
|
||||||
std::vector<std::string> SubElements = pcConstraint->References.getSubValues();
|
std::vector<std::string> SubElements = pcConstraint->References.getSubValues();
|
||||||
|
@ -224,7 +225,6 @@ TaskFemConstraintFluidBoundary::TaskFemConstraintFluidBoundary(ViewProviderFemCo
|
||||||
QString dir;
|
QString dir;
|
||||||
if (!dirStrings.empty())
|
if (!dirStrings.empty())
|
||||||
dir = makeRefText(pcConstraint->Direction.getValue(), dirStrings.front());
|
dir = makeRefText(pcConstraint->Direction.getValue(), dirStrings.front());
|
||||||
//bool reversed = pcConstraint->Reversed.getValue();
|
|
||||||
|
|
||||||
// Fill data into dialog elements
|
// Fill data into dialog elements
|
||||||
double f = pcConstraint->BoundaryValue.getValue();
|
double f = pcConstraint->BoundaryValue.getValue();
|
||||||
|
@ -237,8 +237,7 @@ TaskFemConstraintFluidBoundary::TaskFemConstraintFluidBoundary(ViewProviderFemCo
|
||||||
if (Objects.size() > 0)
|
if (Objects.size() > 0)
|
||||||
ui->listReferences->setCurrentRow(0, QItemSelectionModel::ClearAndSelect);
|
ui->listReferences->setCurrentRow(0, QItemSelectionModel::ClearAndSelect);
|
||||||
ui->lineDirection->setText(dir.isEmpty() ? tr("") : dir);
|
ui->lineDirection->setText(dir.isEmpty() ? tr("") : dir);
|
||||||
//ui->checkReverse->setChecked(reversed);
|
ui->checkReverse->setVisible(false); // no need such UI for fluid boundary, set by cpp code only
|
||||||
ui->checkReverse->setVisible(false); // no need such UI for fluid boundary
|
|
||||||
|
|
||||||
ui->listReferences->blockSignals(false);
|
ui->listReferences->blockSignals(false);
|
||||||
ui->buttonReference->blockSignals(false);
|
ui->buttonReference->blockSignals(false);
|
||||||
|
@ -255,44 +254,47 @@ void TaskFemConstraintFluidBoundary::updateBoundaryTypeUI()
|
||||||
std::string boundaryType = pcConstraint->BoundaryType.getValueAsString();
|
std::string boundaryType = pcConstraint->BoundaryType.getValueAsString();
|
||||||
|
|
||||||
// Update subtypes, any change here should be written back to FemConstraintFluidBoundary.cpp
|
// Update subtypes, any change here should be written back to FemConstraintFluidBoundary.cpp
|
||||||
if (boundaryType == "wall")
|
if (boundaryType == "wall") {
|
||||||
{
|
ui->labelBoundaryValue->setText(QString::fromUtf8("velocity (m/s)"));
|
||||||
ui->tabBasicBoundary->setVisible(false);
|
ui->tabBasicBoundary->setEnabled(false);
|
||||||
//todo: hidden only for fixed wall
|
|
||||||
pcConstraint->Subtype.setEnums(WallSubtypes);
|
pcConstraint->Subtype.setEnums(WallSubtypes);
|
||||||
}
|
}
|
||||||
else if (boundaryType == "interface")
|
else if (boundaryType == "interface") {
|
||||||
{
|
ui->labelBoundaryValue->setText(QString::fromUtf8("value not needed"));
|
||||||
ui->tabBasicBoundary->setVisible(false);
|
ui->tabBasicBoundary->setEnabled(false);
|
||||||
pcConstraint->Subtype.setEnums(InterfaceSubtypes);
|
pcConstraint->Subtype.setEnums(InterfaceSubtypes);
|
||||||
}
|
}
|
||||||
else if (boundaryType == "freestream")
|
else if (boundaryType == "freestream") {
|
||||||
{
|
ui->tabBasicBoundary->setEnabled(false);
|
||||||
|
ui->labelBoundaryValue->setText(QString::fromUtf8("value not needed"));
|
||||||
ui->tabBasicBoundary->setVisible(false);
|
ui->tabBasicBoundary->setVisible(false);
|
||||||
pcConstraint->Subtype.setEnums(FreestreamSubtypes);
|
pcConstraint->Subtype.setEnums(FreestreamSubtypes);
|
||||||
}
|
}
|
||||||
else if(boundaryType == "inlet")
|
else if (boundaryType == "inlet") {
|
||||||
{
|
ui->tabBasicBoundary->setEnabled(true);
|
||||||
ui->tabBasicBoundary->setVisible(true);
|
|
||||||
ui->labelSubtype->setText(QString::fromUtf8("valueType"));
|
|
||||||
pcConstraint->Subtype.setEnums(InletSubtypes);
|
pcConstraint->Subtype.setEnums(InletSubtypes);
|
||||||
|
ui->labelBoundaryValue->setText(QString::fromUtf8("Pressure [Pa]")); // default to pressure
|
||||||
pcConstraint->Reversed.setValue(true); // inlet must point into volume
|
pcConstraint->Reversed.setValue(true); // inlet must point into volume
|
||||||
}
|
}
|
||||||
else if(boundaryType == "outlet")
|
else if (boundaryType == "outlet") {
|
||||||
{
|
ui->tabBasicBoundary->setEnabled(true);
|
||||||
ui->tabBasicBoundary->setVisible(true);
|
|
||||||
ui->labelSubtype->setText(QString::fromUtf8("valueType"));
|
|
||||||
pcConstraint->Subtype.setEnums(OutletSubtypes);
|
pcConstraint->Subtype.setEnums(OutletSubtypes);
|
||||||
pcConstraint->Reversed.setValue(false); // inlet must point outside
|
ui->labelBoundaryValue->setText(QString::fromUtf8("Pressure [Pa]"));
|
||||||
|
pcConstraint->Reversed.setValue(false); // outlet must point outward
|
||||||
}
|
}
|
||||||
else
|
else {
|
||||||
{
|
|
||||||
Base::Console().Message(boundaryType.c_str());
|
Base::Console().Message(boundaryType.c_str());
|
||||||
Base::Console().Message("Error boundaryType is not defined\n");
|
Base::Console().Message("Error: Fluid boundary type is not defined\n");
|
||||||
}
|
}
|
||||||
|
//std::string subtypeLabel = boundaryType + std::string(" type");
|
||||||
|
//ui->labelSubtype->setText(QString::fromUtf8(subtypeLabel)); // too long to show in UI
|
||||||
|
|
||||||
|
//set subType to default one, the second one as in ConstraintFluidBoundary
|
||||||
|
ui->comboSubtype->setCurrentIndex(1); // each boundary type must have at least 2 subtypes
|
||||||
std::vector<std::string> subtypes = pcConstraint->Subtype.getEnumVector();
|
std::vector<std::string> subtypes = pcConstraint->Subtype.getEnumVector();
|
||||||
initComboBox(ui->comboSubtype, subtypes, pcConstraint->Subtype.getValueAsString());
|
initComboBox(ui->comboSubtype, subtypes, pcConstraint->Subtype.getValueAsString());
|
||||||
|
ui->tabWidget->setCurrentIndex(0);
|
||||||
|
updateSubtypeUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -302,26 +304,44 @@ void TaskFemConstraintFluidBoundary::updateSubtypeUI()
|
||||||
Fem::ConstraintFluidBoundary* pcConstraint = static_cast<Fem::ConstraintFluidBoundary*>(ConstraintView->getObject());
|
Fem::ConstraintFluidBoundary* pcConstraint = static_cast<Fem::ConstraintFluidBoundary*>(ConstraintView->getObject());
|
||||||
//* Subtype PropertyEnumeration is updated if BoundaryType is changed
|
//* Subtype PropertyEnumeration is updated if BoundaryType is changed
|
||||||
std::string boundaryType = pcConstraint->BoundaryType.getValueAsString();
|
std::string boundaryType = pcConstraint->BoundaryType.getValueAsString();
|
||||||
|
|
||||||
if(boundaryType == "inlet" || boundaryType == "outlet")
|
|
||||||
{
|
|
||||||
std::string subtype = Base::Tools::toStdString(ui->comboSubtype->currentText());
|
std::string subtype = Base::Tools::toStdString(ui->comboSubtype->currentText());
|
||||||
|
|
||||||
if (subtype == "totalPressure" || subtype == "staticPressure")
|
if (boundaryType == "inlet" || boundaryType == "outlet") {
|
||||||
{
|
if (subtype == "totalPressure" || subtype == "staticPressure"){
|
||||||
ui->labelBoundaryValue->setText(QString::fromUtf8("pressure [Pa]")); //* tr()
|
ui->labelBoundaryValue->setText(QString::fromUtf8("pressure [Pa]"));
|
||||||
|
ui->buttonDirection->setEnabled(false);
|
||||||
}
|
}
|
||||||
else if (subtype == "uniformVelocity")
|
else if (subtype == "uniformVelocity") {
|
||||||
{
|
|
||||||
ui->labelBoundaryValue->setText(QString::fromUtf8("velocity [m/s]"));
|
ui->labelBoundaryValue->setText(QString::fromUtf8("velocity [m/s]"));
|
||||||
|
ui->buttonDirection->setEnabled(true);
|
||||||
}
|
}
|
||||||
else if (subtype == "flowrate")
|
else if (subtype == "massFlowrate") {
|
||||||
{
|
|
||||||
ui->labelBoundaryValue->setText(QString::fromUtf8("flowrate [kg/s]"));
|
ui->labelBoundaryValue->setText(QString::fromUtf8("flowrate [kg/s]"));
|
||||||
|
ui->buttonDirection->setEnabled(false);
|
||||||
}
|
}
|
||||||
else
|
else if (subtype == "volumetricFlowRate") {
|
||||||
{
|
ui->labelBoundaryValue->setText(QString::fromUtf8("flowrate [m3/s]"));
|
||||||
|
ui->buttonDirection->setEnabled(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
ui->labelBoundaryValue->setText(QString::fromUtf8("unspecific"));
|
ui->labelBoundaryValue->setText(QString::fromUtf8("unspecific"));
|
||||||
|
ui->buttonDirection->setEnabled(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (boundaryType == "wall") {
|
||||||
|
if (subtype == "moving") {
|
||||||
|
ui->labelBoundaryValue->setText(QString::fromUtf8("moving speed (m/s)"));
|
||||||
|
ui->tabBasicBoundary->setEnabled(true);
|
||||||
|
ui->buttonDirection->setEnabled(false); // moving speed must be parallel to wall
|
||||||
|
}
|
||||||
|
else if (subtype == "slip") {
|
||||||
|
ui->labelBoundaryValue->setText(QString::fromUtf8("slip speed (m/s)"));
|
||||||
|
ui->tabBasicBoundary->setEnabled(true);
|
||||||
|
ui->buttonDirection->setEnabled(false);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ui->labelBoundaryValue->setText(QString::fromUtf8("unspecific"));
|
||||||
|
ui->tabBasicBoundary->setEnabled(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -350,7 +370,8 @@ void TaskFemConstraintFluidBoundary::updateSelectionUI()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** not needed for fluid boundary, as it must be Face
|
/** not needed for fluid boundary, as it must be Face for 3D part,
|
||||||
|
* Edge type boundary is needed for 2D CFD, but it is not supported yet
|
||||||
std::string ref = ui->listReferences->item(0)->text().toStdString();
|
std::string ref = ui->listReferences->item(0)->text().toStdString();
|
||||||
int pos = ref.find_last_of(":");
|
int pos = ref.find_last_of(":");
|
||||||
if (ref.substr(pos+1, 6) == "Vertex")
|
if (ref.substr(pos+1, 6) == "Vertex")
|
||||||
|
@ -450,8 +471,10 @@ void TaskFemConstraintFluidBoundary::onBoundaryTypeChanged(void)
|
||||||
Fem::ConstraintFluidBoundary* pcConstraint = static_cast<Fem::ConstraintFluidBoundary*>(ConstraintView->getObject());
|
Fem::ConstraintFluidBoundary* pcConstraint = static_cast<Fem::ConstraintFluidBoundary*>(ConstraintView->getObject());
|
||||||
pcConstraint->BoundaryType.setValue(ui->comboBoundaryType->currentIndex());
|
pcConstraint->BoundaryType.setValue(ui->comboBoundaryType->currentIndex());
|
||||||
updateBoundaryTypeUI();
|
updateBoundaryTypeUI();
|
||||||
//ConstraintView->updateData(&pcConstraint->BoundaryType); //force a 3D redraw
|
ConstraintView->updateData(&pcConstraint->BoundaryType); //force a 3D redraw
|
||||||
//however, there is a bug of cube normal is not correct in redraw, close task panel , redraw is correct
|
// bug: cube normal is not correct in redraw, redraw is correct only after close task panel
|
||||||
|
// see note of If ConstraintView->updateData(): the arrows are not oriented correctly initially
|
||||||
|
// because the NormalDirection has not been calculated yet
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskFemConstraintFluidBoundary::onSubtypeChanged(void)
|
void TaskFemConstraintFluidBoundary::onSubtypeChanged(void)
|
||||||
|
@ -461,7 +484,10 @@ void TaskFemConstraintFluidBoundary::onSubtypeChanged(void)
|
||||||
updateSubtypeUI();
|
updateSubtypeUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TaskFemConstraintFluidBoundary::onBoundaryValueChanged(double)
|
||||||
|
{
|
||||||
|
//left empty for future extension
|
||||||
|
}
|
||||||
void TaskFemConstraintFluidBoundary::onTurbulenceSpecificationChanged(void)
|
void TaskFemConstraintFluidBoundary::onTurbulenceSpecificationChanged(void)
|
||||||
{
|
{
|
||||||
Fem::ConstraintFluidBoundary* pcConstraint = static_cast<Fem::ConstraintFluidBoundary*>(ConstraintView->getObject());
|
Fem::ConstraintFluidBoundary* pcConstraint = static_cast<Fem::ConstraintFluidBoundary*>(ConstraintView->getObject());
|
||||||
|
|
|
@ -75,11 +75,12 @@ public:
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void onBoundaryTypeChanged(void);
|
void onBoundaryTypeChanged(void);
|
||||||
void onSubtypeChanged(void);
|
void onSubtypeChanged(void);
|
||||||
|
void onBoundaryValueChanged(double);
|
||||||
void onTurbulenceSpecificationChanged(void);
|
void onTurbulenceSpecificationChanged(void);
|
||||||
void onThermalBoundaryTypeChanged(void);
|
void onThermalBoundaryTypeChanged(void);
|
||||||
void onReferenceDeleted(void);
|
void onReferenceDeleted(void);
|
||||||
void onButtonDirection(const bool pressed = true);
|
void onButtonDirection(const bool pressed = true);
|
||||||
void onCheckReverse(bool);
|
void onCheckReverse(bool); // consider remove this slot as the UI is hiden
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void changeEvent(QEvent *e);
|
virtual void changeEvent(QEvent *e);
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>280</width>
|
<width>292</width>
|
||||||
<height>475</height>
|
<height>477</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
|
@ -15,7 +15,7 @@
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QFormLayout" name="formLayout_2">
|
<layout class="QFormLayout" name="layoutBoundaryType">
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="labelBoundaryType">
|
<widget class="QLabel" name="labelBoundaryType">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
|
@ -96,7 +96,7 @@
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="labelHelpText">
|
<widget class="QLabel" name="labelHelpText">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>HelpText</string>
|
<string>Help text</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wordWrap">
|
<property name="wordWrap">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="tabBasicBoundary">
|
<widget class="QWidget" name="tabBasicBoundary">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
|
@ -118,40 +118,15 @@
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Tab 1</string>
|
<string>Tab 1</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<widget class="QCheckBox" name="checkReverse">
|
<layout class="QVBoxLayout" name="verticalLayout_3">
|
||||||
<property name="enabled">
|
<item>
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>90</y>
|
|
||||||
<width>148</width>
|
|
||||||
<height>22</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Reverse direction</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
<widget class="QWidget" name="layoutWidget">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>10</x>
|
|
||||||
<y>10</y>
|
|
||||||
<width>241</width>
|
|
||||||
<height>71</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<layout class="QFormLayout" name="formLayout_3">
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="labelBoundaryValue">
|
<widget class="QLabel" name="labelBoundaryValue">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>100</width>
|
<width>50</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
@ -160,11 +135,41 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="layoutBoundaryValue">
|
||||||
|
<item>
|
||||||
|
<spacer name="horizontalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeType">
|
||||||
|
<enum>QSizePolicy::Expanding</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>40</width>
|
||||||
|
<height>20</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
<widget class="QDoubleSpinBox" name="spinBoundaryValue">
|
<widget class="QDoubleSpinBox" name="spinBoundaryValue">
|
||||||
<property name="enabled">
|
<property name="enabled">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<double>-99999.000000000000000</double>
|
<double>-99999.000000000000000</double>
|
||||||
</property>
|
</property>
|
||||||
|
@ -176,17 +181,33 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<layout class="QHBoxLayout" name="layoutDirection">
|
||||||
|
<item>
|
||||||
<widget class="QPushButton" name="buttonDirection">
|
<widget class="QPushButton" name="buttonDirection">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Direction </string>
|
<string>Direction </string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item>
|
||||||
<widget class="QLineEdit" name="lineDirection">
|
<widget class="QLineEdit" name="lineDirection">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
|
@ -197,6 +218,12 @@
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>16777215</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
<property name="baseSize">
|
<property name="baseSize">
|
||||||
<size>
|
<size>
|
||||||
<width>0</width>
|
<width>0</width>
|
||||||
|
@ -206,46 +233,56 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="checkReverse">
|
||||||
|
<property name="enabled">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>160</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>200</width>
|
||||||
|
<height>16777215</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Reverse direction</string>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="verticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>20</width>
|
||||||
|
<height>7</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="tabTurbulenceBoundary">
|
<widget class="QWidget" name="tabTurbulenceBoundary">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>Page</string>
|
<string>Page</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<widget class="QGroupBox" name="groupTurbulence">
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<property name="enabled">
|
<item>
|
||||||
<bool>true</bool>
|
<widget class="QLabel" name="labelTurbulenceSpecification">
|
||||||
</property>
|
<property name="text">
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>261</width>
|
|
||||||
<height>151</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="sizePolicy">
|
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
|
||||||
<horstretch>0</horstretch>
|
|
||||||
<verstretch>0</verstretch>
|
|
||||||
</sizepolicy>
|
|
||||||
</property>
|
|
||||||
<property name="minimumSize">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>100</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="title">
|
|
||||||
<string>Turbulence specification</string>
|
<string>Turbulence specification</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="checkable">
|
</widget>
|
||||||
<bool>false</bool>
|
</item>
|
||||||
</property>
|
|
||||||
<property name="checked">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QComboBox" name="comboTurbulenceSpecification">
|
<widget class="QComboBox" name="comboTurbulenceSpecification">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
|
@ -254,6 +291,9 @@
|
||||||
<verstretch>0</verstretch>
|
<verstretch>0</verstretch>
|
||||||
</sizepolicy>
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="frame">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
@ -266,7 +306,20 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QDoubleSpinBox" name="spinTurbulentIntensityValue"/>
|
<widget class="QDoubleSpinBox" name="spinTurbulentIntensityValue">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
@ -280,14 +333,24 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QDoubleSpinBox" name="spinTurbulentLengthValue"/>
|
<widget class="QDoubleSpinBox" name="spinTurbulentLengthValue">
|
||||||
</item>
|
<property name="sizePolicy">
|
||||||
</layout>
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
</item>
|
<horstretch>0</horstretch>
|
||||||
</layout>
|
<verstretch>0</verstretch>
|
||||||
<zorder>comboTurbulenceSpecification</zorder>
|
</sizepolicy>
|
||||||
<zorder></zorder>
|
</property>
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>80</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="tabThermalBoundary">
|
<widget class="QWidget" name="tabThermalBoundary">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
|
@ -296,6 +359,9 @@
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_5">
|
<layout class="QVBoxLayout" name="verticalLayout_5">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QFormLayout" name="formLayout">
|
<layout class="QFormLayout" name="formLayout">
|
||||||
|
<property name="fieldGrowthPolicy">
|
||||||
|
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
|
||||||
|
</property>
|
||||||
<item row="0" column="0">
|
<item row="0" column="0">
|
||||||
<widget class="QLabel" name="labelThermalBoundaryType">
|
<widget class="QLabel" name="labelThermalBoundaryType">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -304,7 +370,14 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="QComboBox" name="comboThermalBoundaryType"/>
|
<widget class="QComboBox" name="comboThermalBoundaryType">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="labelTemperature">
|
<widget class="QLabel" name="labelTemperature">
|
||||||
|
@ -315,6 +388,12 @@
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="1">
|
<item row="1" column="1">
|
||||||
<widget class="QDoubleSpinBox" name="spinTemperatureValue">
|
<widget class="QDoubleSpinBox" name="spinTemperatureValue">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<double>-273.149999999999977</double>
|
<double>-273.149999999999977</double>
|
||||||
</property>
|
</property>
|
||||||
|
@ -330,8 +409,21 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="3" column="0">
|
||||||
<widget class="QDoubleSpinBox" name="spinHeatFluxValue">
|
<widget class="QLabel" name="labelHTCeoff">
|
||||||
|
<property name="text">
|
||||||
|
<string>HT coeff</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item row="3" column="1">
|
||||||
|
<widget class="QDoubleSpinBox" name="spinHTCoeffValue">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<double>0.000000000000000</double>
|
<double>0.000000000000000</double>
|
||||||
</property>
|
</property>
|
||||||
|
@ -343,15 +435,14 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0">
|
<item row="2" column="1">
|
||||||
<widget class="QLabel" name="labelHTCeoff">
|
<widget class="QDoubleSpinBox" name="spinHeatFluxValue">
|
||||||
<property name="text">
|
<property name="sizePolicy">
|
||||||
<string>HT coeff</string>
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QDoubleSpinBox" name="spinHTCoeffValue">
|
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<double>0.000000000000000</double>
|
<double>0.000000000000000</double>
|
||||||
</property>
|
</property>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user