Skip to content

Commit

Permalink
fix kagome interactions (not a bug, just not clean previously)
Browse files Browse the repository at this point in the history
  • Loading branch information
wztzjhn committed Sep 1, 2024
1 parent ebd5c01 commit 33324ce
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 75 deletions.
30 changes: 15 additions & 15 deletions examples/trans_absent/latt_kagome/kagome_Heisenberg_spin_half.cc
Original file line number Diff line number Diff line change
Expand Up @@ -119,36 +119,36 @@ int main() {
}


/* 2
/* 1
* /
* /
* 1
* 2
* /
* v
* 2
* 1
*/
{
Heisenberg.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i1 * Sminus_i2 + Sminus_i1 * Splus_i2));
Heisenberg.add_Ham(std::complex<double>(J,0.0) * ( Sz_i1 * Sz_i2 ));
uint32_t site_j1;
lattice.coor2site({m-1,n-1}, 1, site_j1, work);
auto Splus_j1 = qbasis::opr<std::complex<double>>(site_j1,0,false,Splus);
auto Sminus_j1 = qbasis::opr<std::complex<double>>(site_j1,0,false,Sminus);
auto Sz_j1 = qbasis::opr<std::complex<double>>(site_j1,0,false,Sz);
Heisenberg.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i2 * Sminus_j1 + Sminus_i2 * Splus_j1));
Heisenberg.add_Ham(std::complex<double>(J,0.0) * ( Sz_i2 * Sz_j1 ));
}


/* 0
/* 1
* ^
* /
* 1
* 2
* /
* /
* 0
* 1
*/
{
uint32_t site_j2;
lattice.coor2site({m+1,n+1}, 2, site_j2, work);
auto Splus_j2 = qbasis::opr<std::complex<double>>(site_j2,0,false,Splus);
auto Sminus_j2 = qbasis::opr<std::complex<double>>(site_j2,0,false,Sminus);
auto Sz_j2 = qbasis::opr<std::complex<double>>(site_j2,0,false,Sz);
Heisenberg.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i1 * Sminus_j2 + Sminus_i1 * Splus_j2));
Heisenberg.add_Ham(std::complex<double>(J,0.0) * ( Sz_i1 * Sz_j2 ));
Heisenberg.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i2 * Sminus_i1 + Sminus_i2 * Splus_i1));
Heisenberg.add_Ham(std::complex<double>(J,0.0) * ( Sz_i2 * Sz_i1 ));
}

// total Sz operator
Expand Down
60 changes: 30 additions & 30 deletions examples/trans_absent/latt_kagome/kagome_tJ.cc
Original file line number Diff line number Diff line change
Expand Up @@ -159,51 +159,51 @@ int main() {
}


/* 2
/* 1
* /
* /
* 1
* 2
* /
* v
* 2
* 1
*/
{
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i1 * c_up_i2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i2 * c_up_i1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i1 * c_dn_i2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i2 * c_dn_i1 ));
tJ.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i1 * Sminus_i2 + Sminus_i1 * Splus_i2));
tJ.add_Ham(std::complex<double>(J,0.0) * ( Sz_i1 * Sz_i2 ));
tJ.add_Ham(std::complex<double>(-0.25*J,0.0) * ( N_i1 * N_i2 ));
uint32_t site_j1;
lattice.coor2site({m-1,n-1}, 1, site_j1, work);
auto c_up_j1 = qbasis::opr<std::complex<double>>(site_j1,0,true,c_up);
auto c_dn_j1 = qbasis::opr<std::complex<double>>(site_j1,0,true,c_dn);
auto c_up_dg_j1 = c_up_j1; c_up_dg_j1.dagger();
auto c_dn_dg_j1 = c_dn_j1; c_dn_dg_j1.dagger();
auto Splus_j1 = c_up_dg_j1 * c_dn_j1;
auto Sminus_j1 = c_dn_dg_j1 * c_up_j1;
auto Sz_j1 = std::complex<double>(0.5,0.0) * (c_up_dg_j1 * c_up_j1 - c_dn_dg_j1 * c_dn_j1);
auto N_j1 = (c_up_dg_j1 * c_up_j1 + c_dn_dg_j1 * c_dn_j1);
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i2 * c_up_j1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_j1 * c_up_i2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i2 * c_dn_j1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_j1 * c_dn_i2 ));
tJ.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i2 * Sminus_j1 + Sminus_i2 * Splus_j1));
tJ.add_Ham(std::complex<double>(J,0.0) * ( Sz_i2 * Sz_j1 ));
tJ.add_Ham(std::complex<double>(-0.25*J,0.0) * ( N_i2 * N_j1 ));
}


