qusers / qsource

Source for the Molecular Dynamics Package Q
Other
6 stars 0 forks source link

QFEP is broken, with too many files #7

Open amrein opened 9 years ago

amrein commented 9 years ago

Qfep does not proprely with more than about may be 500 files.

esguerra commented 9 years ago

I guess this will happen with qfep in all branches, but, any branch in particular you're working with? Any clues as to why it's not working properly? Is it crashing or making NaN's? How can we reproduce the problem?

amrein commented 9 years ago

It was indeed a very short bugreport. Qfep in all branches is affected, but only when at least 52 frames are read. I dont know when exactly the problem kicks in, but with 500 frames the problem was there. It gives you completetly weird energetics. Also, the number of energies turns into ***** and the profile is completely different from what you get, when you just qfep 1051 frames. I am not sure if qfep is intended for the described use, I was asked to read all 10 trajectories at once, and that seems to not work. Reproduction: Where I can store about 2GB of data (for all the energy files)?

Paul is working on it.

esguerra commented 9 years ago

Ouch! So the problem might be already present past 52 frames or so.

I have to hasten the pace on setting up the dedicated web-server for Q. This humble recycle of a server has 2 2Tb hardrives, so, that could be a place for our local q-testing alone and where such data (those 2GB for example) could go to.

My guess is that this would also break the Benett's Acceptance Ratio and Thermodynamic Integration protocols of Johan Sund which I've yet to incorporate into the master qfep.

acmnpv commented 8 years ago

I checked this again with >1000 files, the issue seems to be the same as in #15 If the files are ordered according to the lambda values, the behaviour is as expected (plot attached) issue15.pdf As far as I can see this is caused by the following lines in qfep.f90 594

veff1(j)=veff1(j)+FEP(ifile)%lambda(istate)*FEP(ifile)%v(j,istate,ipt)

596

veff2(j)=veff2(j)+FEP(ifile+1)%lambda(istate)*FEP(ifile)%v(j,istate,ipt)

606

dgfsum(j,ifile+1)=dgfsum(j,ifile)+dgf(j,ifile)

and others later on. One proposed fix would be to order the energy files in memeory after reading them in according to their lambda values. No example attached because that won't work for >1000 files