Package reflectometry :: Package model3d :: Module Modeling_IsGSAXS_Born

Source Code for Module reflectometry.model3d.Modeling_IsGSAXS_Born

 1  #%Christopher Metting
 
 2  #%Starting Date: 4/14/2008
 
 3  #%Re-evaluation of the formula from scratch. Paul's redo
 
 4  
 
 5  import par_form,par_structure,plotting,BornModel,GSAXS_orthaganal 
 6  
 
 7  from numpy import array, sum, linspace, zeros, sqrt, exp, log10,shape,size,min,max,pi 
 8  
 
 9  
 
10  
 
11  #%*************************Lattice Description***************************
 
12  #%Required known information for features made of one materials
 
13  
 
14  struc = par_structure.Rectilinear(Dx = 100000,nx = 1000) 
15  
 
16  #%*************************Feature Description***************************
 
17  
 
18  type = 'parallelepiped' 
19  depth = array([6000,3000],'D') 
20  SLD = array([4.50684e-6,2.50684e-6],'D') 
21  depth,SLD = depth[0:size(depth)],SLD[0:size(depth)] 
22  
 
23  
 
24  feature_form = par_form.Parallelapiped(50000,50000,depth,SLD) 
25  #%sample rotation (rotation)
 
26  phi = 0 
27  
 
28  
 
29  #%%*************************Substrate Description****************************
 
30  thickness = array([100],'D') 
31  SLD_sub = array([3.4673e-6],'D') 
32  thickness,SLD_sub = thickness[0:size(thickness)],SLD_sub[0:size(thickness)] 
33  
 
34  substrate_form = par_form.Substrate(struc.Dx,struc.Dy,thickness,SLD_sub) 
35  
 
36  
 
37  #%*************************Plot Parameters*************************
 
38  #%plotting information
 
39  plot_points = 2000 
40  
 
41  #%plotting Parameters
 
42  maxqx = 0.00070 
43  
 
44  maxqy = 0.009 
45  maxqz = 0.08 
46  qx = linspace(-maxqx,maxqx,plot_points+1) 
47  qz = linspace(1.0e-6,maxqz,plot_points-1) 
48  qy = zeros(1,'d') 
49  
 
50  [feature,sub] = GSAXS_orthaganal.form_loop(type,feature_form,substrate_form,qx,qy,qz) 
51  
 
52  scatter_contrib = BornModel.BornModel(par_structure.structure_loop(qx,qy,qz,struc),feature,sub) 
53  
 
54  intensity = BornModel.calculate(scatter_contrib,qx,qy,qz)  
55  plotting.two_Dim_with_z_slice(qx,qz,intensity,plot_points,maxqz) 
56