function [psi,V,VDk] = initialize(this,Params,VParams,Transf)
    % == User-defined potential == %
    V = this.Potential;
    assert(~anynan(V), 'Potential not defined! Specify as <SimulatorObject>.Potential = <PotentialsObject>.trap() + <AdditionalTerms>.');
    
    % == Calculating the DDIs == %
    VDk         = this.Calculator.calculateVDk(Transf, Params, VParams.ell, this.IncludeDDICutOff);
    
    % == Setting up the initial wavefunction == %
    psi = this.setupWavefunction(Params,Transf);

    if this.RunOnGPU
        psi = gpuArray(psi);
    end
end