Exemple #1
0
for thickness in thicknesses:
    model.material[0][0] = thickness
    #other examples -
    #model.Fapp = ... #equivalent to Fapplied
    #model.subnumber_e = ...
    #model.dx = gridfactor*1e-9
    #database.materialproperty['GaAs']['epsilonStatic']= ...
    
    model.create_structure_arrays() # update the instance's internals
    
    # Perform the calculation
    result= aestimo.Poisson_Schrodinger(model)
    
    results.append(result) #all the results can be stored for further analysis. 
    
    # Set output directory 
    # aestimo_numpy reads the output directory from the config module, so
    config.output_directory = os.path.join(output_directory,'dz0_%dnm' %thickness)

    # Write the simulation results in files
    aestimo.save_and_plot(result,model)
    
    #Plot QW representation
    #aestimo.QWplot(result)#,figno=None) # an alternative to save_and_plot function
                                            # which only plots the QW diagram and doesn't
                                            # save anything.

print("Simulation is finished. All files are closed.")
print("Please control the related files.")
 
 logger = aestimo.logger
 
 # Initialise structure class
 model = aestimo.StructureFrom(vars(),database)
 
 if True: #recalculate QW states
     # Perform the calculation
     result = aestimo.Poisson_Schrodinger(model)
     
     time4 = time.time() #timing audit
     logger.info("total running time (inc. loading libraries) %g s",(time4 - aestimo.time0))
     logger.info("total running time (exc. loading libraries) %g s",(time4 - aestimo.time1))
     
     # Write the simulation results in files
     fig1,fig2,fig3 = aestimo.save_and_plot(result,model)
     logger.info("Simulation is finished.")
 else: #load previously calculated results from output directory
     result = aestimo.load_results()
 
 #Set thickness of effective medium
 Lperiod = sum([layer[0] for layer in model.material])*1e-9 #m
 
 # set dielectric constants
 case = 1
 if case==1: #scalar dielectric constants
     eps_b = 12.90
     eps_z = 12.90
 
 elif case==2: #z-dependent dielectric constants
     eps_b = 10.364
 
 logger = aestimo.logger
 
 # Initialise structure class
 model = aestimo.StructureFrom(vars(),database)
 
 if True: #recalculate QW states
     # Perform the calculation
     result = aestimo.Poisson_Schrodinger(model)
     
     time4 = time.time() #timing audit
     logger.info("total running time (inc. loading libraries) %g s",(time4 - aestimo.time0))
     logger.info("total running time (exc. loading libraries) %g s",(time4 - aestimo.time1))
     
     # Write the simulation results in files
     aestimo.save_and_plot(result,model)
     logger.info("Simulation is finished.")
 else: #load previously calculated results from output directory
     result = aestimo.load_results()
 
 #Set thickness of effective medium
 Lperiod = sum([layer[0] for layer in model.material])*1e-9 #m
 
 # set dielectric constants
 case = 1
 if case==1: #scalar dielectric constants
     eps_b = 12.90
     eps_z = 12.90
 
 elif case==2: #z-dependent dielectric constants
     eps_b = 10.364