def SimInt_PSPVP(FITPAR): T=int(FITPAR[len(FITPAR)-3]) Disc=int(FITPAR[len(FITPAR)-2]) Pitch=int(FITPAR[len(FITPAR)-4]) Spline=np.reshape(FITPAR[0:T*5],(T,5)) Spline Offset=FITPAR[T*5:T*5+7] SPAR=FITPAR[T*5+7:T*5+11] Coord=CD.PSPVPCoord(Spline,MCoord,Trapnumber, Disc,Pitch, Offset) F1 = CD.FreeFormTrapezoid(Coord[:,:,0],Qx,Qz,Disc+1) F2 = CD.FreeFormTrapezoid(Coord[:,:,1],Qx,Qz,Disc+1) F3 = CD.FreeFormTrapezoid(Coord[:,:,2],Qx,Qz,Disc+1) F4 = CD.FreeFormTrapezoid(Coord[:,:,3],Qx,Qz,Disc+1) F5 = CD.FreeFormTrapezoid(Coord[:,:,4],Qx,Qz,Disc+1) F6 = CD.FreeFormTrapezoid(Coord[:,:,5],Qx,Qz,Disc+1) F7 = CD.FreeFormTrapezoid(Coord[:,:,6],Qx,Qz,Disc+1) F8 = CD.FreeFormTrapezoid(Coord[:,:,7],Qx,Qz,Disc+1) Formfactor=(F1+F2+F3+F4+F5+F6+F7+F8) M=np.power(np.exp(-1*(np.power(Qx,2)+np.power(Qz,2))*np.power(SPAR[0],2)),0.5); Formfactor=Formfactor*M SimInt = np.power(abs(Formfactor),2)*SPAR[1]+SPAR[2] return SimInt
Spline[2, 2] = 1 Spline[2, 3] = 1 Spline[2, 4] = 1 Spline[3, 0] = 21 Spline[3, 1] = 3 Spline[3, 2] = -1 Spline[3, 3] = -0.5 Spline[3, 4] = -1 Spline[4, 0] = 24 Spline[4, 1] = 3 Spline[4, 2] = -1 Spline[4, 3] = -0.5 Spline[4, 4] = -1 MCoord = np.loadtxt('MCOORDPSPVP1.txt') (Coord) = CD.PSPVPCoord(Spline, MCoord, Trapnumber, Disc, Pitch, Offset) (FITPAR, FITPARLB, FITPARUB) = CD.PSPVP_PB(Offset, Spline, SPAR, Trapnumber, Disc) MCPAR = np.zeros([7]) MCPAR[0] = 1000 # Chainnumber MCPAR[1] = len(FITPAR) MCPAR[2] = 100 #stepnumber MCPAR[3] = 0 #randomchains MCPAR[4] = 1 # Resampleinterval MCPAR[5] = 40 # stepbase MCPAR[6] = 200 # steplength def SimInt_PSPVP(FITPAR): T = int(FITPAR[len(FITPAR) - 3])