Continuum-limit extrapolation
Eventually we will have to take a continuum limit. The class for this is in
latqcdtools.physics.continuumExtrap
It is the Extrapolator class, which inherits from the Fitter,
described here. You instantiate an Extrapolator with
ext = Extrapolator(x, obs, obs_err, order=1, xtype="a", error_strat='propagation', nproc=DEFAULTTHREADS)
Here x either denotes lattice spacing data or \(N_\tau\) data, which you can specify with the xtype.
We do power series extrapolations, with the order in \(a^2\) specified by the user.
The error_strat is inherited from the Fitter; it decides whether you will compute errors
with error propagation or using the Hessian. This is parallelized by
default, but you can set nproc=1 to turn that off.
To perform an extrapolation, you can
ext.extrapolate(self,start_coeffs=None,prior=None,prior_err=None)
This gives you the option of passing priors, if you like. If you want to specify only some priors,
but not others, then pass np.inf as the corresponding prior_err for those you don’t want to fix.
These will not be included in counting the degrees of freedom.
You can look at a plot with ext.plot(); you can pass it the same keyword arguments that
you can with the plotter. The class method ext.showResults() will
print the results to screen.
For your convenience, this whole process is wrapped inside a method
continuumExtrapolate(x,obs,obs_err,order=1,show_results=False,plot_results=False,prior=None,
start_coeffs=None,prior_err=None,error_strat='propagation',xtype="a",
nproc=DEFAULTTHREADS):