def _straight_intensity_v2(lattice, peakmax=5): qsvec, lenqs = generate_qvecs_lenqs_full(peakmax) lattice_num = len(lattice) x, y, z = np.mgrid[:1:lattice_num * 1j, :1:lattice_num * 1j, :1:lattice_num * 1j] intensity = [] for m in range(len(qsvec)): qvec = qsvec[m] fexp = lambda x, y, z: np.exp(1j * 2 * np.pi * (x * qvec[0] + y * qvec[1] + z * qvec[2])) cuber = fexp(x, y, z) * lattice intensity.append((np.abs(cuber.sum())).astype(float)**2) intensity = np.array(intensity) intensity *= lenqs**2*factor_calc_multiplicity_intens(qsvec) intensity /= max(intensity) return qsvec, intensity
def straight_intensity(lattice, peakmax=5, sizelat=1): qsvec, lenqs = generate_qvecs_lenqs_full(peakmax, uniquelenq=False) lattice_num = len(lattice) x, y, z = np.mgrid[:sizelat:lattice_num * 1j, :sizelat:lattice_num * 1j, :sizelat:lattice_num * 1j] intensity = [] for m in range(len(qsvec)): qvec = qsvec[m] qC = x*qvec[0] + y*qvec[1] + z*qvec[2] expqC = np.exp(2*np.pi*1j*qC) amplitude = np.abs((expqC*lattice).sum()).astype(float) #print(lenqs[m], np.abs(amplitude)) intensity.append((amplitude*lenqs[m])**2) intensity = np.array(intensity) intensity *= factor_calc_multiplicity_intens(qsvec) lenqs, intensity = filter_unique(np.round(lenqs,4), intensity, concat=True) intensity /= max(intensity) return lenqs, intensity