
imaginary part is missing

imksh2000
Function SF(occ, ASF, xx , z, u) wave ASF variable occ, xx, u, z variable/c ci = sqrt(-1) variable/c rtn = (occ * ASF * exp(ci*xx*z)*exp(-0.5*(xx*u)^2)) return rtn End Function SF_calc() ASF_calc() wave Q_x wavestats/q Q_x variable/g u_res u_res = 1.1 / V_max variable/g u_Ni, u_Ni_eff u_Ni = 0.5 u_Ni_eff = sqrt(u_res^2 + u_Ni^2) variable/g u_O, u_O_eff u_O = 0.1 u_O_eff = sqrt(u_res^2 + u_O^2) //UNIT CELL AND CTR // Make/O/C/N=(numpnts(Q_x)) F_Ni, F_ctr wave ASF_Ni, ASF_Ni2, ASF_O variable/c ci = sqrt(-1) F_Ni = SF(uc_occ, ASF_Ni, Q_x, d_spacing, u_Ni) F_ctr = 1 / (1-exp(-ci*Q_x*d_spacing)) //PASSIVATED NiO LAYER// Make/O/C/N=(numpnts(Q_x)) F_NiO1, F_NiO2, F_NiO3 variable/g gap1, gap2, gap3 gap1 = d_spacing gap2 = d_spacing gap3 = d_spacing * 1.1 F_NiO1 = SF(2, ASF_Ni, Q_x, gap1, 0.5) F_NiO2 = SF(2, ASF_Ni, Q_x, gap2, 0.5) F_NiO3 = SF(2, ASF_Ni, Q_x, gap3, 0.5) Make/O/N=(numpnts(Q_x)) I_tot I_tot = magsqr(F_Ni*F_ctr + F_NiO1 + F_NiO2 + F_NiO3) Make/O/N=3 coefwave coefwave[0] = gap1 coefwave[1] = gap2 coefwave[2] = gap3 End
--
J. J. Weimer
Chemistry / Chemical & Materials Engineering, UAH
June 13, 2017 at 06:23 am - Permalink
Function/C SF(occ, ASF, xx , z, u)
. The /C flag tells Igor's compiler that the function returns a complex number.I would also recommend reading the Programming help a few times. Each time through you will retain a bit more. The first time through a manual like the Programming help it is very hard to put together a coherent impression of the contents.
John Weeks
WaveMetrics, Inc.
support@wavemetrics.com
June 13, 2017 at 08:57 am - Permalink