Wed 28 Aug 21:38:52 CEST 2024
This commit is contained in:
parent
abeaa7d603
commit
247b052490
124
src/SimNDT/gui/advancedSimulationSetupController.py
Normal file
124
src/SimNDT/gui/advancedSimulationSetupController.py
Normal file
|
@ -0,0 +1,124 @@
|
|||
__author__ = 'Miguel Molero'
|
||||
|
||||
|
||||
import os, sys
|
||||
import numpy as np
|
||||
from PySide.QtCore import *
|
||||
from PySide.QtGui import *
|
||||
|
||||
from SimNDT.gui.ui_advancedsimulationsetup import Ui_advancedSimulationSetupDialog
|
||||
from SimNDT.gui.Warnings import WarningParms
|
||||
import SimNDT.gui.constants as c
|
||||
|
||||
from SimNDT.core.simulation import Simulation
|
||||
|
||||
|
||||
class AdvancedSimulationSetup(QDialog, Ui_advancedSimulationSetupDialog):
|
||||
|
||||
def __init__(self, SimTime, MaxFreq, Scenario, Materials, Transducers, Simulation, parent=None):
|
||||
super(AdvancedSimulationSetup, self).__init__(parent)
|
||||
self.setupUi(self)
|
||||
|
||||
self.previewSimulationSetupPushButton.pressed.connect(self.preview)
|
||||
self.setMaximumHeight(140)
|
||||
self.dtLabel.setText("dt (%ss)"%c.MU)
|
||||
self.previewFrame.setVisible(False)
|
||||
|
||||
self.SimTime = SimTime
|
||||
self.MaxFreq = MaxFreq
|
||||
self.Scenario = Scenario
|
||||
self.Materials = Materials
|
||||
self.Transducers = Transducers
|
||||
self.Simulation = Simulation
|
||||
|
||||
self.dx = None
|
||||
self.dt = None
|
||||
|
||||
if self.Simulation is not None:
|
||||
|
||||
timeScale = self.Simulation.TimeScale
|
||||
pointCycle = self.Simulation.PointCycle
|
||||
|
||||
self.timeScaleDoubleSpinBox.setValue(timeScale)
|
||||
self.pointPerCycleSpinBox.setValue(int(pointCycle))
|
||||
|
||||
|
||||
|
||||
def preview(self):
|
||||
|
||||
self.previewFrame.setVisible(True)
|
||||
self.setMinimumHeight(300)
|
||||
|
||||
|
||||
try:
|
||||
timeScale = float (self.timeScaleDoubleSpinBox.value())
|
||||
except:
|
||||
msgBox = WarningParms("Please give correctly the Time Scale")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
try:
|
||||
pointCycle = int(self.pointPerCycleSpinBox.value())
|
||||
except:
|
||||
msgBox = WarningParms("Please give correctly the Points Per Cycles")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
|
||||
simulation = Simulation(timeScale, self.MaxFreq, pointCycle, self.SimTime, Order=2)
|
||||
|
||||
try:
|
||||
simulation.job_parameters(self.Materials, self.Transducers[0])
|
||||
except:
|
||||
msgBox = WarningParms("Please give correctly the Material Properties")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
|
||||
simulation.create_numericalModel(self.Scenario)
|
||||
|
||||
self.dxLineEdit.setText("%0.4f"% (simulation.dx * 1e3) )
|
||||
self.dtLineEdit.setText("%0.4f"% (simulation.dt * 1e6) )
|
||||
|
||||
M, N = np.shape(self.Scenario.Iabs)
|
||||
MM, NN = np.shape(simulation.Im)
|
||||
|
||||
self.geometricSizeLabel.setText("%s x %s"%(M,N))
|
||||
self.numericalSizeLabel.setText("%s x %s"%(MM,NN))
|
||||
|
||||
|
||||
|
||||
|
||||
def accept(self):
|
||||
|
||||
try:
|
||||
self.TimeScale = float (self.timeScaleDoubleSpinBox.value())
|
||||
except:
|
||||
msgBox = WarningParms("Please give correctly the Time Scale")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
try:
|
||||
self.PointCycle = int(self.pointPerCycleSpinBox.value())
|
||||
except:
|
||||
msgBox = WarningParms("Please give correctly the Points Per Cycles")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
try:
|
||||
self.dx = float ( self.dxLineEdit.text() ) * 1e-3
|
||||
except:
|
||||
msgBox = WarningParms("Please give correctly dx !!!!")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
|
||||
try:
|
||||
self.dt = float ( self.dtLineEdit.text() ) * 1e-6
|
||||
except:
|
||||
msgBox = WarningParms("Please give correctly dt !!!!")
|
||||
if msgBox.exec_():
|
||||
return
|
||||
|
||||
|
||||
QDialog.accept(self)
|
Loading…
Reference in New Issue
Block a user