Dear all, In alps models all the basis are defined on site positions. When there are interactions between atoms and photons, an atom on each site can absorb or emit photons, how to define such basis for photons? Thanks.
This is something that I personally never tried, but here is maybe a starting point to develop further.
Define a graph (unfortunately there will be no generic lattice for this) like: * a photons reservoir: <VERTEX type=1 id=1 /> * the usual sites: <VERTEX type=0 id=2 /> <VERTEX type=0 id=3 /> <VERTEX type=0 id=4 /> … * edges between usual sites, e.g. a chain: <EDGE source=“2" target=“3" id="1" type="0" vector="1"/> <EDGE source=“3" target=“4" id="2" type="0" vector="1"/> <EDGE source=“4" target=“5" id="3" type="0" vector="1"/> … * edge between atoms and photon reservoir: <EDGE source=“1" target=“2" id=“4" type=“1"/> <EDGE source=“1" target=“3" id=“5" type=“1"/> <EDGE source=“1" target=“4" id=“6" type=“1"/>
Then for the model.
<BASIS name=“photon lattice"> <SITEBASIS type="0" ref="fermion"/> <SITEBASIS type="1" ref=“bosons”/> <— this will be your photons </BASIS>
In the Hamiltonian you can then define terms like: t0*cdag_up(i)*c_up(j) <— for the usual particles t1*bdag(i)*c_up(j) <— for photon-atom interactions
Note that on the single site hosting all photons you need to define a cutoff, e.g. Nmax=100. (for some codes this cutoff can make the calculation very expensive!)
Best regards, Michele
-- ETH Zurich Michele Dolfi Institute for Theoretical Physics HIT G 32.4 Wolfgang-Pauli-Str. 27 8093 Zurich Switzerland
dolfim@phys.ethz.ch www.itp.phys.ethz.ch
+41 44 633 78 56 phone +41 44 633 11 15 fax
On 05 May 2016, at 11:13, 梁霄 lxxhlb@mail.ustc.edu.cn wrote:
Dear all, In alps models all the basis are defined on site positions. When there are interactions between atoms and photons, an atom on each site can absorb or emit photons, how to define such basis for photons? Thanks.
Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
If you have a separate reservoir on each site then you can just use a ladder that has different types for the two sites in the ladder’s unit cell
On 05 May 2016, at 07:44, Michele Dolfi dolfim@phys.ethz.ch wrote:
This is something that I personally never tried, but here is maybe a starting point to develop further.
Define a graph (unfortunately there will be no generic lattice for this) like:
- a photons reservoir:
<VERTEX type=1 id=1 /> * the usual sites: <VERTEX type=0 id=2 /> <VERTEX type=0 id=3 /> <VERTEX type=0 id=4 /> … * edges between usual sites, e.g. a chain: <EDGE source=“2" target=“3" id="1" type="0" vector="1"/> <EDGE source=“3" target=“4" id="2" type="0" vector="1"/> <EDGE source=“4" target=“5" id="3" type="0" vector="1"/> … * edge between atoms and photon reservoir: <EDGE source=“1" target=“2" id=“4" type=“1"/> <EDGE source=“1" target=“3" id=“5" type=“1"/> <EDGE source=“1" target=“4" id=“6" type=“1"/>
Then for the model.
<BASIS name=“photon lattice">
<SITEBASIS type="0" ref="fermion"/> <SITEBASIS type="1" ref=“bosons”/> <— this will be your photons </BASIS>
In the Hamiltonian you can then define terms like: t0*cdag_up(i)*c_up(j) <— for the usual particles t1*bdag(i)*c_up(j) <— for photon-atom interactions
Note that on the single site hosting all photons you need to define a cutoff, e.g. Nmax=100. (for some codes this cutoff can make the calculation very expensive!)
Best regards, Michele
-- ETH Zurich Michele Dolfi Institute for Theoretical Physics HIT G 32.4 Wolfgang-Pauli-Str. 27 8093 Zurich Switzerland
dolfim@phys.ethz.ch www.itp.phys.ethz.ch
+41 44 633 78 56 phone +41 44 633 11 15 fax
On 05 May 2016, at 11:13, 梁霄 lxxhlb@mail.ustc.edu.cn wrote:
Dear all, In alps models all the basis are defined on site positions. When there are interactions between atoms and photons, an atom on each site can absorb or emit photons, how to define such basis for photons? Thanks.
Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
Michele Dolfi, Firstly thanks for your help, I followed the methods and here is my lattice file:
<GRAPH name = "jc" vertices="16" edges="29"> <VERTEX id="1" type="1"><COORDINATE>0</COORDINATE></VERTEX> <VERTEX id="2" type="0"><COORDINATE>2</COORDINATE></VERTEX> <VERTEX id="3" type="0"><COORDINATE>3</COORDINATE></VERTEX> <VERTEX id="4" type="0"><COORDINATE>4</COORDINATE></VERTEX> <VERTEX id="5" type="0"><COORDINATE>5</COORDINATE></VERTEX> <VERTEX id="6" type="0"><COORDINATE>6</COORDINATE></VERTEX> <VERTEX id="7" type="0"><COORDINATE>7</COORDINATE></VERTEX> <VERTEX id="8" type="0"><COORDINATE>8</COORDINATE></VERTEX> <VERTEX id="9" type="0"><COORDINATE>9</COORDINATE></VERTEX> <VERTEX id="10" type="0"><COORDINATE>10</COORDINATE></VERTEX> <VERTEX id="11" type="0"><COORDINATE>11</COORDINATE></VERTEX> <VERTEX id="12" type="0"><COORDINATE>12</COORDINATE></VERTEX> <VERTEX id="13" type="0"><COORDINATE>13</COORDINATE></VERTEX> <VERTEX id="14" type="0"><COORDINATE>14</COORDINATE></VERTEX> <VERTEX id="15" type="0"><COORDINATE>15</COORDINATE></VERTEX> <VERTEX id="16" type="0"><COORDINATE>16</COORDINATE></VERTEX> <EDGE source="2" target="3" id="1" type="0"/> <EDGE source="3" target="4" id="2" type="0"/> <EDGE source="4" target="5" id="3" type="0"/> <EDGE source="5" target="6" id="4" type="0"/> <EDGE source="6" target="7" id="5" type="0"/> <EDGE source="7" target="8" id="6" type="0"/> <EDGE source="8" target="9" id="7" type="0"/> <EDGE source="9" target="10" id="8" type="0"/> <EDGE source="10" target="11" id="9" type="0"/> <EDGE source="11" target="12" id="10" type="0"/> <EDGE source="12" target="13" id="11" type="0"/> <EDGE source="13" target="14" id="12" type="0"/> <EDGE source="14" target="15" id="13" type="0"/> <EDGE source="15" target="16" id="14" type="0"/> <EDGE source="1" target="2" id="15" type="1"/> <EDGE source="1" target="3" id="16" type="1"/> <EDGE source="1" target="4" id="17" type="1"/> <EDGE source="1" target="5" id="18" type="1"/> <EDGE source="1" target="6" id="19" type="1"/> <EDGE source="1" target="7" id="20" type="1"/> <EDGE source="1" target="8" id="21" type="1"/> <EDGE source="1" target="9" id="22" type="1"/> <EDGE source="1" target="10" id="23" type="1"/> <EDGE source="1" target="11" id="24" type="1"/> <EDGE source="1" target="12" id="25" type="1"/> <EDGE source="1" target="13" id="26" type="1"/> <EDGE source="1" target="14" id="27" type="1"/> <EDGE source="1" target="15" id="28" type="1"/> <EDGE source="1" target="16" id="29" type="1"/> </GRAPH>
And the model is defines as:
<SITEBASIS name="boson"> <PARAMETER name="Nmax" default="infinity"/> <QUANTUMNUMBER name="N" min="0" max="Nmax"/> <OPERATOR name="bdag" matrixelement="sqrt(N+1)"> <CHANGE quantumnumber="N" change="1"/> </OPERATOR> <OPERATOR name="b" matrixelement="sqrt(N)"> <CHANGE quantumnumber="N" change="-1"/> </OPERATOR> <OPERATOR name="n" matrixelement="N"/> </SITEBASIS>
<SITEBASIS name="photon"> <PARAMETER name="Nphmax" default="infinity"/> <QUANTUMNUMBER name="Nph" min="0" max="Nphmax"/> <OPERATOR name="adag" matrixelement="sqrt(Nph+1)"> <CHANGE quantumnumber="Nph" change="1"/> </OPERATOR> <OPERATOR name="a" matrixelement="sqrt(Nph)"> <CHANGE quantumnumber="Nph" change="-1"/> </OPERATOR> <OPERATOR name="nph" matrixelement="Nph"/> </SITEBASIS>
<BASIS name="jc"> <SITEBASIS type="0" ref="boson"/> <SITEBASIS type="1" ref="photon"/> <CONSTRAINT quantumnumber="N" value="N_total"/> <CONSTRAINT quantumnumber="Nph" value="Nph_total"/> </BASIS>
<HAMILTONIAN name="jc"> <PARAMETER name="mu" default="0"/> <PARAMETER name="K" default="0"/> <PARAMETER name="t" default="1"/> <PARAMETER name="U" default="0"/> <PARAMETER name="g" default="0"/> <PARAMETER name="V" default="0"/> <PARAMETER name="V'" default="0"/> <PARAMETER name="t0" default="t"/> <PARAMETER name="t1" default="g"/> <PARAMETER name="V0" default="V"/> <PARAMETER name="V1" default="V'"/> <PARAMETER name="W" default="0"/> <PARAMETER name="Dc" default="0"/> <BASIS ref="jc"/> <SITETERM type="0" site="i"> -mu*n(i)+U*n(i)*(n(i)-1)/2 </SITETERM> <SITETERM type="1" site="i"> -Dc*nph(i) </SITETERM> <BONDTERM type="0" source="i" target="j"> -t0*(bdag(i)*b(j)+b(i)*bdag(j)) </BONDTERM> <BONDTERM type="1" source="i" target="j"> g*(adag(i)*b(j)+bdag(j)*a(i)) </BONDTERM> </HAMILTONIAN>
It seems that the coupling strength "g" has no effect to ground energy, and the DMRG crashes with segment fault within non-zero total photon numbers (non-zero "Nph_total" defined in model).
Also, the local density number of both atom and light cannot be measured, the DMRG will end with "cannot evaluate n(i)". Could you give me any help? Thanks.
-----Original Messages----- From: "Michele Dolfi" dolfim@phys.ethz.ch Sent Time: 2016-05-05 22:44:49 (Thursday) To: comp-phys-alps-users@lists.phys.ethz.ch Cc: Subject: Re: [ALPS-users] Define a J-C model
This is something that I personally never tried, but here is maybe a starting point to develop further.
Define a graph (unfortunately there will be no generic lattice for this) like:
- a photons reservoir:
<VERTEX type=1 id=1 /> * the usual sites: <VERTEX type=0 id=2 /> <VERTEX type=0 id=3 /> <VERTEX type=0 id=4 /> … * edges between usual sites, e.g. a chain: <EDGE source=“2" target=“3" id="1" type="0" vector="1"/> <EDGE source=“3" target=“4" id="2" type="0" vector="1"/> <EDGE source=“4" target=“5" id="3" type="0" vector="1"/> … * edge between atoms and photon reservoir: <EDGE source=“1" target=“2" id=“4" type=“1"/> <EDGE source=“1" target=“3" id=“5" type=“1"/> <EDGE source=“1" target=“4" id=“6" type=“1"/>
Then for the model.
<BASIS name=“photon lattice">
<SITEBASIS type="0" ref="fermion"/> <SITEBASIS type="1" ref=“bosons”/> <— this will be your photons </BASIS>
In the Hamiltonian you can then define terms like: t0*cdag_up(i)*c_up(j) <— for the usual particles t1*bdag(i)*c_up(j) <— for photon-atom interactions
Note that on the single site hosting all photons you need to define a cutoff, e.g. Nmax=100. (for some codes this cutoff can make the calculation very expensive!)
Best regards, Michele
-- ETH Zurich Michele Dolfi Institute for Theoretical Physics HIT G 32.4 Wolfgang-Pauli-Str. 27 8093 Zurich Switzerland
dolfim@phys.ethz.ch www.itp.phys.ethz.ch
+41 44 633 78 56 phone +41 44 633 11 15 fax
On 05 May 2016, at 11:13, 梁霄 lxxhlb@mail.ustc.edu.cn wrote:
Dear all, In alps models all the basis are defined on site positions. When there are interactions between atoms and photons, an atom on each site can absorb or emit photons, how to define such basis for photons? Thanks.
Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
First, if you can decouple the single reservoir into local un-coupled reservoir, the ladder proposed by M. Troyer is computationally much more efficient, since you avoid a huge local Hilbert space and all the effective long-range interactions.
If I remember correctly, the dmrg code does not support local measurements when the operator at some site is not defined. The mps_optim code should support it. The easy solution for it is anyway defining n(i) also on the photonic site, and then you just ignore its value in the evaluation.
I would first test and compare the new model on a small system using sparsediag.
Best regards, Michele
-- ETH Zurich Michele Dolfi Institute for Theoretical Physics HIT G 32.4 Wolfgang-Pauli-Str. 27 8093 Zurich Switzerland
dolfim@phys.ethz.ch www.itp.phys.ethz.ch
+41 44 633 78 56 phone +41 44 633 11 15 fax
On May 6, 2016, at 9:10 AM, 梁霄 lxxhlb@mail.ustc.edu.cn wrote:
Michele Dolfi, Firstly thanks for your help, I followed the methods and here is my lattice file:
<GRAPH name = "jc" vertices="16" edges="29"> <VERTEX id="1" type="1"><COORDINATE>0</COORDINATE></VERTEX> <VERTEX id="2" type="0"><COORDINATE>2</COORDINATE></VERTEX> <VERTEX id="3" type="0"><COORDINATE>3</COORDINATE></VERTEX> <VERTEX id="4" type="0"><COORDINATE>4</COORDINATE></VERTEX> <VERTEX id="5" type="0"><COORDINATE>5</COORDINATE></VERTEX> <VERTEX id="6" type="0"><COORDINATE>6</COORDINATE></VERTEX> <VERTEX id="7" type="0"><COORDINATE>7</COORDINATE></VERTEX> <VERTEX id="8" type="0"><COORDINATE>8</COORDINATE></VERTEX> <VERTEX id="9" type="0"><COORDINATE>9</COORDINATE></VERTEX> <VERTEX id="10" type="0"><COORDINATE>10</COORDINATE></VERTEX> <VERTEX id="11" type="0"><COORDINATE>11</COORDINATE></VERTEX> <VERTEX id="12" type="0"><COORDINATE>12</COORDINATE></VERTEX> <VERTEX id="13" type="0"><COORDINATE>13</COORDINATE></VERTEX> <VERTEX id="14" type="0"><COORDINATE>14</COORDINATE></VERTEX> <VERTEX id="15" type="0"><COORDINATE>15</COORDINATE></VERTEX> <VERTEX id="16" type="0"><COORDINATE>16</COORDINATE></VERTEX> <EDGE source="2" target="3" id="1" type="0"/> <EDGE source="3" target="4" id="2" type="0"/> <EDGE source="4" target="5" id="3" type="0"/> <EDGE source="5" target="6" id="4" type="0"/> <EDGE source="6" target="7" id="5" type="0"/> <EDGE source="7" target="8" id="6" type="0"/> <EDGE source="8" target="9" id="7" type="0"/> <EDGE source="9" target="10" id="8" type="0"/> <EDGE source="10" target="11" id="9" type="0"/> <EDGE source="11" target="12" id="10" type="0"/> <EDGE source="12" target="13" id="11" type="0"/> <EDGE source="13" target="14" id="12" type="0"/> <EDGE source="14" target="15" id="13" type="0"/> <EDGE source="15" target="16" id="14" type="0"/> <EDGE source="1" target="2" id="15" type="1"/> <EDGE source="1" target="3" id="16" type="1"/> <EDGE source="1" target="4" id="17" type="1"/> <EDGE source="1" target="5" id="18" type="1"/> <EDGE source="1" target="6" id="19" type="1"/> <EDGE source="1" target="7" id="20" type="1"/> <EDGE source="1" target="8" id="21" type="1"/> <EDGE source="1" target="9" id="22" type="1"/> <EDGE source="1" target="10" id="23" type="1"/> <EDGE source="1" target="11" id="24" type="1"/> <EDGE source="1" target="12" id="25" type="1"/> <EDGE source="1" target="13" id="26" type="1"/> <EDGE source="1" target="14" id="27" type="1"/> <EDGE source="1" target="15" id="28" type="1"/> <EDGE source="1" target="16" id="29" type="1"/> </GRAPH>
And the model is defines as:
<SITEBASIS name="boson"> <PARAMETER name="Nmax" default="infinity"/> <QUANTUMNUMBER name="N" min="0" max="Nmax"/> <OPERATOR name="bdag" matrixelement="sqrt(N+1)"> <CHANGE quantumnumber="N" change="1"/> </OPERATOR> <OPERATOR name="b" matrixelement="sqrt(N)"> <CHANGE quantumnumber="N" change="-1"/> </OPERATOR> <OPERATOR name="n" matrixelement="N"/> </SITEBASIS>
<SITEBASIS name="photon"> <PARAMETER name="Nphmax" default="infinity"/> <QUANTUMNUMBER name="Nph" min="0" max="Nphmax"/> <OPERATOR name="adag" matrixelement="sqrt(Nph+1)"> <CHANGE quantumnumber="Nph" change="1"/> </OPERATOR> <OPERATOR name="a" matrixelement="sqrt(Nph)"> <CHANGE quantumnumber="Nph" change="-1"/> </OPERATOR> <OPERATOR name="nph" matrixelement="Nph"/> </SITEBASIS>
<BASIS name="jc"> <SITEBASIS type="0" ref="boson"/> <SITEBASIS type="1" ref="photon"/> <CONSTRAINT quantumnumber="N" value="N_total"/> <CONSTRAINT quantumnumber="Nph" value="Nph_total"/> </BASIS>
<HAMILTONIAN name="jc"> <PARAMETER name="mu" default="0"/> <PARAMETER name="K" default="0"/> <PARAMETER name="t" default="1"/> <PARAMETER name="U" default="0"/> <PARAMETER name="g" default="0"/> <PARAMETER name="V" default="0"/> <PARAMETER name="V'" default="0"/> <PARAMETER name="t0" default="t"/> <PARAMETER name="t1" default="g"/> <PARAMETER name="V0" default="V"/> <PARAMETER name="V1" default="V'"/> <PARAMETER name="W" default="0"/> <PARAMETER name="Dc" default="0"/> <BASIS ref="jc"/> <SITETERM type="0" site="i"> -mu*n(i)+U*n(i)*(n(i)-1)/2 </SITETERM> <SITETERM type="1" site="i"> -Dc*nph(i) </SITETERM> <BONDTERM type="0" source="i" target="j"> -t0*(bdag(i)*b(j)+b(i)*bdag(j)) </BONDTERM> <BONDTERM type="1" source="i" target="j"> g*(adag(i)*b(j)+bdag(j)*a(i)) </BONDTERM> </HAMILTONIAN>
It seems that the coupling strength "g" has no effect to ground energy, and the DMRG crashes with segment fault within non-zero total photon numbers (non-zero "Nph_total" defined in model).
Also, the local density number of both atom and light cannot be measured, the DMRG will end with "cannot evaluate n(i)". Could you give me any help? Thanks.
-----Original Messages----- From: "Michele Dolfi" dolfim@phys.ethz.ch Sent Time: 2016-05-05 22:44:49 (Thursday) To: comp-phys-alps-users@lists.phys.ethz.ch Cc: Subject: Re: [ALPS-users] Define a J-C model
This is something that I personally never tried, but here is maybe a starting point to develop further.
Define a graph (unfortunately there will be no generic lattice for this) like:
- a photons reservoir:
<VERTEX type=1 id=1 /> * the usual sites: <VERTEX type=0 id=2 /> <VERTEX type=0 id=3 /> <VERTEX type=0 id=4 /> … * edges between usual sites, e.g. a chain: <EDGE source=“2" target=“3" id="1" type="0" vector="1"/> <EDGE source=“3" target=“4" id="2" type="0" vector="1"/> <EDGE source=“4" target=“5" id="3" type="0" vector="1"/> … * edge between atoms and photon reservoir: <EDGE source=“1" target=“2" id=“4" type=“1"/> <EDGE source=“1" target=“3" id=“5" type=“1"/> <EDGE source=“1" target=“4" id=“6" type=“1"/>
Then for the model.
<BASIS name=“photon lattice">
<SITEBASIS type="0" ref="fermion"/> <SITEBASIS type="1" ref=“bosons”/> <— this will be your photons </BASIS>
In the Hamiltonian you can then define terms like: t0*cdag_up(i)*c_up(j) <— for the usual particles t1*bdag(i)*c_up(j) <— for photon-atom interactions
Note that on the single site hosting all photons you need to define a cutoff, e.g. Nmax=100. (for some codes this cutoff can make the calculation very expensive!)
Best regards, Michele
-- ETH Zurich Michele Dolfi Institute for Theoretical Physics HIT G 32.4 Wolfgang-Pauli-Str. 27 8093 Zurich Switzerland
dolfim@phys.ethz.ch www.itp.phys.ethz.ch
+41 44 633 78 56 phone +41 44 633 11 15 fax
On 05 May 2016, at 11:13, 梁霄 lxxhlb@mail.ustc.edu.cn wrote:
Dear all, In alps models all the basis are defined on site positions. When there are interactions between atoms and photons, an atom on each site can absorb or emit photons, how to define such basis for photons? Thanks.
Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
Michele Dolfi, The long range interaction between atoms is what I am focusing on, unlike the reservoirs in the JCH model. However the light-atom interaction is much faster than the movement of atom in the lattice, hence the atom only feels a stationary potential in a particular position, and the lattice or the model file may be simplified. However, it is still interesting to technically implement a DMRG (or other algorithms in ALPS) solution when all the atoms share a reservoir.
-----Original Messages----- From:"Michele Dolfi" dolfim@phys.ethz.ch Sent Time:2016-05-06 15:35:17 (Friday) To: comp-phys-alps-users@lists.phys.ethz.ch Cc: Subject: Re: [ALPS-users] Define a J-C model
First, if you can decouple the single reservoir into local un-coupled reservoir, the ladder proposed by M. Troyer is computationally much more efficient, since you avoid a huge local Hilbert space and all the effective long-range interactions.
If I remember correctly, the dmrg code does not support local measurements when the operator at some site is not defined. The mps_optim code should support it. The easy solution for it is anyway defining n(i) also on the photonic site, and then you just ignore its value in the evaluation.
I would first test and compare the new model on a small system using sparsediag.
Best regards, Michele
-- ETH Zurich Michele Dolfi Institute for Theoretical Physics HIT G 32.4 Wolfgang-Pauli-Str. 27 8093 Zurich Switzerland
dolfim@phys.ethz.ch www.itp.phys.ethz.ch
+41 44 633 78 56 phone +41 44 633 11 15 fax
On May 6, 2016, at 9:10 AM, 梁霄 lxxhlb@mail.ustc.edu.cn wrote:
Michele Dolfi, Firstly thanks for your help, I followed the methods and here is my lattice file:
<GRAPH name = "jc" vertices="16" edges="29"> <VERTEX id="1" type="1"><COORDINATE>0</COORDINATE></VERTEX> <VERTEX id="2" type="0"><COORDINATE>2</COORDINATE></VERTEX> <VERTEX id="3" type="0"><COORDINATE>3</COORDINATE></VERTEX> <VERTEX id="4" type="0"><COORDINATE>4</COORDINATE></VERTEX> <VERTEX id="5" type="0"><COORDINATE>5</COORDINATE></VERTEX> <VERTEX id="6" type="0"><COORDINATE>6</COORDINATE></VERTEX> <VERTEX id="7" type="0"><COORDINATE>7</COORDINATE></VERTEX> <VERTEX id="8" type="0"><COORDINATE>8</COORDINATE></VERTEX> <VERTEX id="9" type="0"><COORDINATE>9</COORDINATE></VERTEX> <VERTEX id="10" type="0"><COORDINATE>10</COORDINATE></VERTEX> <VERTEX id="11" type="0"><COORDINATE>11</COORDINATE></VERTEX> <VERTEX id="12" type="0"><COORDINATE>12</COORDINATE></VERTEX> <VERTEX id="13" type="0"><COORDINATE>13</COORDINATE></VERTEX> <VERTEX id="14" type="0"><COORDINATE>14</COORDINATE></VERTEX> <VERTEX id="15" type="0"><COORDINATE>15</COORDINATE></VERTEX> <VERTEX id="16" type="0"><COORDINATE>16</COORDINATE></VERTEX> <EDGE source="2" target="3" id="1" type="0"/> <EDGE source="3" target="4" id="2" type="0"/> <EDGE source="4" target="5" id="3" type="0"/> <EDGE source="5" target="6" id="4" type="0"/> <EDGE source="6" target="7" id="5" type="0"/> <EDGE source="7" target="8" id="6" type="0"/> <EDGE source="8" target="9" id="7" type="0"/> <EDGE source="9" target="10" id="8" type="0"/> <EDGE source="10" target="11" id="9" type="0"/> <EDGE source="11" target="12" id="10" type="0"/> <EDGE source="12" target="13" id="11" type="0"/> <EDGE source="13" target="14" id="12" type="0"/> <EDGE source="14" target="15" id="13" type="0"/> <EDGE source="15" target="16" id="14" type="0"/> <EDGE source="1" target="2" id="15" type="1"/> <EDGE source="1" target="3" id="16" type="1"/> <EDGE source="1" target="4" id="17" type="1"/> <EDGE source="1" target="5" id="18" type="1"/> <EDGE source="1" target="6" id="19" type="1"/> <EDGE source="1" target="7" id="20" type="1"/> <EDGE source="1" target="8" id="21" type="1"/> <EDGE source="1" target="9" id="22" type="1"/> <EDGE source="1" target="10" id="23" type="1"/> <EDGE source="1" target="11" id="24" type="1"/> <EDGE source="1" target="12" id="25" type="1"/> <EDGE source="1" target="13" id="26" type="1"/> <EDGE source="1" target="14" id="27" type="1"/> <EDGE source="1" target="15" id="28" type="1"/> <EDGE source="1" target="16" id="29" type="1"/> </GRAPH>
And the model is defines as:
<SITEBASIS name="boson"> <PARAMETER name="Nmax" default="infinity"/> <QUANTUMNUMBER name="N" min="0" max="Nmax"/> <OPERATOR name="bdag" matrixelement="sqrt(N+1)"> <CHANGE quantumnumber="N" change="1"/> </OPERATOR> <OPERATOR name="b" matrixelement="sqrt(N)"> <CHANGE quantumnumber="N" change="-1"/> </OPERATOR> <OPERATOR name="n" matrixelement="N"/> </SITEBASIS>
<SITEBASIS name="photon"> <PARAMETER name="Nphmax" default="infinity"/> <QUANTUMNUMBER name="Nph" min="0" max="Nphmax"/> <OPERATOR name="adag" matrixelement="sqrt(Nph+1)"> <CHANGE quantumnumber="Nph" change="1"/> </OPERATOR> <OPERATOR name="a" matrixelement="sqrt(Nph)"> <CHANGE quantumnumber="Nph" change="-1"/> </OPERATOR> <OPERATOR name="nph" matrixelement="Nph"/> </SITEBASIS>
<BASIS name="jc"> <SITEBASIS type="0" ref="boson"/> <SITEBASIS type="1" ref="photon"/> <CONSTRAINT quantumnumber="N" value="N_total"/> <CONSTRAINT quantumnumber="Nph" value="Nph_total"/> </BASIS>
<HAMILTONIAN name="jc"> <PARAMETER name="mu" default="0"/> <PARAMETER name="K" default="0"/> <PARAMETER name="t" default="1"/> <PARAMETER name="U" default="0"/> <PARAMETER name="g" default="0"/> <PARAMETER name="V" default="0"/> <PARAMETER name="V'" default="0"/> <PARAMETER name="t0" default="t"/> <PARAMETER name="t1" default="g"/> <PARAMETER name="V0" default="V"/> <PARAMETER name="V1" default="V'"/> <PARAMETER name="W" default="0"/> <PARAMETER name="Dc" default="0"/> <BASIS ref="jc"/> <SITETERM type="0" site="i"> -mu*n(i)+U*n(i)*(n(i)-1)/2 </SITETERM> <SITETERM type="1" site="i"> -Dc*nph(i) </SITETERM> <BONDTERM type="0" source="i" target="j"> -t0*(bdag(i)*b(j)+b(i)*bdag(j)) </BONDTERM> <BONDTERM type="1" source="i" target="j"> g*(adag(i)*b(j)+bdag(j)*a(i)) </BONDTERM> </HAMILTONIAN>
It seems that the coupling strength "g" has no effect to ground energy, and the DMRG crashes with segment fault within non-zero total photon numbers (non-zero "Nph_total" defined in model).
Also, the local density number of both atom and light cannot be measured, the DMRG will end with "cannot evaluate n(i)". Could you give me any help? Thanks.
-----Original Messages----- From: "Michele Dolfi" dolfim@phys.ethz.ch Sent Time: 2016-05-05 22:44:49 (Thursday) To: comp-phys-alps-users@lists.phys.ethz.ch Cc: Subject: Re: [ALPS-users] Define a J-C model
This is something that I personally never tried, but here is maybe a starting point to develop further.
Define a graph (unfortunately there will be no generic lattice for this) like: * a photons reservoir: <VERTEX type=1 id=1 /> * the usual sites: <VERTEX type=0 id=2 /> <VERTEX type=0 id=3 /> <VERTEX type=0 id=4 /> … * edges between usual sites, e.g. a chain: <EDGE source=“2" target=“3" id="1" type="0" vector="1"/> <EDGE source=“3" target=“4" id="2" type="0" vector="1"/> <EDGE source=“4" target=“5" id="3" type="0" vector="1"/> … * edge between atoms and photon reservoir: <EDGE source=“1" target=“2" id=“4" type=“1"/> <EDGE source=“1" target=“3" id=“5" type=“1"/> <EDGE source=“1" target=“4" id=“6" type=“1"/>
Then for the model.
<BASIS name=“photon lattice"> <SITEBASIS type="0" ref="fermion"/> <SITEBASIS type="1" ref=“bosons”/> <— this will be your photons </BASIS>
In the Hamiltonian you can then define terms like: t0*cdag_up(i)*c_up(j) <— for the usual particles t1*bdag(i)*c_up(j) <— for photon-atom interactions
Note that on the single site hosting all photons you need to define a cutoff, e.g. Nmax=100. (for some codes this cutoff can make the calculation very expensive!)
Best regards, Michele
-- ETH Zurich Michele Dolfi Institute for Theoretical Physics HIT G 32.4 Wolfgang-Pauli-Str. 27 8093 Zurich Switzerland
dolfim@phys.ethz.ch www.itp.phys.ethz.ch
+41 44 633 78 56 phone +41 44 633 11 15 fax
On 05 May 2016, at 11:13, 梁霄 lxxhlb@mail.ustc.edu.cn wrote:
Dear all, In alps models all the basis are defined on site positions. When there are interactions between atoms and photons, an atom on each site can absorb or emit photons, how to define such basis for photons? Thanks.
---- Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
---- Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
---- Comp-phys-alps-users Mailing List for the ALPS Project http://alps.comp-phys.org/
List info: https://lists.phys.ethz.ch//listinfo/comp-phys-alps-users Archive: https://lists.phys.ethz.ch//pipermail/comp-phys-alps-users
Unsubscribe by writing a mail to comp-phys-alps-users-leave@lists.phys.ethz.ch.
comp-phys-alps-users@lists.phys.ethz.ch