FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity

From diagham
Jump to navigation Jump to search

FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity computes the matrix element of the orbital occupation for the eigenstates generated by codes such as FQHESphereQuasiholesWithSpinTimeReversalSymmetryAndPairing or FQHECylinderQuasiholesWithSpinTimeReversalSymmetryAndJosephsonPairing, written in the quasihole subspace. Complex eigenstates are automatically detected. It evaluates all the matrix elements <math> \langle \Psi_i | c^\dagger_{m,\sigma} c_{m,\sigma} | \Psi_j \rangle</math> where <math>m</math> is the orbital index, <math>\sigma</math> the layer index (0 for the up layer, 1 for the down layer). It also computes the eigenvalues of the integrated charge (in orbital space) <math> \hat{Q}_{m,\sigma} =\sum_{n\leq m}c^\dagger_{n,\sigma} c_{n,\sigma}</math>. Finally, it computes the eigenvalues of the charge imbalance operator <math> \hat{Q}_{L} - \hat{Q}_{R} =\sum_{n< (N_{\phi} + 1)/2} \sum_{\sigma}(c^\dagger_{n,\sigma} c_{n,\sigma} - c^\dagger_{N_{\phi} - n,\sigma} c_{N_{\phi} - n,\sigma})</math>.

Single eigenstate

In the simplest case, we just want to evaluate these quantities for a single state. This can be obtained using the following command

$PATHTODIAGHAM/build/FQHE/src/Programs/FQHEOnSphere/FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity --input-state fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_12_n_0_2s_21_sz_0_lz_0.0.vec -S --directory nphi_21_cylinder_perimeter_8.000000

FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity uses the same convention as FQHESphereQuasiholesWithSpinTimeReversalSymmetryConvertStates and the code is fully parallel. In particular, nphi_21_cylinder_perimeter_8.000000 is the directory where the Hilbert space description is stored (created with e.g. FQHECylinderQuasiholeMatrixElements ). When running the above mentioned command, the output should look like

   Hilbert space dimension = 320622
   SingleLayerDimension = 5896
   Hilbert space generated in 0.178963s
   Integrated charge in the upper layer / lower layer:
   0 -1.0760775085882e-20 -1.0756445061796e-20 -2.1517220147678e-20
   1 6.0360426477671e-17 6.03496554158e-17 1.2071008189347e-16
   2 1.0469805209044e-09 1.046980522079e-09 2.0939610429834e-09
   3 0.65048463290281 0.65048463290281 1.3009692658056
   4 0.99676065753306 0.99676065753306 1.9935213150661
   5 1.3240547039424 1.3240547039424 2.6481094078849
   6 1.7739692615299 1.7739692615299 3.5479385230597
   7 2.0010041803473 2.0010041803473 4.0020083606945
   8 2.2328174103764 2.2328174103764 4.4656348207529
   9 2.7338349283036 2.7338349283036 5.4676698566072
   10 3 3 6
   11 3.2661650716964 3.2661650716964 6.5323301433928
   12 3.7671825896236 3.7671825896236 7.5343651792471
   13 3.9989958196527 3.9989958196527 7.9979916393055
   14 4.2260307384701 4.2260307384701 8.4520614769403
   15 4.6759452960576 4.6759452960576 9.3518905921151
   16 5.0032393424669 5.0032393424669 10.006478684934
   17 5.3495153670972 5.3495153670972 10.699030734194
   18 5.999999998953 5.999999998953 11.999999997906
   19 6 6 12
   20 6 6 12
   21 6 6 12
   Charge imbalance between left and right (orbital cut) 1.9999634431322e-15

The integrated charge is displayed in the following way

  • first column : <math>m</math> .
  • second column : <math> \hat{Q}_{m,0}</math> .
  • third column : <math> \hat{Q}_{m,1}</math> .
  • fourth column : <math> \hat{Q}_{m,0}+\hat{Q}_{m,1}</math>
  • The last line is the eigenvalue of <math>\hat{Q}_{L} - \hat{Q}_{R}</math>

Several files are also stored. Their names are built from the input vector file name. In our examples, fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_12_n_0_2s_21_sz_0_lz_0.0.density.dat contains all the matrix elements <math> \langle \Psi | c^\dagger_{m,\sigma} c_{m,\sigma} | \Psi \rangle</math> and should have the following format

   0 0 0 0 -1.0760775085882e-20
   0 1 0 0 6.0371187252757e-17
   0 2 0 0 1.046980460544e-09
   0 3 0 0 0.65048463185583
   0 4 0 0 0.34627602463026
   ...
  • The first column is the layer index <math>\sigma</math>.
  • The second column is the orbital index <math>m</math>.
  • The third column is the index of the left state <math> | \Psi_i \rangle </math>.
  • The fourth column is the index of the right state <math> | \Psi_j \rangle </math>.
  • The fifth column is the matrix element itself <math> \langle \Psi_i | c^\dagger_{m,\sigma} c_{m,\sigma} | \Psi_j \rangle</math>.

