def SimInt_ID4M(FITPAR): TPARs=np.zeros([Trapnumber+1,2]) TPARs[:,0:2]=np.reshape(FITPAR[0:(Trapnumber+1)*2],(Trapnumber+1,2)) SPAR=FITPAR[Trapnumber*2+2:Trapnumber*2+5] X1=FITPAR[Trapnumber*2+5] (Coord)= CD.ID4MCoordAssign(TPARs,SLD,Trapnumber,Pitch,X1) F1 = CD.FreeFormTrapezoid(Coord[:,:,0],Qx,Qz,Trapnumber) F2 = CD.FreeFormTrapezoid(Coord[:,:,1],Qx,Qz,Trapnumber) F3 = CD.FreeFormTrapezoid(Coord[:,:,2],Qx,Qz,Trapnumber) M=np.power(np.exp(-1*(np.power(Qx,2)+np.power(Qz,2))*np.power(SPAR[0],2)),0.5) Formfactor=(F1+F2+F3)*M Formfactor=abs(Formfactor) SimInt = np.power(Formfactor,2)*SPAR[1]+SPAR[2] return (SimInt,Formfactor)
X1=Pitch/4 W=Param[SampleNumber,0] H=Param[SampleNumber,1] WidthLoad='W'+str(int(W))+'.txt' HeightLoad='H'+str(int(H))+'.txt' Width=np.loadtxt(WidthLoad) Height=np.loadtxt(HeightLoad) TPAR[:,0]=Width TPAR[:,1]=Height SLD[0,0]=SLD1; SLD[1,0]=SLD1; SLD[2,0]=SLD1; SLD[3,0]=SLD1; Coord=CD.ID4MCoordAssign(TPAR,SLD,Trapnumber,Pitch,X1) #CDp.plotID1(Coord,Trapnumber,Pitch) (FITPAR,FITPARLB,FITPARUB)=CD.PBA_ID2(TPAR,SPAR,Trapnumber,X1) #Does not need to be changed R = np.random.normal(0, 0.225, [len(Qx[:,0]),len(Qx[0,:])]) (Intensity,Amplitude)=SimInt_ID4M(FITPAR) N=(1/(np.power(Intensity,0.5)))*Intensity # Generates noise N=N*R Intensity2=Intensity+R; # Applies Noise C=CD.Misfit(Intensity,Intensity2) Chi2=np.sum((C)) MCPAR=np.zeros([7]) MCPAR[0] = 1 # Chainnumber