/* 2
/* 1
* ^
* /
* 1
* 2
* /
* /
* 2
* 1
*/
{
uint32_t site_j2;
lattice.coor2site({m+1,n+1}, 2, site_j2, work);
auto c_up_j2 = qbasis::opr<std::complex<double>>(site_j2,0,true,c_up);
auto c_dn_j2 = qbasis::opr<std::complex<double>>(site_j2,0,true,c_dn);
auto c_up_dg_j2 = c_up_j2; c_up_dg_j2.dagger();
auto c_dn_dg_j2 = c_dn_j2; c_dn_dg_j2.dagger();
auto Splus_j2 = c_up_dg_j2 * c_dn_j2;
auto Sminus_j2 = c_dn_dg_j2 * c_up_j2;
auto Sz_j2 = std::complex<double>(0.5,0.0) * (c_up_dg_j2 * c_up_j2 - c_dn_dg_j2 * c_dn_j2);
auto N_j2 = (c_up_dg_j2 * c_up_j2 + c_dn_dg_j2 * c_dn_j2);
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i1 * c_up_j2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_j2 * c_up_i1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i1 * c_dn_j2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_j2 * c_dn_i1 ));
tJ.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i1 * Sminus_j2 + Sminus_i1 * Splus_j2));
tJ.add_Ham(std::complex<double>(J,0.0) * ( Sz_i1 * Sz_j2 ));
tJ.add_Ham(std::complex<double>(-0.25*J,0.0) * ( N_i1 * N_j2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i2 * c_up_i1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i1 * c_up_i2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i2 * c_dn_i1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i1 * c_dn_i2 ));
tJ.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i2 * Sminus_i1 + Sminus_i2 * Splus_i1));
tJ.add_Ham(std::complex<double>(J,0.0) * ( Sz_i2 * Sz_i1 ));
tJ.add_Ham(std::complex<double>(-0.25*J,0.0) * ( N_i2 * N_i1 ));
}

// total Sz operator
Expand Down
60 changes: 30 additions & 30 deletions examples/trans_symmetric/latt_kagome/kagome_tJ.cc
Original file line number Diff line number Diff line change
Expand Up @@ -159,51 +159,51 @@ int main() {
}


/* 2
/* 1
* /
* /
* 1
* 2
* /
* v
* 2
* 1
*/
{
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i1 * c_up_i2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i2 * c_up_i1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i1 * c_dn_i2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i2 * c_dn_i1 ));
tJ.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i1 * Sminus_i2 + Sminus_i1 * Splus_i2));
tJ.add_Ham(std::complex<double>(J,0.0) * ( Sz_i1 * Sz_i2 ));
tJ.add_Ham(std::complex<double>(-0.25*J,0.0) * ( N_i1 * N_i2 ));
uint32_t site_j1;
lattice.coor2site({m-1,n-1}, 1, site_j1, work);
auto c_up_j1 = qbasis::opr<std::complex<double>>(site_j1,0,true,c_up);
auto c_dn_j1 = qbasis::opr<std::complex<double>>(site_j1,0,true,c_dn);
auto c_up_dg_j1 = c_up_j1; c_up_dg_j1.dagger();
auto c_dn_dg_j1 = c_dn_j1; c_dn_dg_j1.dagger();
auto Splus_j1 = c_up_dg_j1 * c_dn_j1;
auto Sminus_j1 = c_dn_dg_j1 * c_up_j1;
auto Sz_j1 = std::complex<double>(0.5,0.0) * (c_up_dg_j1 * c_up_j1 - c_dn_dg_j1 * c_dn_j1);
auto N_j1 = (c_up_dg_j1 * c_up_j1 + c_dn_dg_j1 * c_dn_j1);
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i2 * c_up_j1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_j1 * c_up_i2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i2 * c_dn_j1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_j1 * c_dn_i2 ));
tJ.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i2 * Sminus_j1 + Sminus_i2 * Splus_j1));
tJ.add_Ham(std::complex<double>(J,0.0) * ( Sz_i2 * Sz_j1 ));
tJ.add_Ham(std::complex<double>(-0.25*J,0.0) * ( N_i2 * N_j1 ));
}


/* 2
/* 1
* ^
* /
* 1
* 2
* /
* /
* 2
* 1
*/
{
uint32_t site_j2;
lattice.coor2site({m+1,n+1}, 2, site_j2, work);
auto c_up_j2 = qbasis::opr<std::complex<double>>(site_j2,0,true,c_up);
auto c_dn_j2 = qbasis::opr<std::complex<double>>(site_j2,0,true,c_dn);
auto c_up_dg_j2 = c_up_j2; c_up_dg_j2.dagger();
auto c_dn_dg_j2 = c_dn_j2; c_dn_dg_j2.dagger();
auto Splus_j2 = c_up_dg_j2 * c_dn_j2;
auto Sminus_j2 = c_dn_dg_j2 * c_up_j2;
auto Sz_j2 = std::complex<double>(0.5,0.0) * (c_up_dg_j2 * c_up_j2 - c_dn_dg_j2 * c_dn_j2);
auto N_j2 = (c_up_dg_j2 * c_up_j2 + c_dn_dg_j2 * c_dn_j2);
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i1 * c_up_j2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_j2 * c_up_i1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i1 * c_dn_j2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_j2 * c_dn_i1 ));
tJ.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i1 * Sminus_j2 + Sminus_i1 * Splus_j2));
tJ.add_Ham(std::complex<double>(J,0.0) * ( Sz_i1 * Sz_j2 ));
tJ.add_Ham(std::complex<double>(-0.25*J,0.0) * ( N_i1 * N_j2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i2 * c_up_i1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_up_dg_i1 * c_up_i2 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i2 * c_dn_i1 ));
tJ.add_Ham(std::complex<double>(-t,0.0) * ( c_dn_dg_i1 * c_dn_i2 ));
tJ.add_Ham(std::complex<double>(0.5*J,0.0) * (Splus_i2 * Sminus_i1 + Sminus_i2 * Splus_i1));
tJ.add_Ham(std::complex<double>(J,0.0) * ( Sz_i2 * Sz_i1 ));
tJ.add_Ham(std::complex<double>(-0.25*J,0.0) * ( N_i2 * N_i1 ));
}

// total Sz operator
Expand Down

0 comments on commit 33324ce

Please sign in to comment.