DMRG of Two Component Bose-Hubbard Model

How do I use this algorithm? What does that parameter do?
Post Reply
ksuzuki
Posts: 2
Joined: 09 Dec 2021, 14:49

DMRG of Two Component Bose-Hubbard Model

Post by ksuzuki »

Hello.
I used TwoSiteDMRGEngine for this code under the specified initial state psi = MPS.from_lat_product_state(M.lat, [[1, 1]]), but it did not successfully find the ground state. (viewtopic.php?t=160)

I would appreciate it if you could tell me how you used it. 

Code: Select all

model_params=dict(L=L,n_max=n_max,t=t,U=U,UAB=UAB,mu=mu,conserve=None)
M=TwoComponentBoseHubbardModel(model_params) 
psi=MPS.from_lat_product_state(M.lat,[[1,1]])
dmrg_params = { 
        'mixer': None,  
        'max_E_err': 1.e-10, 
        'trunc_params': {
            'chi_max': 30,
            'svd_min': 1.e-10  
        },
        'combine': True 
    }
eng_dmrg = dmrg.TwoSiteDMRGEngine(psi,M,dmrg_params)
E, psi= eng_dmrg.run()
I'm a beginner, so this question may contain a fundamental error.
thank you.
User avatar
Johannes
Site Admin
Posts: 324
Joined: 21 Jul 2018, 12:52
Location: TU Munich

Re: DMRG of Two Component Bose-Hubbard Model

Post by Johannes »

Welcome to TenPy, happy new year, and sorry for the long delay in the answer, I had a few things I needed to finish before Christmas.....

I think the issue here is that the mixer is disabled, just try setting 'mixer': True.
The reason why you need the mixer is that you always just optimize two sites at once while projecting to the current schmidt states outside of the two sites, and you start with a product state of all single-site filling. In the TwoComponentBoseHubbardModel defined in the other thread, neighboring sites are always from the different species with no hopping term, so the smallest, non-trivial hopping involves 3 sites (from i to i+2).
Post Reply