Hi Kuang-Shing Chen,
yes, that function is only there for debug purposes. We start the simulation from expansion order zero, where we know the matrix, and then add and remove operators for a few steps (thermalize) be for we start measuring our observables.
So only the 'add' and 'remove' functions are needed for the incremental updates, but not the recompute function. You'll see that the functions insert_remove_antisegment and insert_remove_segment get 'M' passed to it.
Best, Emanuel
On Dec 13, 2011, at 7:46 AM, Kuangshing Chen wrote:
Hi,
I look through the source code of hybridization in alps/applications/dmft/qmc and have a question:
The template function construct_matrix in update.h is defined but NEVER used in the code.
I use grep to search for that: grep construct_matrix * -R
The result is only the definition in update.h. Now the question is: How is the matrix M (inverse of hybridization function) constructed? M is only initialized in the constructor of HybridizationRun but it is never assigned to any value after that. How is the code working without defining M?
Thank you,
Kuang-Shing Chen