Closed ckoerber closed 5 years ago
I'd say the propagator doesn't even know about the ensemble necessarily. It knows the gauge configuration (by which I mean: some particular configuration in some markov chain), which knows the sea action. The propagator also knows about the RHS and the solver (which knows the valence parameters, and perhaps algorithmic information).
After some discussion with @cchang5 we converged on the following compromise:
Next discussion point: it seems to be possible to describe any propagator as
where specializations of PropagatorSource
are, e.g., Point(PropagatorSource)
, FeynmanHellmann(PropagatorSource)
, Sequential(PropagatorSource)
, Laph(PropagatorSource)
, ... (which could also point to Propagators
).
This basically shifts information from propagators to the Source (we just need one Propagator
table).
valenceaction
should be flexible enough to contain parameters from all kind of fermionic actions. Maybe a better way to think about this is
Discussion continued in #20.
Two points:
Once you invert the Dirac equation, you have to know about the gauge config and the origin vector. Thus it is consistent to tie those informations together.
Where do you put this information?
Does a
Propagator
only know about the generalEnsemble
or should it now about each individualGaugeConfig
. If the propagator only has knowledge about the ensemble, one must tie the gauge config info to the propagator at a later point.A. Advantage of ensemble knowledge only is that it keeps the physics table small.
B. Advantage of gauge config knowledge is that this is closer to the actual code objects.
What are your opinions?