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