Unless the option --disable-binary is added, the orbital occupation matrices are also stored in binary files such as fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_12_n_0_2s_21_sz_0_lz_0.0.density_down_m_5.mat. The list of all these binary files is written in ASCII file (here fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_12_n_0_2s_21_sz_0_lz_0.0.density.mat.list).

Multiple eigenstates

If we want to evaluate the orbital occupation matrices or the integrated charge in a subspace of eigenstates, this can be easily done by using the --degenerate-states option instead of the --input-state option. As usual -degenerate-states takes as a value, a single column formatted text file that contains the list of eigenstates. If you prefer to use a est file where all the vector names are on a single line starting with the string Basis= (as it is used to define the effective Hilbert space in FQHESphereQuasiholesWithSpinTimeReversalSymmetryAndPairing), we can just use the --use-hilbert option instead of the --degenerate-states option.

A typical example looks like

$PATHTODIAGHAM/build/FQHE/src/Programs/FQHEOnSphere/FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity --degenerate-states eigen.dat --directory nphi_21_cylinder_perimeter_8.000000

where the content of eigen.dat is

   fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_12_n_0_2s_21_sz_0_lz_0.0.vec
   fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_12_n_0_2s_21_sz_0_lz_0.1.vec
   fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_12_n_0_2s_21_sz_0_lz_0.2.vec


Note that all the output file names are built from the first eigenstate file name. Most of the stored file will now involve 3x3 matrices, the naming convention being the same than the one for a single state. The major difference here is the on screen output for the integrated charge. Now it should look like

   Hilbert space dimension = 320622
   SingleLayerDimension = 5896
   Hilbert space generated in 0.179094s
   Integrated charge in the upper layer / lower layer:
   0 -1.0760775088594e-20 -1.0756445068077e-20 -2.1517220156663e-20 1.7785643711081e-24 1.7861814248296e-24 2.5175819522713e-17 2.5175825381498e-17 2.5175831214883e-17 2.5175840638414e-17
   1 -1.0059503921689e-20 -1.0055241971833e-20 1.2071008189329e-16 6.0360426482822e-17 6.034965540515e-17 3.1567387655261e-10 3.1567387656728e-10 3.1567390180989e-10 3.1567390180445e-10
   2 -1.3880673336585e-16 8.7956134334951e-17 2.0939610429834e-09 1.0469805136689e-09 1.0469804755472e-09 0.65048463345674 0.65048463345674 0.65048463345675 0.65048463345675
   3 3.1567387592801e-10 3.1567368163898e-10 0.99676065784606 0.65048463290281 0.65048463290281 0.99676065784606 0.99676065753038 0.99676065753039 1.3009692658056
   4 0.65048463345675 0.65048463345674 1.9745393368538 0.99676065753306 0.99676065753306 1.9745393368538 1.324054703397 1.324054703397 1.9935213150661
   ...
   Charge imbalance between left and right (orbital cut) -1.0646602830371
   Charge imbalance between left and right (orbital cut) -2.583941091286e-16
   Charge imbalance between left and right (orbital cut) 1.0646602830371


Per line, we have the eigenvalues of the integrated charge operator with alternating up and down layer, i.e.

  • The second column is the first eigenvalue of <math> \hat{Q}_{m,0}</math> .
  • The third column is the first eigenvalue of <math> \hat{Q}_{m,1}</math> .
  • The fourth column is the first eigenvalue of <math> \hat{Q}_{m,0} + \hat{Q}_{m,1}</math> .
  • The fifth column is the second eigenvalue of <math> \hat{Q}_{m,0}</math> .
  • The sixth column is the second eigenvalue of <math> \hat{Q}_{m,1}</math> .
  • The seventh column is the second eigenvalue of <math> \hat{Q}_{m,1} + \hat{Q}_{m,1}</math> .
  • ...
  • The 3 last lines are the eigenvalues of <math>\hat{Q}_{L} - \hat{Q}_{R}</math>

Using an effective subspace

In the case where the eigenstates are expressed in an effective basis, there are two steps to obtain the charge imbalance. The first step slightly depends on the way these states were computed (1a/ and 1b/). The second step (2/) is common to both.

1a/ If the eigenstates were obtained usingFQHESphereQuasiholesWithSpinTimeReversalSymmetryAndPairing#Using_an_effective_subspace, we first need to generate the orbital occupation matrices within the full effective subspace. For that purpose, we can use the exact same file that was provided to FQHESphereQuasiholesWithSpinTimeReversalSymmetryAndPairing and describing the effective subspace

$PATHTODIAGHAM/build/FQHE/src/Programs/FQHEOnSphere/FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity --use-hilbert basis.dat --directory nphi_21_cylinder_perimeter_8.000000

Beware that this calculation can be time consuming. If fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_0_n_0_2s_21_sz_0_lz_0.0.vec was the name of the first eigenstate in basis.dat, the list of all computed matrices should be in fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_0_n_0_2s_21_sz_0_lz_0.0.cducu.list and fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_0_n_0_2s_21_sz_0_lz_0.0.cddcd.list.

