Hi Miles,
Thanks for your helpful insights. Below, I have written down the part of the code where I write the hamiltonian, the initial state and the DMRG part.
auto sites = Electron(N);
auto ampo = AutoMPO(sites);
    for(int i = 1; i <= N; ++i) 
        {
        ampo += U1,"Nupdn",i;
        }
    for(int b = 1; b < N; ++b)
        {
        ampo += -t1,"Cdagup",b,"Cup",b+1;
        ampo += -t1,"Cdagup",b+1,"Cup",b;
        ampo += -t1,"Cdagdn",b,"Cdn",b+1;
        ampo += -t1,"Cdagdn",b+1,"Cdn",b;
        ampo += V1,"Ntot",b,"Ntot",b+1;
        }
// have set t2=0
    for(int b = 1; b < N-1; ++b)
        {
        ampo += -t2,"Cdagup",b,"Cup",b+2;
        ampo += -t2,"Cdagup",b+2,"Cup",b;
        ampo += -t2,"Cdagdn",b,"Cdn",b+2;
        ampo += -t2,"Cdagdn",b+2,"Cdn",b;
        }
    auto H = toMPO(ampo);
auto state = InitState(sites);
    int p = Npart;
    for(int i = N; i >= 1; --i) 
        {
        if(p > i)
            {
            println("Doubly occupying site ",i);
            state.set(i,"UpDn");
            p -= 2;
            }
        else
        if(p > 0)
            {
            println("Singly occupying site ",i);
            state.set(i,(i%2==1 ? "Up" : "Dn"));
            p -= 1;
            }
        else
            {
            state.set(i,"Emp");
            }
        }
    auto psi0 = MPS(state);
auto [energy,psi] = dmrg(H,psi0,sweeps,{"Quiet",quiet});
Let me add that, the ground state energy is not changing when I vary U1/t, above the point U1/t = 1000. So, even for very high value of the ration U1/t, the ground state energy is same as U1/t=1000. i look at the outputs of each swipe and it shows the convergence of energy.
I understand that the problem may not be solvable/answerable from this overview. I appreciate all your efforts and any further comment/insight will be helpful.
Sincerely
sreetama