def main(): ''' Die Parameter werden beim Aufruf aus dem config-Files abgerufen usage: >> miniTopSim.py <ConfigFiles...> ''' if(len(argv) > 1 ): configFileNames = argv[1:] else: stderr.write('Error: usage: '+ argv[0] + ' <filename.cfg>') stderr.flush() exit(2) # Read the parameter file par.init() print('Configuration files:\n{0}\n'.format(configFileNames)) for configFiles in configFileNames: par.read(configFiles) surface = Surface() with open(surface.get_surfaceFile(), "w") as file: #initial values surface.write(file, 0) total_time = par.TOTAL_TIME dt = par.TIME_STEP time = 1 #np.arange(initialTime, total_time + dt, dt) while time <= total_time: surface.process(dt) surface.write(file, time * dt) time += dt plot = Plot(surface.get_surfaceFile()) plot.plot()
def run(self,argv): IOParameter.init() if len(argv) > 1: filename = argv[1] IOParameter.read(filename) database = self.readDatabase() self.drawGUI(database)
def main(): ''' Die Parameter werden beim Aufruf aus dem config-File abgerufen usage: >> miniTopSim.py <ConfigFile> ''' if(len(sys.argv) == 2 ): configFileName = str(sys.argv[1]) else: sys.stderr.write('Error: usage: '+ sys.argv[0] + ' <filename.cfg>') sys.stderr.flush() exit(2) # Read the parameter file par.init() par.read(configFileName) # Listen xvals und yvals werden erzeugt xvals,yvals = init_values() with open(par.INITIAL_SURFACE_FILE,"w") as file: #Werte zum Zeitpunkt t=0 write(file, 0 , xvals,yvals) # Start time measurement startTime = time.clock() SurfaceProcess(xvals,yvals,file) # Stop time measurement and print it endTime = time.clock() print("Calculation Time: " + str(endTime - startTime) + " seconds") plot.plot(par.INITIAL_SURFACE_FILE)
def main(): ''' Es handelt sich um Isotropes Aetzen einer Oberflaeche entlang der Winkelsymmetrale (1nm/s): Es werden zwei Parameter ueber die command line uebergegeben, die Zeit t ueber die geaetzt wird und die Zeitschrittweite dt. usage: >> miniTopSim.py t dt Außerdem werden die Koordinaten ins eine Datei geschrieben in dem Format: surface: time, npoints, x-positions y-positions x[0] y[0] x[1] y[1] ... x[npoints-1] y[npoints-1] ''' # Falls weniger oder mehr als zwei parameter uebergegeben werden, # kommt eine Fehlermeldung die Die richtige Eingabe deutet if (len(sys.argv) == 2): configFileName = str(sys.argv[1]) else: sys.stderr.write('Error: usage: ' + sys.argv[0] + ' <filename.cfg>') sys.stderr.flush() exit(2) # Read the parameter file par.init() par.read(configFileName) # Listen xvals und yvals werden erzeugt xvals, yvals = init_values(par.XMIN, par.XMAX, par.DELTA_X) # Die Oberflaeche zum Zeipunkt t=0 wird geplotet # plotten(xvals,yvals,'bo-','Anfangszeitpunkt') # Es wird ein File erzeugt mit der Name 'basic_t_dt.srf', wobei t und dt durch # die Tatsaechliche Zeit und Zeitschrittweite ersetz werden. Außerdem wird in die Datei # die Oberflaeche zum Zeitpunkt t=0 reingeschrieben (xvals und yvals in spalten) file = open('basic_{0}_{1}.srf'.format(par.TOTAL_TIME, par.TIME_STEP), "w") write(file, 0, xvals, yvals) aetzen(file, par.TOTAL_TIME, par.TIME_STEP, xvals, yvals) file.close() # Die Oberflaeche zum Endzeitpunkt wird geplotet # plotten(xvals,yvals,'ro-','Endzeitpunkt') fname = 'basic_{0}_{1}.srf'.format(par.TOTAL_TIME, par.TIME_STEP) plot.plot(fname)
def main(): ''' Es handelt sich um Isotropes Aetzen einer Oberflaeche entlang der Winkelsymmetrale (1nm/s): Es werden zwei Parameter ueber die command line uebergegeben, die Zeit t ueber die geaetzt wird und die Zeitschrittweite dt. usage: >> miniTopSim.py t dt Außerdem werden die Koordinaten ins eine Datei geschrieben in dem Format: surface: time, npoints, x-positions y-positions x[0] y[0] x[1] y[1] ... x[npoints-1] y[npoints-1] ''' # Falls weniger oder mehr als zwei parameter uebergegeben werden, # kommt eine Fehlermeldung die Die richtige Eingabe deutet if(len(sys.argv) == 2 ): configFileName = str(sys.argv[1]) else: sys.stderr.write('Error: usage: '+ sys.argv[0] + ' <filename.cfg>') sys.stderr.flush() exit(2) # Read the parameter file par.init() par.read(configFileName) # Listen xvals und yvals werden erzeugt xvals,yvals = init_values(par.XMIN, par.XMAX, par.DELTA_X) # Die Oberflaeche zum Zeipunkt t=0 wird geplotet # plotten(xvals,yvals,'bo-','Anfangszeitpunkt') # Es wird ein File erzeugt mit der Name 'basic_t_dt.srf', wobei t und dt durch # die Tatsaechliche Zeit und Zeitschrittweite ersetz werden. Außerdem wird in die Datei # die Oberflaeche zum Zeitpunkt t=0 reingeschrieben (xvals und yvals in spalten) file = open('basic_{0}_{1}.srf'.format(par.TOTAL_TIME, par.TIME_STEP),"w") write(file, 0 , xvals,yvals) aetzen(file, par.TOTAL_TIME, par.TIME_STEP, xvals, yvals) file.close() # Die Oberflaeche zum Endzeitpunkt wird geplotet # plotten(xvals,yvals,'ro-','Endzeitpunkt') fname = 'basic_{0}_{1}.srf'.format(par.TOTAL_TIME, par.TIME_STEP) plot.plot(fname)
def test_surface(): dir_path = os.path.dirname(os.path.abspath(__file__)) par.init() par.read(os.path.join(dir_path, 'test_surface.cfg')) surface = Surface() print('PRESS ANY KEY TO EXIT THE PLOT') for t in arange(1, par.TOTAL_TIME + par.TIME_STEP, par.TIME_STEP): surface.process(par.TIME_STEP) plt.title('Test Surface{0}'.format(t)) plt.plot(surface.xvals, surface.yvals, '.r-') plt.xlabel('x') plt.ylabel('y') plt.connect('key_press_event', event) plt.show()
def init(): loadparameterfile.init() parameterdict = loadparameterfile.toDict() #modify namespace to use global variables global BEAM_CURRENT_DENSITY global FWHM global SCAN_WIDTH global BEAM_CURRENT global BEAM_CENTER global ERF_BEAM_WIDTH global BEAM_TYPE BEAM_CURRENT_DENSITY = float(parameterdict['beam_current_density']) FWHM = float(parameterdict['fwhm']) SCAN_WIDTH = float(parameterdict['scan_width']) BEAM_CURRENT = float(parameterdict['beam_current']) BEAM_CENTER = float(parameterdict['beam_center']) ERF_BEAM_WIDTH = float(parameterdict['erf_beam_width']) BEAM_TYPE = str(parameterdict['beam_type'])