1b/ If the effective Hamiltonian was obtained from the single layer data using FQHECylinderQuasiholesWithSpinTimeReversalSymmetryGenerateBasis, there is no need to perform this operation. One can directly use the *.cducu.list and *.cddcd.list files generated when using the option --build-effectivehamiltonian.

2/ Assuming that we have generated a few eigenstates with GenericHamiltonianDiagonalization, we can now provide these eigenstates and the matrices computed in the.effective subspace to FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity. For a single eigenstate eigen.0.vec, we just need to use

$PATHTODIAGHAM/build/FQHE/src/Programs/FQHEOnSphere/FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity --cducu-matrices fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_0_n_0_2s_21_sz_0_lz_0.0.cducu.list --cddcd-matrices fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_0_n_0_2s_21_sz_0_lz_0.0.cddcd.list --input-state eigen.0.vec

For multiple states, we just have to use

$PATHTODIAGHAM/build/FQHE/src/Programs/FQHEOnSphere/FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity --cducu-matrices fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_0_n_0_2s_21_sz_0_lz_0.0.cducu.list --cddcd-matrices fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_cenergy_0.000000_n0_0.000000_pairing_fixedn_0_n_0_2s_21_sz_0_lz_0.0.cddcd.list --degenerate-states eigen.dat

where eigen.dat has the following format

   eigen.0.vec
   eigen.1.vec
   eigen.2.vec

Real space density

FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity can also compute the density in real space in addition to the density in momentum space. In that case we need to add the --realspace-density option. The output options --nbr-points and --offset are identical to the ones available in FQHECylinderDensity. In that case, we define a new charge imbalance operator <math> \hat{Q}^{real}_{L} - \hat{Q}^{real}_{R}</math>, where <math> \hat{Q}^{real}_{L}</math> (respectively <math> \hat{Q}^{real}_{R}</math>) is the charge integrated on the half-infinite cylinder <math>x < 0</math> (respectively <math>x > 0</math>).

The following example

$PATHTODIAGHAM/build/FQHE/src/Programs/FQHEOnSphere/FQHESphereQuasiholesWithSpinTimeReversalSymmetryDensity --input-state fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_pairing_6_6_0.0_cenergy_0.258562_n0_30.000000_pairing_n_0_2s_21_sz_0_lz_0.0.vec --directory nphi_21_cylinder_perimeter_8.000000 --realspace-density --disable-binary --output charge_6_6_0.0_cenergy_0.258562_n0_30.000000_pairing_n_0_2s_21_sz_0_lz_0.dat

creates two text files:

1. fermions_cylinder_perimeter_8.000000_su2_quasiholes_symlinearmomentum_pairing_6_6_0.0_cenergy_0.258562_n0_30.000000_pairing_n_0_2s_21_sz_0_lz_0.0.rho.dat that contains

   -13.639379797372 3.0716428837565e-27 -1.2962517132467e-34 3.0716428843402e-27 -1.2957216055785e-34 6.1432857680967e-27 -2.5919733188253e-34
   -13.571352965465 8.7743570626818e-27 -2.7239206508779e-34 8.7743570638922e-27 -2.722806691907e-34 1.7548714126574e-26 -5.4467273427849e-34
   -13.503326133558 2.4833681435587e-26 -5.6688611791296e-34 2.4833681438075e-26 -5.6665428741661e-34 4.9667362873663e-26 -1.1335404053296e-33


  • The first column is the position along the cylinder axis
  • the second column is the density (integrated along the cylinder perimeter) for the upper layer
  • the third column is the integrated density from minus infinity to the position given by the first column for the upper layer
  • the fourth column is the density (integrated along the cylinder perimeter) for the lower layer
  • the fifth column is the integrated density from minus infinity to the position given by the first column for the lower layer
  • the sixth column is the total density (integrated along the cylinder perimeter)
  • the seventh column is the total integrated density from minus infinity to the position given by the first column


2. If the --output option is activated (as it is in the above example), a second text file containing the charge imbalance eigenvalues will also be generated:

charge_6_6_0.0_cenergy_0.258562_n0_30.000000_pairing_n_0_2s_21_sz_0_lz_0.dat

      # i (Q_L-Q_R)_orb (Q_L-Q_R)_real
      0 1.0720210119829e-15 7.3147779650516e-14
  • The first column is the index of the eigenvalue
  • The second column is the eigenvalue of <math>\hat{Q}_{L} - \hat{Q}_{R}</math>
  • The third column is the eigenvalue of <math> \hat{Q}^{real}_{L} - \hat{Q}^{real}_{R}</math>

When more than one state is provided, the output file uses the same convention than the one described in the Multiple eigenstates section.

A flux <math>\Phi</math> can be inserted along the cylinder axis. While this has no effect on the density in momentum space, this will change the density in real space (and thus the charge imbalance). The convention is that the flux insertion shifts the orbital from <math>m</math> to <math>m+\Phi/\Phi_0</math> where <math>\Phi_0</math> is the flux quantum. The value of <math>\Phi</math> (in <math>\Phi_0</math> units) is set by the option --flux-insertion .