Fermion-Observables (Feature #165)
The implementation of fermion-obs has to be revisited and improved.
At the moment, inverter.cpp inverts a gaugefield using a (fixed) pointsource and then calculates the ps-correlator.
It is printed to screen afterwards.
What would be good to have:
- more freedom with the source
- choose type (point, random, ...). this should be implemented in a lateron extentable fashion.
- pointsource: Set position via input-file
- at the moment, the kernel is just a dummy one and it needs parallelization
- other correlators than ps need to be implemented
- output to file is desirable (output to screen could be handled as in heatbath (vial bool print_to_screen))
|related to CL2QCD - Feature #340: I/O of fermion fields||New||23 Oct 2012|
|related to CL2QCD - Feature #346: Test Correlators with stochastic sources||New||30 Oct 2012|
|blocked by CL2QCD - Feature #182: stochastic sources||Done||12 Sep 2011|
|blocked by CL2QCD - Feature #341: Calculation of chiral condensate||Done||23 Oct 2012||07 Dec 2012|
|blocked by CL2QCD - Feature #339: Observables I/O||Done||23 Oct 2012|
Update after what we did last week:
- point-source is very flexible now
- stochastic source environment ready (see issue #182)
- parallel version for ps_correlator added, needs testing
Here, I hardcoded the loop over the number of sources, I dont know if that is true when using stochatic sources. Also, you already mentioned that one also needs the ps_correlator in the t-direction. I think it is best to introduce a new kernel for that and switch between them in the calling function on the host. Alternatively, one could build in a switch in the kernel itself, but then one would loose some speed I guess. What do you think?
- more observables to come
Before you implement these, perhaps we should first move to the parallel kernels?!?
- How should this be carried out? We need some buffers on the correlator_device to store the results. We could then introduce a sync-like function where we copy them to the host and store them in the file.
We have a "problem": We have changed the ps_correlator kernel to get the spinorfield from the twelve results right. But the original inverter exec uses the same file and thus gets wrong results. I pushed a version of fermionobservables.cl where the newer code is commented out. so if as long as inverter_tmp is in fact tmp, one should put the line in by hand and be careful not to push the new version.
At this point, almost all features are implemented.
What is not is
- random source
- perhaps saving the inverted fields is desireable.
- Priority changed from High to Normal
- Assignee changed from Lars Zeidlewicz to Christopher Pinke
- % Done changed from 0 to 90
- Status changed from New to In Progress