function VDk = calculateVDk(~, Transf, Params, ell, IncludeDDICutOff)
% == Calculating the DDI potential in Fourier space with appropriate cutoff == %
    
    % Interaction in K space
    QX              = Transf.KX*ell/sqrt(2);
    QY              = Transf.KY*ell/sqrt(2);

    Qsq             = QX.^2 + QY.^2;
    absQ            = sqrt(Qsq);
    QDsq            = QX.^2*cos(Params.eta)^2 + QY.^2*sin(Params.eta)^2;
    
    % Bare interaction
    Fpar            = -1 + 3*sqrt(pi)*QDsq.*erfcx(absQ)./absQ; % Scaled complementary error function erfcx(x) = e^(x^2) * erfc(x)
    Fperp           = 2 - 3*sqrt(pi).*absQ.*erfcx(absQ);
    Fpar(absQ == 0) = -1; 
    
    % Full DDI
    VDk             = Fpar*sin(Params.theta)^2 + Fperp*cos(Params.theta)^2;
    
    if IncludeDDICutOff
        % 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

end