コード例 #1
0
def SimInt_ID6M(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.ID6MCoordAssign(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)
    F4 = CD.FreeFormTrapezoid(Coord[:, :, 3], Qx, Qz, Trapnumber)
    F5 = CD.FreeFormTrapezoid(Coord[:, :, 4], 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 + F4 + F5) * M
    Formfactor = abs(Formfactor)
    SimInt = np.power(Formfactor, 2) * SPAR[1] + SPAR[2]
    return (SimInt, Formfactor)
コード例 #2
0
    X1 = Pitch / 6

    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.ID6MCoordAssign(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_ID6M(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))