Dear ALPS Developers/users I am using alps CT-QMC(Hybridization expansion) as impurity solver. But the total acceptance rate is getting low and low, and I'm wondering if it may affect the final result. In order to overcome this, I'm thinking to use additional update: 'shift of the segment end point' which is used to enhance the sampling efficiency (to increase the acceptance ratio and reduce auto-correlation times) which do not change the expansion order.
However, I didn't get in the documentation on how to implement this additional update as control parameter 'SPINFLIP'={0.1} : specify to whether to perform spin flip update. Is it possible to use for shift of the segment end point update 'N_SHIFT'=1 ? I need help on how to implement this additional update.
here is the sample
|------ Simulation details (master only) after 2665880 sweeps ------| Total acceptance rate = 22.92% Individual acceptance rate for update change zero state = 0.00% (proposal rate = 10.00%) insert segment = 6.37% (proposal rate = 25.00%) remove segment = 6.37% (proposal rate = 25.00%) insert anti-segment = 5.09% (proposal rate = 20.00%) remove anti-segment = 5.09% (proposal rate = 20.00%) swap segment = 0.00% (proposal rate = 0.00%) |-----------------------------------------------------------------|
Thank you for your time
Hi tesfaye mamuye,
at the moment we have no move implemented that shifts segment end points. You can implement one along the lines of the moves that are already there (see hybupdates.cpp line 41 and later), but my gut feeling is that moving segment end points will not enhance your sampling efficiency by much.
The update that shifts segments (in the code as shift_segment_update) is currently commented out, I have to look into that.
In principle shifting a segment is equivalent to removing a segment and then adding it somewhere again, so you don’t need those moves. Why do you think that they are necessary?
The spinflilp update is documented on line 513: Idea: take remove_segment_update and insert_segment_update and combine them so one segment is removed from on orbital (spin up or down) and inserted on the corresponding other_orbital (spin down or up), if the other_orbital is not filled.
Is that what you need?
Best wishes, Emanuel
On Sep 10, 2014, at 6:01 AM, tesfaye mamuye tesfa2127@yahoo.com wrote:
Dear ALPS Developers/users I am using alps CT-QMC(Hybridization expansion) as impurity solver. But the total acceptance rate is getting low and low, and I'm wondering if it may affect the final result. In order to overcome this, I'm thinking to use additional update: 'shift of the segment end point' which is used to enhance the sampling efficiency (to increase the acceptance ratio and reduce auto-correlation times) which do not change the expansion order.
However, I didn't get in the documentation on how to implement this additional update as control parameter 'SPINFLIP'={0.1} : specify to whether to perform spin flip update. Is it possible to use for shift of the segment end point update 'N_SHIFT'=1 ? I need help on how to implement this additional update.
here is the sample
|------ Simulation details (master only) after 2665880 sweeps ------| Total acceptance rate = 22.92% Individual acceptance rate for update change zero state = 0.00% (proposal rate = 10.00%) insert segment = 6.37% (proposal rate = 25.00%) remove segment = 6.37% (proposal rate = 25.00%) insert anti-segment = 5.09% (proposal rate = 20.00%) remove anti-segment = 5.09% (proposal rate = 20.00%) swap segment = 0.00% (proposal rate = 0.00%) |-----------------------------------------------------------------|
Thank you for your time
Dear Dr. Emanuel
I need it only to enhance my sampling efficiency. In the article "Phys. Rev.Lett. 97, 076405 (2006)" : 'shift of the segment end point' quantum Monte Carlo update is used to enhance the sampling efficiency. It also point out in Rev.Modern.Phys. 83, 349(2011) that it help to reduce auto-correlation times. That is why I need to implement the shift of the segment end point update.
Now I understood from your mail the update that shifts segments (in the code as shift_segment_update) is currently commented out . Now my questions are 1. why the total acceptance rate is this much small ? so far I have total acceptance rate between 8-23 % 2 does this percentage is acceptable ?, does it has impact on the final result ? what is the minimum total acceptable rate ? 3. how do I increase the total acceptance rate ? Please, Dr. Emanuel give me your recommendations
Thank you so much for your time
Tesfaye Mamuye
On Wednesday, September 10, 2014 3:25 PM, Emanuel Gull emanuel.gull@gmail.com wrote:
Hi tesfaye mamuye,
at the moment we have no move implemented that shifts segment end points. You can implement one along the lines of the moves that are already there (see hybupdates.cpp line 41 and later), but my gut feeling is that moving segment end points will not enhance your sampling efficiency by much.
The update that shifts segments (in the code as shift_segment_update) is currently commented out, I have to look into that.
In principle shifting a segment is equivalent to removing a segment and then adding it somewhere again, so you don’t need those moves. Why do you think that they are necessary?
The spinflilp update is documented on line 513: Idea: take remove_segment_update and insert_segment_update and combine them so one segment is removed from on orbital (spin up or down) and inserted on the corresponding other_orbital (spin down or up), if the other_orbital is not filled.
Is that what you need?
Best wishes, Emanuel
On Sep 10, 2014, at 6:01 AM, tesfaye mamuye tesfa2127@yahoo.com wrote:
Dear ALPS Developers/users
I am using alps CT-QMC(Hybridization expansion) as impurity solver. But the total acceptance rate is getting low and low, and I'm wondering if it may affect the final result. In order to overcome this, I'm thinking to use additional update: 'shift of the segment end point' which is used to enhance the sampling efficiency (to increase the acceptance ratio and reduce auto-correlation times) which do not change the expansion order.
However, I didn't get in the documentation on how to implement this additional update as control parameter 'SPINFLIP'={0.1} : specify to whether to perform spin flip update. Is it possible to use for shift of the segment end point update 'N_SHIFT'=1 ? I need help on how to implement this additional update.
here is the sample
|------ Simulation details (master only) after 2665880 sweeps ------| Total acceptance rate = 22.92% Individual acceptance rate for update change zero state = 0.00% (proposal rate = 10.00%) insert segment = 6.37% (proposal rate = 25.00%) remove segment = 6.37% (proposal rate = 25.00%) insert anti-segment = 5.09% (proposal rate = 20.00%) remove anti-segment = 5.09% (proposal rate = 20.00%) swap segment = 0.00% (proposal rate = 0.00%) |-----------------------------------------------------------------|
Thank you for your time
comp-phys-alps-users@lists.phys.ethz.ch