- Timestamp:
- Sep 7, 2016 2:18:50 PM (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
sans/Dev/trunk/NCNR_User_Procedures/Analysis/Alpha/Tinker/FFT_Lattice_Fills.ipf
r798 r1008 16 16 // 17 17 // 18 19 20 21 Macro PutXAxisCylindersAt3DPoints(w,num,rad,len,periodic,sobol,fill,centered) 22 String w="mat" 23 Variable num=100,rad=20,len=300,periodic=1,sobol=1,fill=10,centered=0 24 Prompt w,"matrix" 25 Prompt num,"number of starting points" 26 prompt rad,"radius of cylinders" 27 prompt len,"length of cylinders" 28 prompt periodic,"1=periodic, 0=non-periodic boundaries" 29 Prompt sobol,"1=Sobol, 0=random" 30 Prompt fill,"fill SLD value" 31 Prompt centered,"concentrate at center (0|1)" 32 33 34 // $w=0 35 // always start fresh 36 FFTEraseMatrixButtonProc("") 37 38 X_CylindersAt3DPoints($w,num,rad,len,sobol,periodic,fill,centered) 39 40 NumberOfPoints() 41 end 42 43 44 Function X_CylindersAt3DPoints(mat,num,rad,len,sobol,periodic,fill,centered) 45 Wave mat 46 variable num,rad,len //length in direction 47 Variable periodic //==1 if periodic boundaries 48 Variable sobol //==1 if sobol selection of points (2D) 49 Variable fill 50 Variable centered 51 52 NVAR solventSLD = root:FFT_SolventSLD 53 54 Variable np 55 np = DimSize(mat,0) // assumes that all dimensions are the same 56 57 if(centered) 58 Make/O/D/N=(np/2,np/2,np/2) small 59 if(sobol) 60 SobolFill3DMat(small,num,fill) 61 else 62 RandomFill3DMat(small,num,fill) 63 endif 64 ParseMatrix3D_rho(small) 65 killwaves small 66 67 Wave x3d=x3d 68 Wave y3d=y3d 69 Wave z3d=z3d 70 x3d += np/4 71 y3d += np/4 72 z3d += np/4 73 74 else 75 //use the full matrix 76 if(sobol) 77 SobolFill3DMat(mat,num,fill) 78 else 79 RandomFill3DMat(mat,num,fill) 80 endif 81 82 ParseMatrix3D_rho(mat) 83 Wave x3d=x3d 84 Wave y3d=y3d 85 Wave z3d=z3d 86 87 endif 88 89 90 Variable ii=0 91 NVAR grid=root:FFT_T 92 93 for(ii=0;ii<num;ii+=1) 94 FillXCylinder(mat,grid,rad,x3d[ii],y3d[ii],z3d[ii],len,fill) //cylinder 1 95 endfor 96 97 return(0) 98 End 99
Note: See TracChangeset
for help on using the changeset viewer.