def checkFields(self): ShadowGui.checkPositiveNumber(self.p, "Distance Source - KB center") ShadowGui.checkPositiveNumber(self.q, "Distance KB center - Image plane") ShadowGui.checkPositiveNumber(self.separation, "Separation between the Mirrors") ShadowGui.checkStrictlyPositiveNumber(self.photon_energy_ev, "Photon Energy") ShadowGui.checkFile(self.reflectivity_file) self.crystal_1_box.checkFields() self.crystal_2_box.checkFields()
def checkFields(self): ShadowGui.checkPositiveNumber(self.grazing_angles_mrad, "Grazing Angle") if self.has_finite_dimensions == 0: ShadowGui.checkStrictlyPositiveNumber(self.mirror_width, "Mirror Width") ShadowGui.checkStrictlyPositiveNumber(self.mirror_length, "Mirror Length") if self.reflectivity_kind != 0: ShadowGui.checkFile(self.reflectivity_files) if self.has_surface_error == 1: ShadowGui.checkFile(self.surface_error_files)
def runSimulation(self): try: self.error(self.error_id) self.setStatusMessage("") self.progressBarInit() if not self.beamline_parameters is None: driver = ShadowDriver() sys.stdout = EmittingStream(textWritten=self.writeStdOut) self.setStatusMessage("Running SHADOW simulation") self.progressBarSet(50) ########################################### # TODO: TO BE ADDED JUST IN CASE OF BROKEN # ENVIRONMENT: MUST BE FOUND A PROPER WAY # TO TEST SHADOW self.fixWeirdShadowBug() ########################################### ShadowGui.checkStrictlyPositiveNumber(self.beamline_parameters._energy_min, "Energy Min") ShadowGui.checkStrictlyPositiveNumber(self.beamline_parameters._energy_max, "Energy Max") shadow_beam = driver.calculate_radiation(self.beamline_parameters._electron_beam, self.beamline_parameters._magnetic_structure, self.beamline_parameters._beamline, self.beamline_parameters._energy_min, self.beamline_parameters._energy_max) self.setStatusMessage("Plotting Results") self.plot_results(shadow_beam) self.setStatusMessage("") self.send("Beam", shadow_beam) except Exception as exception: QtGui.QMessageBox.critical(self, "QMessageBox.critical()", str(exception), QtGui.QMessageBox.Ok) self.error_id = self.error_id + 1 self.error(self.error_id, "Exception occurred: " + str(exception)) self.progressBarFinished()
def runSimulation(self): try: self.error(self.error_id) self.setStatusMessage("") self.progressBarInit() if not self.beamline_parameters is None: driver = SRWDriver() self.setStatusMessage("Running SRW simulation") self.progressBarSet(50) ShadowGui.checkStrictlyPositiveNumber(self.beamline_parameters._energy_min, "Energy Min") ShadowGui.checkStrictlyPositiveNumber(self.beamline_parameters._energy_max, "Energy Max") srw_wavefront = driver.calculate_radiation(self.beamline_parameters._electron_beam, self.beamline_parameters._magnetic_structure, self.beamline_parameters._beamline, self.beamline_parameters._energy_min, self.beamline_parameters._energy_max) intensity, dim_x, dim_y = driver.calculate_intensity(srw_wavefront) self.setStatusMessage("Calling plots with array shape: ',intensity.shape,'...") t0_main = time.time() plt.pcolormesh(dim_x,dim_y,intensity.transpose()) plt.title("Real space for infrared example") plt.colorbar() self.setStatusMessage("done in " + str(round(time.time() - t0_main)) + " s") plt.show() self.setStatusMessage("") except Exception as exception: QtGui.QMessageBox.critical(self, "QMessageBox.critical()", str(exception), QtGui.QMessageBox.Ok) self.error_id = self.error_id + 1 self.error(self.error_id, "Exception occurred: " + str(exception)) #raise exception self.progressBarFinished()
def check_fields(self): self.number_of_points_x = ShadowGui.checkStrictlyPositiveNumber(self.number_of_points_x, "Number of Points X") self.number_of_points_y = ShadowGui.checkStrictlyPositiveNumber(self.number_of_points_y, "Number of Points Y") self.dimension_x = ShadowGui.checkStrictlyPositiveNumber(self.dimension_x, "Dimension X") self.dimension_y = ShadowGui.checkStrictlyPositiveNumber(self.dimension_y, "Dimension Y") self.estimated_slope_error = ShadowGui.checkPositiveNumber(self.estimated_slope_error, "Estimated slope error") self.montecarlo_seed = ShadowGui.checkPositiveNumber(self.montecarlo_seed, "Monte Carlo initial seed") self.harmonic_maximum_index = ShadowGui.checkPositiveNumber(self.harmonic_maximum_index, "Harmonic Maximum Index") if not self.waviness_file_name is None: self.waviness_file_name = self.waviness_file_name.strip() if self.waviness_file_name == "": raise Exception("Output File Name missing") else: raise Exception("Output File Name missing")
def checkFields(self): ShadowGui.checkPositiveNumber(self.nlenses, "Number of lenses") ShadowGui.checkPositiveNumber(self.slots_empty, "Number of empty slots") ShadowGui.checkPositiveNumber(self.thickness, "Piling thickness") ShadowGui.checkPositiveNumber(self.p, "P") ShadowGui.checkPositiveNumber(self.q, "Q") if self.has_finite_diameter: ShadowGui.checkStrictlyPositiveNumber(self.diameter, "Diameter") if self.ri_calculation_mode == 1: ShadowGui.checkFile(self.prerefl_file) else: ShadowGui.checkStrictlyPositiveNumber(self.refraction_index, "Refraction Index") ShadowGui.checkStrictlyPositiveNumber(self.attenuation_coefficient, "Attenuation Coefficient") ShadowGui.checkStrictlyPositiveNumber(self.radius, "Radius") ShadowGui.checkPositiveNumber(self.interthickness, "Lens Thickness")
def checkFields(self): if self.has_finite_dimensions == 0: ShadowGui.checkStrictlyPositiveNumber(self.mirror_width, "Mirror Width") ShadowGui.checkStrictlyPositiveNumber(self.mirror_length, "Mirror Length")