Open briederer opened 3 years ago
* Add support for arbitrary precision (BigFloat.jl, ...)
BigFloats are actually in Base-julia. If we keep the code sufficiently abstract then the code should work out of the box with higher precision datatypes ( e.g. BigFloats, DoubleFloats.jl
with it's own Double64
type or Quadmath.jl
which provides Float128
through GNU's libquadmath ). In order to achieve that we should usually try to avoid
Float64
constants such as 2.0
or 0.0
Float64
objects like zeros(length(x))
and use instead
2
or 0
zeros(eltype(x),length(x))
or similar(x)
Also the following are the minimally necessary PlotTypes we should provide:
C/E
vs. Timesteps Δt
E
vs. Spatial-Extent L
1/L
valuesE_inf
vs. Channels c
theory()
Did I miss something important?
For the first two I can rewrite some of my plotting scripts into recipes. I assume that in case of the volume dependence we also want functions that that perform a generic finite volume dependence fit and then include the infinite volume limit in these plots. Again, I have some code the can be reworked to be sufficiently generic.
Nothing else comes to the top of my head as of now.
Definitely the fit is important you are right. Also a keyword for plotting additionally the expected states for different momenta and states from other channels (i.e. Scattering-states) would be nice too.
I am not quote sure if I understood that completely. Is there a generic way that tells you which states are to be expected? However, we definitely should have the option to add in all cases additional data to the final plot with custom labels. But I think the Plots.jl
ecosystem does that by itself an there is no extra work for us to be done here. (For 3D Plots the situation might be more difficult)
Is there a generic way that tells you which states are to be expected?
Well at least generic for each theory. Suppose you have a theory with quantum number J^{PC}
with the usual meaning J=Spin, P=Parity and C=Charge and there exists a non-zero Groundstate in the 1^{--}
channel with a mass m
. Then you are expecting further states with finite momentum and also multiparticle states with the same QN.
So in the case of the 1^{--}
channel you expect states at: m
, 3*m
, 2*sqrt[(3*m)^2 + (2pi/L)^2]
1 and so on.
So basically one has to look which scattering states are allowed in this channel and then climb the momentum ladder up.
Another example 0^{++}
-channel with Groundstate m0:
Allowed scattering state: 1^{--}*1^{--}
particle at 2*m
, 2 groundstate particles 2*m0
and integer multiples of this states, as well as the corresponding finite momentum states.
1: Note that I've used here the simple lattice momenta. A more sophisticated way would use cosh() and sinh() functions here see e.g Gattringer/Lang, Quantum chromodynamics on the lattice
What kind of data to parse
We expect time-series of observables, correlation matrices and so on but not datafiles which need to be parsed. Provide functions for calculating observables from full set of configurations but not in one step. (provide Example workflow in docs)
Next steps
@fzierler:
@bernd1995:
Additional possibilities