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