30 lines
1.0 KiB
Matlab
30 lines
1.0 KiB
Matlab
function VDk = calculateVDkWithCutoff(~, Transf, Params, VParams)
|
|
% == Calculating the DDI potential in Fourier space with appropriate cutoff == %
|
|
|
|
% Interaction in K space
|
|
QX = Transf.KX*VParams.ell/sqrt(2);
|
|
QY = Transf.KY*VParams.ell/sqrt(2);
|
|
|
|
Qsq = QX.^2 + QY.^2;
|
|
absQ = sqrt(Qsq);
|
|
QDsq = QX.^2*cos(Params.phi)^2 + QY.^2*sin(Params.phi)^2;
|
|
|
|
% Bare interaction
|
|
Fpar = -1 + 3*sqrt(pi)*QDsq.*erfcx(absQ)./absQ;
|
|
Fperp = 2 - 3*sqrt(pi).*absQ.*erfcx(absQ);
|
|
Fpar(absQ == 0) = -1;
|
|
% Fpar(isinf(Fpar)) = -1;
|
|
|
|
% Full DDI
|
|
VDk = (Fpar*sin(Params.theta)^2 + Fperp*cos(Params.theta)^2);
|
|
|
|
% Implementing a cutoff:
|
|
VDr = ifftn(VDk);
|
|
VDr = fftshift(VDr);
|
|
rcut = min(Transf.Xmax,Transf.Ymax);
|
|
R = sqrt(Transf.X.^2+Transf.Y.^2) < 0.9*rcut;
|
|
VDr = VDr.*double(R);
|
|
VDr = ifftshift(VDr);
|
|
VDk = fftn(VDr);
|
|
|
|
end |