stride working ofr hellman-feynman rmc estimator

git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@5626 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This commit is contained in:
Jeremy McMinis 2012-11-25 15:42:31 +00:00
parent c9e18bc385
commit 7839477a3c
1 changed files with 18 additions and 9 deletions

View File

@ -161,7 +161,8 @@ namespace qmcplusplus {
{
for(int obsi=1;obsi<SizeOfHamiltonians ;obsi++)
{
scalars[oindx++]((*Bit)->getPropertyBase(i)[obsi+FirstHamiltonian], uw);
if(xi%stride==0)
scalars[oindx++]((*Bit)->getPropertyBase(i)[obsi+FirstHamiltonian], uw);
ObsSumL(xi+1,obsi-1)=(*Bit)->getPropertyBase(i)[obsi+FirstHamiltonian] + ObsSumL(xi,obsi-1);
}
}
@ -170,20 +171,28 @@ namespace qmcplusplus {
Bit_first--;
xi--;
for( MultiChain::iterator Bit = Bit_last; Bit != Bit_first; Bit--,xi--)
{
for(int obsi=1;obsi<SizeOfHamiltonians ;obsi++)
{
ObsSumR(xi-1,obsi-1)=ObsSumR(xi,obsi-1)+(*Bit)->getPropertyBase(i)[obsi+FirstHamiltonian];
// E*D
scalars[oindx++](Tau*(TailProp[LOCALENERGY]*ObsSumL(xi,obsi-1)+HeadProp[LOCALENERGY]*ObsSumR(xi,obsi-1)), uw);
// L and R
scalars[oindx++](Tau*ObsSumL(xi,obsi-1), uw);
scalars[oindx++](Tau*ObsSumR(xi,obsi-1), uw);
xi=0;
Bit_last++;
Bit_first++;
for( MultiChain::iterator Bit = Bit_first; Bit != Bit_last; Bit++,xi++)
{
if(xi%stride==0)
{
for(int obsi=1;obsi<SizeOfHamiltonians ;obsi++)
{
// E*D
scalars[oindx++](Tau*(TailProp[LOCALENERGY]*ObsSumL(xi,obsi-1)+HeadProp[LOCALENERGY]*ObsSumR(xi,obsi-1)), uw);
// L and R
scalars[oindx++](Tau*ObsSumL(xi,obsi-1), uw);
scalars[oindx++](Tau*ObsSumR(xi,obsi-1), uw);
}
}
}
// //Center Pressure
// RealType* restrict CenProp(Reptile->center()->getPropertyBase(i));
// scalars[SizeOfHamiltonians+6]( (2.0*eloc-CenProp[LOCALPOTENTIAL])*pNorm ,uw);