Lorenzo Cardarelli

We build up a series of explicatory examples of the mean-field fixed-point method, culminating in the derivation of the ground-state phase diagram of the Fermi- Hamiltonian with effective Rydberg interaction potential.

Fixed-point search, single $V_1$-$V_2$ set

We perform three simple self-consistent runs of the fixed-point search, for different values of $V_1$ and $V_2$. For these values, the system is expected to be, respectively, in a site-nematic insulator, a stripe insulator and in a quantum anomalous Hall phase.

Site-nematic phase, finite $\rho_1$

MyCl = mean_field_analysis()
V1,V2 = 5,1
MyCl.prepare_run(V1=V1,V2=V2)
MyCl.fixed_point_method()
MyCl.prt_postrun_data()
Running V0=0.00, V1=5.00, V2=1.00, V3=0.00, V4=0.00
Correlation matrix initialized to random complex values.
Run concluded.
Final number of iterations: 21 out of 500.
Correlation gradient: 5e-10
Free energy gradient: 1e-08
Ratio two largest order parameters: 4e-11
rho0  0
rho1  0.5751259486989888
rho2  0
rho3  0
rho4  0.6915792831117435
xiQAH  0

The site-nematic is the low-energy charge order for distance-4 interaction $V_4$, hence also $\rho_4$ is finite.

Starting out with a random complex correlation matrix, the run is concluded with a minimum number of iterations. A good convergence is reached in the gradient of both the correlation matrix and the free energy. The largest order parameter is many orders of magnitude larger than all others, indicating clear convergence in one phase, in this case the site-nematic.

Stripe phase, finite $\rho_2$

MyCl = mean_field_analysis()
V1,V2 = 3,4
MyCl.prepare_run(V1=V1,V2=V2)
MyCl.fixed_point_method()
MyCl.prt_postrun_data()
Running V0=0.00, V1=3.00, V2=4.00, V3=0.00, V4=0.00
Correlation matrix initialized to random complex values.
Run concluded.
Final number of iterations: 21 out of 500.
Correlation gradient: 7e-11
Free energy gradient: 5e-09
Ratio two largest order parameters: 2e-13
rho0  0
rho1  0
rho2  0.728793536282358
rho3  0
rho4  0
xiQAH  0

Topological phase, finite $\xi_{\textrm{QAH}}$

MyCl = mean_field_analysis()
V1,V2 = 2.4,1.6
MyCl.prepare_run(V1=V1,V2=V2)
MyCl.fixed_point_method()
MyCl.prt_postrun_data()
Running V0=0.00, V1=2.40, V2=1.60, V3=0.00, V4=0.00
Correlation matrix initialized to random complex values.
Run concluded.
Final number of iterations: 21 out of 500.
Correlation gradient: 1e-04
Free energy gradient: 7e-05
Ratio two largest order parameters: 1e-27
rho0  0
rho1  0
rho2  0
rho3  0
rho4  0
xiQAH  0.06781430129528668

The three operations can be carried out using one method, single_run()

MyCl = mean_field_analysis()
V1,V2 = 2.4,1.6
MyCl.single_run(V1=V1,V2=V2)
Running V0=0.00, V1=2.40, V2=1.60, V3=0.00, V4=0.00
Correlation matrix initialized to random complex values.
Run concluded.
Final number of iterations: 21 out of 500.
Correlation gradient: 4e-05
Free energy gradient: 7e-06
Ratio two largest order parameters: 2e-32
rho0  0
rho1  0
rho2  0
rho3  0
rho4  0
xiQAH  0.06784365449749535

Phase diagram, finite $V_1$ and $V_2$, $V_3=0$

Phase diagram of the $V_1$-$V_2$ model.

Vgrid=13
markersize=250
V3=0.0
verbose=False
V1V2region=[2,6,0,4]

MyCl = mean_field_analysis()

MyCl.prepare_grid_run(V3=V3, verbose=verbose, Vgrid=Vgrid, V1V2region=V1V2region)
Vsarray_pool=MyCl.get_pool()
for counter, Vsarray in enumerate(Vsarray_pool):
    MyCl.prepare_run(Vsarray=Vsarray, verbose=verbose)
    MyCl.fixed_point_method()
    MyCl.prt_postrun_data(verbose=verbose)
    MyCl.store_grid_data(counter)
    MyPlt = MyCl.plot_phasediag_fixedV3(figsize=4, markersize=markersize)
    display.clear_output(wait=True);
    MyPlt.show()

The presence of a QAH topological phase is marked. Repetition of the runs, starting with different initial correlation matrix, refines the phase diagram, particularly at the phase transitions.

The following two commands integrate all the operations done above.

MyCl.grid_run(Vgrid=Vgrid, V1V2region=V1V2region)

MyCl.plot_phasediag_fixedV3(figsize=4, markersize=500).show()

Phase diagram, finite $V_1$, $V_2$ and $V_3$

Effect of the $V_3$ interaction on the phase diagram of the $V_1$-$V_2$ model.

Vgrid=13
markersize=250
V3=0.5
verbose=False
V1V2region=[2,6,0,4]

MyCl = mean_field_analysis()

MyCl.prepare_grid_run(V3=V3, verbose=verbose, Vgrid=Vgrid, V1V2region=V1V2region)
Vsarray_pool=MyCl.get_pool()
for counter, Vsarray in enumerate(Vsarray_pool):
    MyCl.prepare_run(Vsarray=Vsarray, verbose=verbose)
    MyCl.fixed_point_method()
    MyCl.prt_postrun_data(verbose=verbose)
    MyCl.store_grid_data(counter)
    MyPlt = MyCl.plot_phasediag_fixedV3(figsize=4, markersize=markersize)
    display.clear_output(wait=True)
    MyPlt.show()

The inclusion of a finite $V_3$ evidently enlarges and stabilizes the topological phase.

Phase diagram, effective Rydberg potential

Phase diagram of the long-range interaction model, with effective Rydberg potential.

Vgrid=11
markersize=400
verbose=False
V1V2region=[2,6,0,4]
rydberg=True

MyCl = mean_field_analysis()

MyCl.prepare_grid_run(verbose=verbose, Vgrid=Vgrid, V1V2region=V1V2region, rydberg=rydberg)
Vsarray_pool=MyCl.get_pool(rydberg=rydberg)
for counter, Vsarray in enumerate(Vsarray_pool):
    MyCl.prepare_run(rydberg=rydberg, Vsarray=Vsarray, verbose=verbose)
    if MyCl.sanity_check(rydberg=rydberg):
        MyCl.fixed_point_method()
        MyCl.prt_postrun_data(verbose=verbose)
    MyCl.store_grid_data(counter)
    MyPlt = MyCl.plot_phasediag_rydberg(figsize=4, markersize=markersize)
    display.clear_output(wait=True)
    MyPlt.show()

The following two commands integrate all the operations above.

MyCl.grid_run(verbose=verbose, Vgrid=Vgrid, V1V2region=V1V2region, rydberg=rydberg)

MyCl.plot_phasediag_rydberg(figsize=4, markersize=500).show()